Подсчет объектов внутри блоков чертежа

В autocad есть возможность извлекать данные(интересуют длины, площади, слой и значение гиперссылки) из объектов внутри блоков. Единственное нет возможности группировать строки с одинаковым слоем и ссылкой и разной длиной(приходится доделывать через excel). В Nanocad есть возможность группировать и суммировать длину группы, но искать данные по объектам внутри блоков не получится?

Тэги темы:

Ответы

  • Извлекать данные из блоков в nanoCAD тоже можно! НО! - это должны быть блоки с атрибутами, созданными непосредственно в nanoCAD. Блоки AutoCAD здесь "не прокатят", и даже не вздумайте копировать что-то из AutoCAD в nanoCAD при отрисовке блоков (кроме отрезков и полилиний).

  • Влад
    отредактировано September 2024

    У меня для теплотехнического расчета сделаны блоки для каждого помещения, блоку присвоено имя номера помещения(блок просто сохраняется под новым именем через сохранить как). В каждом блоке на соответствующих слоях отрисованы полилинией наружные стены, внутренние(опционально) и заливка по плите. В блоке может быть как одна так и несколько полилиний с одинаковым слоем, как и несколько заливок(зоны плиты по грунту). Через простенький скрипт значения имен блоков(номера помещений) записываются во все объекты внутри блока в гиперссылку. После чего можно сделать извлечение данных по объектам внутри блоков и получится таблица где для каждого помещения получится перечень всех длин стен, с маркировкой типа стен и площади перекрытий с маркировкой типа перекрытия. Атрибуты блока при этом вообще не используются. Как я понимаю в Нанокаде нет возможности посчитать примитивы внутри блока не расчленяя его?

  • ну и пишите в атрибуты блоков эти ваши данные

    В каждом блоке на соответствующих слоях отрисованы полилинией наружные стены, внутренние(опционально) и заливка по плите. В блоке может быть как одна так и несколько полилиний с одинаковым слоем, как и несколько заливок(зоны плиты по грунту). Через простенький скрипт значения имен блоков(номера помещений)

    Не вижу смысла в гиперссылке. Вероятно это куда-то дальше пойдет? В таком случае просто будет дублирование информации.

    Прототип можно прочитать тут

  • Атрибуты хорошо работают когда количество элементов в блоке строго определено. У меня в блоке может быть 1, а может быть 3 линии одного типа и мне нужно получить сумму их длин. Если я пропишу атрибут с их суммой и удалю две линии у меня будет ошибка. А если я потом добавлю две линии мне нужно будет заново редактировать атрибут. В моем же случае мне никак не требуется отслеживать формулы в атрибутах, я могу добавить 1 или 10 лини одного типа(слоя) и они сразу попадут в таблицу. Гиперссылка мне нужна только чтобы получить столбец в таблице с именем блока, т.к. при извлечении данных по объектам нельзя получить информацию о том к каком блоку они относятся. Т.к. гиперссылка заполняется скриптом мне не нужно отслеживать вручную какой элемент к какому помещению относится

  • И все равно непонятно, зачем все это хозяйство заключать в блок. Все-таки, использование блока предполагает его возможное повторное использование. А в такой постановке задачи имеет смысл только его однократная вставка. Не совсем понятно, зачем нужно группу элементов объединять в блок. Разве что, только для того, чтоб одним тычком выделять всю группу.

    Если скрипт в процессе разработки, то более целесообразным мне видится использовать некий блок с условным наименованием "номер комнаты", в котором будет набор фиксированных атрибутов. А элементам, относящимся к этому помещению, в область РД скриптом прописать метку этого блока (можно и прямо наименование комнаты, но лучше связь через метку, т.к. это позволит на лету без всяких дополнительных скриптов просто поменять название комнаты при необходимости, не разрушая связи). А далее любая обработка группы может как выводиться самостоятельно в поля таблиц, так и в виде присвоения значений атрибутам помещения.

  • Влад
    отредактировано September 2024

    Нет скрипта в разработке. Мне ChatGPT сделал простенький код на VBA в пару строк, который проходит по выделенным блокам и прописывает имя блока в гиперссылку.

    Набор фиксированных атрибутов подразумевает также и набор фиксированных элементов. С атрибутами проблема, в том что в одном блоке я должен получить сумму двух полилиний одного типа. Во втором блоке я должен получить сумму трех полилиний одного типа и длину полилинии другого типа и число полилиний рандомно меняется. Идя с блоками в том, что когда я редактирую блок мне не надо себя проверять, стена и площадь будет четко привязана к номеру помещения, а тип объекта четко определен слоем. В общем в Автокаде этот вопрос легко решается. Дальше усложнять задачу я не планирую. Плюс я могу сделать нужный мне расчет и средствами Nanocad, но для этого мне нужно будет откопировать блоки и их взорвать. Что не очень удобно в случае если потребуется быстро, что-то добавить отредактировать и т.д.

  • Здравствуйте!

    Не могли бы вы выложить пример ваших блоков?

    На данный момент nanoCAD не умеет извлекать данные объектов, входящих в состав блоков.

  • EdwardSt
    отредактировано September 2024

  • Vlad
    отредактировано September 2024

    В верхней части расчет через средства autocad. Внизу таблица СПДС

  • MCAD
    отредактировано September 2024

    удалил лирику