Очистка параметрических зависимостей в dwg

Была у меня тут задача - пройтись по всем примитивам чертежа и снести там параметрику.

Работало медленно, поскольку я решал задачу "в лоб", проходя по всем примитивам чертежа. Но работало.

Сегодня А.Ривилиса в теме на форуме Autodeskпоказал значительно более простое и изящное решение:

Код: [Выделить]
1
2
3
(if (dictsearch (namedobjdict) "acad_assocnetwork")
  (entdel (cdr (assoc -1 (dictsearch (namedobjdict) "acad_assocnetwork"))))
)

Это работает в текущем документе. Если надо обработать неактивный документ (как он открыт - вопрос десятый), то используем нечто типа

Код: [Выделить]
1
(vla-delete (vla-item (vla-get-dictionaries doc) "acad_assocnetwork"))

Причем, как выяснилось (по крайней мере в текущем документе) на состояние слоев эта конструкция не реагирует, корректно удаляя все элементы.

Красота! :)



Поделитесь своим мнением


Я не робот.