- 积分
- 3494
- 明经币
- 个
- 注册时间
- 2010-11-15
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 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)
)
)
) |
|