对选择集进行筛选有时无法筛选的求救
本帖最后由 daiguafan 于 2013-8-5 21:39 编辑想做一个更改比例的lisp。参考了论坛关于选择集筛选的程序。
主要是选择标注样式、文字大小以及插入的标高块。但是发现程序有时可以全部修改
有时又只修改一部分。比如修改标高,但是标注样式不变。
请问问题出在哪
(defun c:csc ()
(setq ss1 nil
ss2 nil
DOC (vla-get-ActiveDocument (vlax-get-acad-object))
sc2(getint"\n¸üбÈÀý")
)
(cond
((= sc2 50)
(setq CSt "EF-50@500" ))
((= sc2 100)
(setq CSt "EF-100@100" ))
((= sc2 150)
(setq CSt "EF-150@150"))
((= sc2 200)
(setq CSt "EF-200@200"))
)
(if (setq ss (ssget '((0 . "MTEXT,TEXT,DIMENSION,insert"))))
(progn
(setq ss-text (ssget "p" '((0 . "MTEXT,TEXT"))))
(if ss-text
(vlax-for OBJ (vla-get-ActiveSelectionSet Doc) (vla-put-Height OBJ (* 3.0 sc2)))
)
(sssetfirst nil ss)
(setq ss-dim (ssget "p" '((0 . "DIMENSION"))))
(if ss-dim
(vlax-for OBJ (vla-get-ActiveSelectionSet DOC) (vla-put-StyleName OBJ CSt))
)
(sssetfirst nil ss)
(setq ss-block (ssget "p" '((0 . "insert")) ))
(if ss-block
(progn
(vlax-for OBJ (vla-get-ActiveSelectionSet Doc) (vla-put-XScaleFactor OBJ (/ sc2 100.00)))
(vlax-for OBJ (vla-get-ActiveSelectionSet Doc) (vla-put-yScaleFactor OBJ (/ sc2 100.00)))
(vlax-for OBJ (vla-get-ActiveSelectionSet Doc) (vla-put-zScaleFactor OBJ (/ sc2 100.00)))
)
)
(sssetfirst nil ss)
)
)
) (sssetfirst nil ss)
Try===>
(command "Select" ss "") Andyhon 发表于 2013-8-5 22:15 static/image/common/back.gif
(sssetfirst nil ss)
Try===>
(command "Select" ss "")
收到。我试试。 Andyhon 发表于 2013-8-5 22:15 static/image/common/back.gif
(sssetfirst nil ss)
Try===>
(command "Select" ss "")
好像是这个原因啊。
二者有什么区别呢? 好象两个都可以,只不过上面那个语句没写完,我通常用后面那个 自贡黄明儒 发表于 2013-8-6 07:41 static/image/common/back.gif
好象两个都可以,只不过上面那个语句没写完,我通常用后面那个
后面的那个可行啊。上面没写完?要加什么? daiguafan 发表于 2013-8-6 08:58
后面的那个可行啊。上面没写完?要加什么?
见我那个帖子,《笔记之一》
页:
[1]