如何更改線型
本帖最后由 lead009 于 2011-6-4 20:10 编辑我在寫一個畫中心線的lisp程式大致上ok
但是有一點就是線型的問題
我不曉得該如何來改變線型,本來想用subst函數來更換聯合子串列
但是原本的類別中,並沒有線型的子串列
請大家幫我一下,我希望畫出來的中心線,可以自動更新到"中心線"的線型
省的每次都要用手調
(defun C:C2()
(setq oldosmode(getvar "OSMODE"))
(prompt"\n框選物件圓")
(setq ss(ssget))
(setq i 0)
(setvar"OSMODE" 0)
(repeat (sslength ss)
(setq en(ssname ss i))
(setq data(entget en))
(setq xxtype(cdr(assoc 0 data)))
(if(= xxtype "CIRCLE")
(progn
(setq cen(cdr(assoc 10 data)))
(setq rr(cdr(assoc 40 data)))
(setq p1(polar cen (* pi 0.0) (* rr 1.3)))
(setq p2(polar cen (* pi 0.5) (* rr 1.3)))
(setq p3(polar cen (* pi 1.0) (* rr 1.3)))
(setq p4(polar cen (* pi 1.5) (* rr 1.3)))
(command"line" p1 p3 "")
(command"line" p2 p4 "")
);P
);if
(setq i(+ i 1))
);while
(setvar "OSMODE" oldosmode)
(prin1)
)
支持你,帮你顶起来! lead009 发表于 2011-6-4 13:50 static/image/common/back.gif
我在寫一個畫中心線的lisp程式大致上ok
但是有一點就是線型的問題
(command "chprop" ss "" "lt" "center" "")
本帖最后由 chpmould 于 2011-6-5 18:41 编辑
<增加圆和圆弧中心线工具> (如果已经有中心线的圆和圆弧,程序自动不再加中心线)
謝謝,不過還是比較希望用一下自己寫的,順便也多增加一些lisp的知識
(defun c:tt ()
(prompt "\n框選物件圓: ")
(setq ss (ssget '((0 . "circle,arc")))
i0
)
(setvar "OSMODE" 0)
(setvar "celtype" "中心線")
(while (setq en (ssname ss (setq i (1+ i))))
(setq data (entget en)
cen(cdr (assoc 10 data))
rr (cdr (assoc 40 data))
p1 (polar cen (* pi 0.0) (* rr 1.3))
p2 (polar cen (* pi 0.5) (* rr 1.3))
p3 (polar cen (* pi 1.0) (* rr 1.3))
p4 (polar cen (* pi 1.5) (* rr 1.3))
)
(command "line" p1 p3 "")
(command "line" p2 p4 "")
)
(princ)
)
页:
[1]