команда explode

Автор Тема: команда explode  (Прочитано 4966 раз)

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

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

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
команда explode
« : 20-06-2017, 11:03:41 »
Написал небольшую программку:

Код - Auto/Visual Lisp [Выбрать]
  1. (defun c:p2b (/)
  2. (vl-load-com)
  3.  (setq ss (ssget "_X" (list (cons 8 (cdr (assoc 8 (entget (car (entsel "Выберите образец >")))))))))
  4.  (sssetfirst nil ss)
  5.  (vl-cmdf "_explode")
  6. )

Всё прекрасно, но перед расчленением выскакивает предупреждение. Если согласиться, выполняется быстро. Если не соглашаться, выполнение существенно замедляется.
Возможно ли прописать в код обход этого предупреждения, естественно с положительным ответом?


Отмечено как Решение 1958 20-06-2017, 11:40:03

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: команда explode
« Ответ #1 : 20-06-2017, 11:20:54 »
Перед запуском команды _EXPLODE сохраняешь значение draworderctl, устанавливаешь его в 0. Затем запускается команда - диалогового окна быть не должно. Ну и потом восстанавливаешь значение draworderctl
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: команда explode
« Ответ #2 : 20-06-2017, 12:32:44 »
Интересно, а vla-explode такое же выдает?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: команда explode
« Ответ #3 : 20-06-2017, 12:35:16 »
Интересно, а vla-explode такое же выдает?
Уверен что нет, так как vla-explode оперирует одним примитивом (представь себе как такое окошко появлялось бы в цикле по всем расчленяемым примитивам) в отличие от команды _EXLODE
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Re: команда explode
« Ответ #4 : 20-06-2017, 13:05:35 »
Что-то непонятное!? Вроде сработало пару раз, а потом всё сначала, выскакивает предупреждение, хоть ты тресни!

Мой код:
Код - Auto/Visual Lisp [Выбрать]
  1. (defun c:p2b (/)
  2.  (vl-load-com)
  3.  (setq ss (ssget "_X"
  4.                  (list (cons 8 (cdr (assoc 8 (entget (car (entsel "Выберите образец >")))))))
  5.           )
  6.  )
  7.  (sssetfirst nil ss)
  8.  (setvar "DRAWORDERCTL" 0)
  9.  (vl-cmdf "_explode")
  10.  (setvar "DRAWORDERCTL" 3)
  11. )

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: команда explode
« Ответ #5 : 20-06-2017, 13:09:41 »
Почитай эту тему: https://forum.dwg.ru/showthread.php?t=113813
Там найдёшь много нового и полезного.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Re: команда explode
« Ответ #6 : 20-06-2017, 13:29:22 »
Вот такая конструкция вроде работает:
Код - Auto/Visual Lisp [Выбрать]
  1. (defun c:p2b (/)
  2.  (vl-load-com)
  3.  (setq ss (ssget "_X"
  4.                  (list (cons 8 (cdr (assoc 8 (entget (car (entsel "Выберите образец >")))))))
  5.           )
  6.  )
  7.  (sssetfirst nil ss)
  8.  (setvar "nomutt" 1)
  9.  (setvar "DRAWORDERCTL" 0)
  10.  (vl-cmdf "_explode")
  11.  (setvar "DRAWORDERCTL" 3)
  12.  (setvar "nomutt" 0)
  13. )

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: команда explode
« Ответ #7 : 20-06-2017, 13:31:22 »
Из спортивного интереса подумай над упрощением этой конструкции:
Код - Auto/Visual Lisp [Выбрать]
  1. (list (cons 8 (cdr (assoc 8 (entget (car (entsel "Выберите образец >")))))))
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Re: команда explode
« Ответ #8 : 20-06-2017, 13:37:06 »
Из спортивного интереса подумай над упрощением
Александр! Я только учусь и вопрос упрощения мне не подвластен. Это Вы должны были понять из предыдущих моих публикаций. :)
Если б подсказали, был бы очень признателен.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: команда explode
« Ответ #9 : 20-06-2017, 13:55:59 »
Вместо     
Код - Auto/Visual Lisp [Выбрать]
  1. (list (cons 8 (cdr (assoc 8 (entget (car (entsel "Выберите образец >")))))))
должно быть
Код - Auto/Visual Lisp [Выбрать]
  1. (list (assoc 8 (entget (car (entsel "Выберите образец >")))))
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Re: команда explode
« Ответ #10 : 20-06-2017, 16:32:29 »
Н-да! Век живи, всё не выучишь! Спасибо!