关于画双线每个线指定图层问题
前两天借用了论坛上的一段代码画双线,忘了哪位朋友写的了,现在我想画过双线后,每一根线可以指定图层。恳请高手指点!代码如下:
(defun c:2L()
(if (= wwdy nil) (setq wwdy 4))
(setq str1 (rtos wwdy 2 2))
(prompt "\nnow dline width is: ")
(prompt str1)
(setq pt1 (getpoint "\n enter start point:"))
(setq pt2 (getpoint pt1 "\n enter next point:"))
(setq dis1 (* 0.5 wwdy))
(setq ag1 (angle pt1 pt2))
(setq pt1u (polar pt1 (+ ag1 1.5708) dis1))
(setq pt2u (polar pt2 (+ ag1 1.5708) dis1))
(setq pt1d (polar pt1 (- ag1 1.5708) dis1))
(setq pt2d (polar pt2 (- ag1 1.5708) dis1))
(command "pline" "non" pt1u "non" pt2u "")
(command "pline" "non" pt1d "non" pt2d "")
(repeat 100
(setq pt1 pt2)
(setq pt2 (getpoint pt1 "\n enter next point:"))
(setq dis1 (* 0.5 wwdy))
(setq ag1 (angle pt1 pt2))
(setq pt1u (polar pt1 (+ ag1 1.5708) dis1))
(setq pt2u (polar pt2 (+ ag1 1.5708) dis1))
(setq pt1d (polar pt1 (- ag1 1.5708) dis1))
(setq pt2d (polar pt2 (- ag1 1.5708) dis1))
(command "pline" "non" pt1u "non" pt2u "")
(command "pline" "non" pt1d "non" pt2d "")
)
)
初入LISP小白,熬了一星期夜解决不了!有劳大佬了,跪谢! ;layer2 layer3 要有这两个图层 或者也可以判断没有就新建
(defun c:2L(/ cla wwdy pt1 pt2 dis1 ag1 pt1u pt2u pt1d pt2d)
(setq cla (getvar "clayer")
wwdy (getreal "\n width is:")
wwdy (if wwdy wwdy 4))
(prompt (strcat "\n now dline width is:" (rtos wwdy 2 2)))
(setq pt1 (getpoint "\n enter start point:"))
(while (setq pt2 (getpoint pt1 "\n enter next point:"))
(setq dis1 (* 0.5 wwdy)
ag1 (angle pt1 pt2)
pt1u (polar pt1 (+ ag1 (/ pi 2)) dis1)
pt2u (polar pt2 (+ ag1 (/ pi 2)) dis1)
pt1d (polar pt1 (- ag1 (/ pi 2)) dis1)
pt2d (polar pt2 (- ag1 (/ pi 2)) dis1))
(setvar "clayer" "layer2"); layer2=layername
(command "pline" "non" pt1u "non" pt2u "")
(setvar "clayer" "layer3"); layer3=layername
(command "pline" "non" pt1d "non" pt2d "")
(setvar "clayer" cla)
(setq pt1 pt2)
)
(princ)
)
页:
[1]