画完线后回归0层
这个文件可以直接在图层里画线型,画好后转为0层,但有个问题是画直线的时候习惯性的用ESC来结束,这样的话就不能转到0层了,请大神帮改一下,谢谢我也分享另一种方法:
(defun c:L1 (/ *error* p1 p2)
(defun *error* ( msg )
(if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))
(progn (princ (strcat "\n错误:" msg)) (setvar "CLAYER" "0"))
)
(princ)
)
(If (= (Tblsearch "layer" "新建") nil)
(command "-layer" "n" "新建" "s" "新建" "")
(command "-layer" "s" "新建" "")
)
(command "CECOLOR" "2");;;定义颜色
(setq p1 (getpoint "\n 选择起点:"))
(while (setq p2 (getpoint p1 "\n 选择下一点:"))(command "line" p1 p2 "")(setq p1 p2))
(command "layer" "s" "0" "")
)
(defun c:tes ( / p1 p2)
(vl-load-com)
(if (null (tblsearch "layer" "新建")) (entmake (list'(0 . "LAYER")'(100 . "AcDbSymbolTableRecord")'(100 . "AcDbLayerTableRecord") (CONS 6 "Continuous") (cons 62 2) '(370 . 0) '(70 . 0) '(290 . 1) '(2 . "新建"))) )
(if (setq p1 (getpoint "\n请选择起点"))
(progn
(while (setq p2 (getpoint p1 "\n选择下一点:"))
(entmake (list '(0 . "LINE") (cons 8 "新建") '(62 . 2) (cons 10 p1) (cons 11 p2)))
(setq p1 p2)
)
)
)
(princ)
) (defun c: L1()
(If (= (Tblsearch "layer" "新建") nil)
(command "-layer" "n" "新建" "s" "新建" "")
)
(command "CECOLOR" "2");;;定义颜色
(setq p1 (getpoint "\n 选择起点:"))
(while (setq p2 (getpoint p1 "\n 选择下一点:"))
(command "-layer" "s" "新建" "")
(command "line" p1 p2 "")
(command "layer" "s" "0" "")
(setq p1 p2)
)
)
ssyfeng 发表于 2018-11-23 11:04
我也分享另一种方法:
这个好,谢谢 437271963 发表于 2018-11-13 13:28
(defun c:tes ( / p1 p2)
(vl-load-com)
(if (null (tblsearch "layer" "新建")) (entmake (list'(0 ....
谢谢你的分享,但按ESC后不能切换到0层,还是保持在新画的图层上,谢谢你的帮助 chenbh2 发表于 2018-11-21 10:43
(defun c: L1()
(If (= (Tblsearch "layer" "新建") nil)
(command "-layer" "n" "新建" "s" "新建 ...
谢谢你的分享,但按ESC后不能切换到0层,还是保持在新画的图层上,谢谢你的帮助 疯球 发表于 2018-11-23 15:42
谢谢你的分享,但按ESC后不能切换到0层,还是保持在新画的图层上,谢谢你的帮助
(defun c: L1 ()
(If (= (Tblsearch "layer" "新建") nil)
(command "-layer" "n" "新建" "s" "新建" "")
(command "-layer" "s" "新建" "")
)
(command "CECOLOR" "2");;;定义颜色
(setq p1 (getpoint "\n 选择起点:"))
(while (setq p2 (getpoint p1 "\n 选择下一点:"))
(command "line" p1 p2 "")
(command "layer" "s" "0" "")
(setq p1 p2))
(command "layer" "s" "0" "")
)
...ESC...回归0层...
请参考 *ERROR* 的相关讨论
(defun c:L1 ()
(If (= (Tblsearch "layer" "新建") nil)
(command "-layer" "n" "新建" "s" "新建" "")
;;(command "-layer" "s" "新建" "")
)
(command "CECOLOR" "2");;;定义颜色
(setq p1 (getpoint "\n 选择起点:"))
(while (setq p2 (getpoint p1 "\n 选择下一点:"))
(command "-layer" "s" "新建" "")
(command "line" p1 p2 "")
(setq p1 p2)
(command "layer" "s" "0" "")
)
;;(command "layer" "s" "0" "")
)
页:
[1]