Разорвать СПДС-объекты программно

Автор Тема: Разорвать СПДС-объекты программно  (Прочитано 27723 раз)

0 Пользователей и 4 Гостей просматривают эту тему.

Оффлайн IcuАвтор темы

  • ADN OPEN
  • Сообщений: 25
  • Карма: 0
Re: Разорвать СПДС-объекты программно
« Ответ #45 : 04-11-2019, 17:17:00 »
Алгоритм: выбираю объекты в правильный Selection Set, выделяю, затем по окончании макроса взрываю кнопкой _Explode?
Нет. Тем более, что ты собираешься это сделать не только с объектами в ModelSpace/PaperSpace, но и в блоках.
На блоки я бы временно подзабил :) У меня основная часть СПДС объектов лежит в модели (примерно несколько тысяч), а для блоков хватит и той скорости макроса, которая есть.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Разорвать СПДС-объекты программно
« Ответ #46 : 04-11-2019, 17:19:07 »
У Selection Set'а есть уникальное имя, его как-то можно использовать.
Теоретически используя расширения VisualLisp это можно сделать, но потом эти все объекты нужно перегонять из SelectionSet в PickSet для использования в команде AutoCAD. Это займёт тоже немалое время.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Разорвать СПДС-объекты программно
« Ответ #47 : 04-11-2019, 17:35:39 »
У меня основная часть СПДС объектов лежит в модели (примерно несколько тысяч), а для блоков хватит и той скорости макроса, которая есть.
Тогда теоретически для расчленения их всех должно быть достаточно такого lisp-выражения:
Код - Auto/Visual Lisp [Выбрать]
  1. (progn
  2.   (setvar "qaflags" 5)
  3.   (command "_EXPLODE"
  4.     (ssget "_X"
  5.       (list
  6.          (cons 0  "<префикс СПДС*>")
  7.          (cons 410 (getvar "CTAB"))
  8.       )
  9.     )
  10.     ""
  11.   )
  12.   (setvar "qaflags" 0)
  13. )
Только вместо <префикс СПДС*> должно быть правильное значение. Возможно оно SPDS* (нет возможности проверить).
Для того чтобы проверить набери в командной строке AutoCAD, нажми ENTER и выбери СПДС-объект:
Код - Auto/Visual Lisp [Выбрать]
  1. (entget (car (entsel)))
Результат из командной строки сюда.
« Последнее редактирование: 04-11-2019, 18:41:24 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн IcuАвтор темы

  • ADN OPEN
  • Сообщений: 25
  • Карма: 0
Re: Разорвать СПДС-объекты программно
« Ответ #48 : 04-11-2019, 18:47:42 »
Как правильно воспользоваться этим кодом? С лиспом практически не имел дела.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Разорвать СПДС-объекты программно
« Ответ #49 : 04-11-2019, 20:00:43 »
Как правильно воспользоваться этим кодом? С лиспом практически не имел дела.
Сохрани в файл с именем spdsexp.lsp и загрузи его при помощи команды _APPLOAD.
Код должен сразу отработать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение