lead009 发表于 2011-6-4 13:50:44

如何更改線型

本帖最后由 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)
)


669423907 发表于 2011-6-5 15:42:41

支持你,帮你顶起来!

chpmould 发表于 2011-6-5 18:06:19

lead009 发表于 2011-6-4 13:50 static/image/common/back.gif
我在寫一個畫中心線的lisp程式大致上ok
但是有一點就是線型的問題



(command "chprop" ss "" "lt" "center" "")

chpmould 发表于 2011-6-5 18:12:48

本帖最后由 chpmould 于 2011-6-5 18:41 编辑

<增加圆和圆弧中心线工具> (如果已经有中心线的圆和圆弧,程序自动不再加中心线)

lead009 发表于 2011-6-7 12:44:50

謝謝,不過還是比較希望用一下自己寫的,順便也多增加一些lisp的知識

xyp1964 发表于 2011-6-7 13:09:53


(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]
查看完整版本: 如何更改線型