Подсчет объектов внутри блоков чертежа
В autocad есть возможность извлекать данные(интересуют длины, площади, слой и значение гиперссылки) из объектов внутри блоков. Единственное нет возможности группировать строки с одинаковым слоем и ссылкой и разной длиной(приходится доделывать через excel). В Nanocad есть возможность группировать и суммировать длину группы, но искать данные по объектам внутри блоков не получится?
Ответы
-
Извлекать данные из блоков в nanoCAD тоже можно! НО! - это должны быть блоки с атрибутами, созданными непосредственно в nanoCAD. Блоки AutoCAD здесь "не прокатят", и даже не вздумайте копировать что-то из AutoCAD в nanoCAD при отрисовке блоков (кроме отрезков и полилиний).
0 -
У меня для теплотехнического расчета сделаны блоки для каждого помещения, блоку присвоено имя номера помещения(блок просто сохраняется под новым именем через сохранить как). В каждом блоке на соответствующих слоях отрисованы полилинией наружные стены, внутренние(опционально) и заливка по плите. В блоке может быть как одна так и несколько полилиний с одинаковым слоем, как и несколько заливок(зоны плиты по грунту). Через простенький скрипт значения имен блоков(номера помещений) записываются во все объекты внутри блока в гиперссылку. После чего можно сделать извлечение данных по объектам внутри блоков и получится таблица где для каждого помещения получится перечень всех длин стен, с маркировкой типа стен и площади перекрытий с маркировкой типа перекрытия. Атрибуты блока при этом вообще не используются. Как я понимаю в Нанокаде нет возможности посчитать примитивы внутри блока не расчленяя его?
0 -
ну и пишите в атрибуты блоков эти ваши данные
В каждом блоке на соответствующих слоях отрисованы полилинией наружные стены, внутренние(опционально) и заливка по плите. В блоке может быть как одна так и несколько полилиний с одинаковым слоем, как и несколько заливок(зоны плиты по грунту). Через простенький скрипт значения имен блоков(номера помещений)
Не вижу смысла в гиперссылке. Вероятно это куда-то дальше пойдет? В таком случае просто будет дублирование информации.
Прототип можно прочитать тут
0 -
Атрибуты хорошо работают когда количество элементов в блоке строго определено. У меня в блоке может быть 1, а может быть 3 линии одного типа и мне нужно получить сумму их длин. Если я пропишу атрибут с их суммой и удалю две линии у меня будет ошибка. А если я потом добавлю две линии мне нужно будет заново редактировать атрибут. В моем же случае мне никак не требуется отслеживать формулы в атрибутах, я могу добавить 1 или 10 лини одного типа(слоя) и они сразу попадут в таблицу. Гиперссылка мне нужна только чтобы получить столбец в таблице с именем блока, т.к. при извлечении данных по объектам нельзя получить информацию о том к каком блоку они относятся. Т.к. гиперссылка заполняется скриптом мне не нужно отслеживать вручную какой элемент к какому помещению относится
0 -
И все равно непонятно, зачем все это хозяйство заключать в блок. Все-таки, использование блока предполагает его возможное повторное использование. А в такой постановке задачи имеет смысл только его однократная вставка. Не совсем понятно, зачем нужно группу элементов объединять в блок. Разве что, только для того, чтоб одним тычком выделять всю группу.
Если скрипт в процессе разработки, то более целесообразным мне видится использовать некий блок с условным наименованием "номер комнаты", в котором будет набор фиксированных атрибутов. А элементам, относящимся к этому помещению, в область РД скриптом прописать метку этого блока (можно и прямо наименование комнаты, но лучше связь через метку, т.к. это позволит на лету без всяких дополнительных скриптов просто поменять название комнаты при необходимости, не разрушая связи). А далее любая обработка группы может как выводиться самостоятельно в поля таблиц, так и в виде присвоения значений атрибутам помещения.
0 -
Нет скрипта в разработке. Мне ChatGPT сделал простенький код на VBA в пару строк, который проходит по выделенным блокам и прописывает имя блока в гиперссылку.
Набор фиксированных атрибутов подразумевает также и набор фиксированных элементов. С атрибутами проблема, в том что в одном блоке я должен получить сумму двух полилиний одного типа. Во втором блоке я должен получить сумму трех полилиний одного типа и длину полилинии другого типа и число полилиний рандомно меняется. Идя с блоками в том, что когда я редактирую блок мне не надо себя проверять, стена и площадь будет четко привязана к номеру помещения, а тип объекта четко определен слоем. В общем в Автокаде этот вопрос легко решается. Дальше усложнять задачу я не планирую. Плюс я могу сделать нужный мне расчет и средствами Nanocad, но для этого мне нужно будет откопировать блоки и их взорвать. Что не очень удобно в случае если потребуется быстро, что-то добавить отредактировать и т.д.
0 -
Здравствуйте!
Не могли бы вы выложить пример ваших блоков?
На данный момент nanoCAD не умеет извлекать данные объектов, входящих в состав блоков.
0 -
0
-
В верхней части расчет через средства autocad. Внизу таблица СПДС
0 -
удалил лирику
0
Разделы
- Все разделы
- 58 Общие вопросы
- 52 Работа nanoCAD в ОС Linux
- 408 Платформа nanoCAD
- 16 nanoCAD GeoniCS
- 87 nanoCAD BIM Строительство
- 42 nanoCAD Механика PRO
- 56 nanoCAD BIM Электро
- 11 nanoCAD BIM Вентиляция
- 13 nanoCAD BIM ВК
- 3 nanoCAD BIM Отопление
- 7 nanoCAD BIM СКС
- 51 nanoCAD BIM ОПС
- 2 nanoCAD Стройплощадка
- 3 nanoCAD Металлоконструкции
- 2 nanoCAD Конструкции PS
- 5 TDMS Фарватер
- 1 Облака точек
- NSR Specification
- Учебным заведениям и учащимся
- 7 nano360