(defun c:JCX( / s ss ww ssn)
(setvar "cmdecho" 0)
(if (= jcxw_0 Nil) (setq jcxw_0 1))
(setq ww (getdist (strcat "\n 请输入线宽 <" (rtos jcxw_0 2) ">: ")))
(if (= ww nil) (setq ww jcxw_0))(setq jcxw_0 ww)
(setq ss (ssget '((-4 . "<or")(0 . "LINE")(0 . "CIRCLE")(0 . "ARC")
(0 . "POLYLINE")(0 . "LWPOLYLINE")(-4 . "or>"))))
(setq s 0) (command "undo" "be")
(repeat (if ss (sslength ss) (progn (princ "\n 未选择对象。") 0))
(setq ssn (ssname ss s) entyp (cdr (assoc 0 (entget ssn))))
(cond ((= entyp "CIRCLE") (progn
(setq rr (cdr (assoc 40 (entget ssn)))
cen (cdr (assoc 10 (entget ssn))))
(command "donut" (* 2 (- rr (/ ww 2))) (* 2 (+ rr (/ ww 2))) cen "")
(command "erase" ssn "")))
((= entyp "LINE") (command "pedit" ssn "y" "w" ww ""))
((= entyp "ARC") (command "pedit" ssn "y" "w" ww ""))
((= entyp "LWPOLYLINE") (command "pedit" ssn "w" ww ""))
((= entyp "POLYLINE") (command "pedit" ssn "w" ww ""))
)(setq s (1+ s))
)(command "undo" "e")(princ)
)
(princ "\n 线段加粗程序,命令jcx")(princ)
本帖最后由 作者 于 2008-6-23 20:35:01 编辑 <br /><br /> <p>对,这个系统变量是R16版本才加进去的。2000和2002版本还没有这个系统变量。</p><p>主要是控制line到pline的变化的 Y 的响应提示。</p><p>谢谢提醒。</p> <p>还有一个问题,2002对圆加粗时,不能直接变粗,需要经过一个过程</p><p>圆——多段线——加粗的圆,执行两次命令后,圆才能加粗</p><p>可能还有别的系统变量的问题</p><p></p>
页:
[1]