Не работает команда xplode
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Не работает команда xplode

Не работает команда xplode

Ответ
Поиск в этой теме
Непрочитано 06.05.2011, 15:47 #1
Не работает команда xplode
Zaghim
 
Регистрация: 01.07.2010
Сообщений: 521

Хочу взорвать блок, да так что бы при взрыве линии остались по слою. Нашел готовую прогу, но там все через vla... тогда решил попробовать вот это:
(command "_xplode" name "" "i") - пишет неизвестная команда. В чем проблема?

Вроде разобрался в чем проблема - это arx прога. Следовательно так запустить не получится. Как быть? Я кучей беру блоки и потом их обрабатываю, получаю так:
Код:
[Выделить все]
 (setq nabr (ssget "_A"))
                 (setq number (sslength nabr))
                 (setq name (ssname nabr n))
                 (setq object (entget name))
Может это можно как-то подружить с этим:
Код:
[Выделить все]
(vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object))
        util (vla-get-utility adoc))
  (vla-getEntity util 'blk nil "Вывбери, чего взрывать: ")
  (setq ents (vlax-safearray->list (vlax-variant-value (vla-explode blk))))
  (foreach ent ents (vla-put-layer ent (vla-get-layer blk)))
  (vla-delete blk)

Последний раз редактировалось Zaghim, 06.05.2011 в 16:04.
Просмотров: 4433
 
Непрочитано 06.05.2011, 16:03
#2
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Код:
[Выделить все]
 (C:XPLODE name "" "i")
Ну конечно если name - имя расчленяемого примитива, Express Tools установлены и загружены.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 06.05.2011, 17:18
#3
Zaghim


 
Регистрация: 01.07.2010
Сообщений: 521


Почему-то не работает, просит указать блок. Хотя если делать Explode, то все ок...
Zaghim вне форума  
 
Непрочитано 06.05.2011, 17:48
#4
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Zaghim Посмотреть сообщение
Почему-то не работает, просит указать блок. Хотя если делать Explode, то все ок...
Я же сказал, что нужно передать имя примитива.
Александр Ривилис вне форума  
 
Непрочитано 06.05.2011, 20:42
#5
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Код:
[Выделить все]
 (C:XPLODE name "" "i")
Ну конечно если name - имя расчленяемого примитива, Express Tools установлены и загружены.
Кажись, команда "xplode" ("взорвать") к ET не имеет отношения.
Profan вне форума  
 
Автор темы   Непрочитано 10.05.2011, 09:52
#6
Zaghim


 
Регистрация: 01.07.2010
Сообщений: 521


Так я и передаю имя в таком виде name = <Entity name: 726fea20>.
А к ЕТ не имеет отношения - это точно.

name я выдергиваю так из селекшен сета (nabr) всех блоков (setq name (ssname nabr n))

В общем не получается никак... может сделать это каким-то другим способом?

Последний раз редактировалось Zaghim, 10.05.2011 в 10:02.
Zaghim вне форума  
 
Непрочитано 10.05.2011, 11:39
#7
mamuk


 
Регистрация: 06.05.2010
Сургут
Сообщений: 248


попробуй непосредственно с наборами поиграться

(setq a (ssget ))выбираем блок
(sssgetfirst a a) подсвечиваем
(C:xplode a) запускаем
p.s. можно и не прислушиваться к моей писание, это решение не программиста, а обычного юзера
mamuk вне форума  
 
Автор темы   Непрочитано 10.05.2011, 11:59
#8
Zaghim


 
Регистрация: 01.07.2010
Сообщений: 521


Попробовал отдельно запустить ваш код, он не отработал, грит много аргументов)
Zaghim вне форума  
 
Непрочитано 10.05.2011, 12:19
#9
mamuk


 
Регистрация: 06.05.2010
Сургут
Сообщений: 248


а так?

(defun c:xa ()
(setq a (ssget ))
(sssetfirst a a) *тут я опечатался вместо sssetfirst набрал sssgetfirst*
(C:xplode a))
mamuk вне форума  
 
Автор темы   Непрочитано 10.05.2011, 12:29
#10
Zaghim


 
Регистрация: 01.07.2010
Сообщений: 521


Да, как раз достал полищука и исправил на sssetfirst. Так выделяет блок, НО не понимаю в чем засада она его не взрывает, т.е. (C:xplode a "" "i")) - последнее не срабатывает, в общем только выборка....
Zaghim вне форума  
 
Непрочитано 10.05.2011, 12:55
#11
mamuk


 
Регистрация: 06.05.2010
Сургут
Сообщений: 248


Цитата:
Сообщение от Zaghim Посмотреть сообщение
последнее не срабатывает, в общем только выборка....
я дальше выборки и не проверил думал что все ок
mamuk вне форума  
 
Автор темы   Непрочитано 10.05.2011, 13:03
#12
Zaghim


 
Регистрация: 01.07.2010
Сообщений: 521


Да...засада... а как поменять этот код под вид который мне нужен не имею понятия....вот он

Код:
[Выделить все]
(defun C:Expl2Lyr ( / adoc util blk ents)
  (vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object))
        util (vla-get-utility adoc))
  (vla-getEntity util 'blk nil "Вывбери, чего взрывать: ")
  (setq ents (vlax-safearray->list (vlax-variant-value (vla-explode blk))))
  (foreach ent ents (vla-put-layer ent (vla-get-layer blk)))
  (vla-delete blk)
);end
Zaghim вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Не работает команда xplode



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Не работает команда SHELL Torino AutoCAD 3 12.02.2009 21:08
Команда flatten не корректно работает. Saha AutoCAD 11 21.11.2008 13:24
не работает команда mtedit Nikolays AutoCAD 8 21.11.2007 09:46
Не работает команда "Свойства" AutoCAD 2006 constr.55 AutoCAD 6 24.10.2006 13:54