使用“分解”命令保留选择集
我试图找到一种方法,在那里我可以选择多行文字或MLeader和爆炸它,然后与新的单行文本;应用一个新命令,将文本移动到第0层。我知道这是加粗的基本要求,但是我正在尝试使用以下内容将所有内容联系起来:
(defun C:test (/ ss)
(setq ss (ssget "x"))
(initcommandversion 2)
(command "explode" "p" "")
(command "change" ss "" "p" "la" "0" "")
(princ))
我该怎么做呢?
**** Hidden Message *****
(defun C:test (/ ss)
(setvar "qaflags" 1)
(setq ss (ssget ))
(command "explode" ss "")
(command "change" "p" "" "p" "la" "0" "")
(setvar "qaflags" 0)
(princ))
;;;选项1
(defun c:test(/ss)
(setq ss(ss get " x "))
(initcommandversion 2)
(命令" explode " " P " ")
(setq ss(ss get " P "));_添加此行
(command " change " ss " " " p " " la " " 0 " ")
(princ)
;;;选项2
(defun c:test(/ss)
(setq ss(ss get " x "))
(initcommandversion 2)
(命令" explode " " p " ")
(setq ss(ss get " x));_添加此行
(command " change " ss " " " p " " la " " 0 " ")
(princ)
) 我认为“P”不起作用,因为所有“分解”项目都被认为是新的,而不是以前的
(setq poly (vlax-invoke (vlax-ename->vla-object ent) 'explode))
(foreach obj poly
Autolisp方法使用lastent设置“保存点”,然后分解选定实体的。创建的所有新实体都位于dxf文件中的lastent之后。en的while循环将这些添加到您定义的选择集中。
(setq LastEnt (entlast))
(command "_.Explode" SS)
(setq SS (ssadd))
(if (setq en (entnext LastEnt))
(while en ;add all new entity's created by explosion back into selection set.
(ssadd en SS)
(setq en (entnext en))
)
)
页:
[1]