[讨论]关于所有圆一次加上中心线的问题
www.dimcax.com
[讨论]关于所有圆一次加上中心线的问题
请高手帮忙看下面的程序代码,为什么总是提示不成功呢?
(defun cmdla0 ()
(setq cmdech (getvar "cmdecho"))
(setq oom (getvar "orthomode"))
(setq osm (getvar "osmode"))
(setq la (getvar "clayer"))
(setvar "regenmode" 1)
(setvar "cmdecho" 0)
(princ)
)
(defun cmdla1 ()
(setvar "cmdecho" cmdech)
(setvar "orthomode" oom)
(setvar "osmode" osm)
(setvar "clayer" la)
(setvar "regenmode" 1)
(princ)
)
;;; 每个圆心插入垂直交叉直线
(defun c:cl ()
(cmdla0)
(setq ss (ssget '((0 . "circle")))
i -1
)
(mkla "中心线" 1)
(while (setq s1 (ssname ss (setq i (1+ i)))))
(setq p0 (cdr (assoc 10 (entget s1)))
l (cdr (assoc 40 (entget s1)))
)
(xyp_szx p0 (* l 0.25)) ; 0.25倍直径
)
(cmdla1)
)
)
(defun mkla (a b)
(if (= (tblsearch "layer" a) nil)
(command "layer" "m" a "c" b a "")
(command "layer" "t" a "s" a "c" b a "")
)
)
d
这个是我以前做的
(defun c:df()
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq ss (ssget '((0 . "circle"))))
(setq len (sslength ss))
(setq n 0)
(command "undo" "begin")
(repeat len
(setq ent (ssname ss n))
(setq dxf (entget ent))
(setq yuanxin (trans (cdr (assoc 10 dxf)) 0 1))
(setq banjing (cdr (assoc 40 dxf)))
(setq waiyan (* banjing 1.5))
(setq p1 (polar yuanxin pi waiyan))
(setq p2 (polar yuanxin 0 waiyan))
(setq p3 (polar yuanxin (/ pi 2) waiyan))
(setq p4 (polar yuanxin (* 1.5 pi) waiyan))
(command "line" p1 p2 "")
(setq last1 (entlast))
(command "line" p3 p4 "")
(setq last2 (entlast))
(setq n (+ 1 n))
)
(command "undo" "end")
(setvar "osmode" os)
(princ)
)
工资真的要涨了,心里更加爱党了,能给孩子奖赏了,见到老婆敢嚷了,敢尝海鲜鹅掌了,闲时能逛商场了,遇见美女心痒了,结果物价又涨了!
d