这样的程序如何简化?
(defun c:ddd ()(setq n -1)
(if (setq ss (ssget '((0 . "LEADER"))))
(while (setq entname (ssname ss (setq n (+ 1 n))))
(setq ViewportOnCode ;获得箭头样式
(Vlax-Get (Vlax-Ename->Vla-Object entname)
'ArrowheadType
)
)
(if (= 0 ViewportOnCode)
(progn
(Vlax-Put-Property
(Vlax-Ename->Vla-Object entname)
'ArrowheadType
3 ;箭头样式
)
(Vlax-Put-Property
(Vlax-Ename->Vla-Object entname)
'ArrowheadSize
1 ;箭头的大小
)
(Vlax-Put-Property
(Vlax-Ename->Vla-Object entname)
'ScaleFactor
(* 1.5 (getvar "dimscale"));箭头全局比例
)
)
(progn
(Vlax-Put-Property
(Vlax-Ename->Vla-Object entname)
'ArrowheadType
0 ;箭头样式
)
(Vlax-Put-Property
(Vlax-Ename->Vla-Object entname)
'ArrowheadSize
1 ;箭头的大小
)
(Vlax-Put-Property
(Vlax-Ename->Vla-Object entname)
'ScaleFactor
(* 4 (getvar "dimscale"));箭头全局比例
)
)
)
)
)
(princ)
)
以上 代码如何简化,谢谢!
(defun c:ddd (/ n ss entname ViewportOnCode obj)
(setq n -1)
(if (setq ss (ssget '((0 . "LEADER"))))
(while (setq entname (ssname ss (setq n (+ 1 n))))
(setq ViewportOnCode ;获得箭头样式
(Vlax-Get (setq obj (Vlax-Ename->Vla-Object entname))
'ArrowheadType
)
)
(if (= 0 ViewportOnCode)
(progn
(mapcar 'Vlax-Put-Property
(list obj obj obj)
(list 'ArrowheadType 'ArrowheadSize 'ScaleFactor)
(list 3 1 (* 1.5 (getvar "dimscale")))
)
)
(progn
(mapcar 'Vlax-Put-Property
(list obj obj obj)
(list 'ArrowheadType 'ArrowheadSize 'ScaleFactor)
(list 0 1 (* 4 (getvar "dimscale")))
)
)
)
)
)
(princ)
) snddd2000 发表于 2013-11-29 15:33 static/image/common/back.gif
谢谢前辈。不过觉得好象还是有点啰嗦,但又不知道怎么优化! (defun c:ddd (/ n ss entname ViewportOnCode obj Tornil)
(setq n -1)
(if (setq ss (ssget '((0 . "LEADER"))))
(while (setq entname (ssname ss (setq n (+ 1 n))))
(setq obj (Vlax-Ename->Vla-Object entname)
ViewportOnCode (Vla-Get-ArrowheadType
(setq obj (Vlax-Ename->Vla-Object entname))
)
Tornil (equal 0 ViewportOnCode)
)
(mapcar 'Vlax-Put-Property
(list obj obj obj)
(list 'ArrowheadType 'ArrowheadSize 'ScaleFactor)
(list (if Tornil
3
0
)
1
(* (if Tornil
1.5
4
)
(getvar "dimscale")
)
)
)
)
)
(princ)
)
页:
[1]