疯球 发表于 2018-10-6 00:42:02

画完线后回归0层

这个文件可以直接在图层里画线型,画好后转为0层,但有个问题是画直线的时候习惯性的用ESC来结束,这样的话就不能转到0层了,请大神帮改一下,谢谢

ssyfeng 发表于 2018-10-6 00:42:03

我也分享另一种方法:
(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" "")
)

437271963 发表于 2018-11-13 13:28:30

(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)
)

chenbh2 发表于 2018-11-21 10:43:38

(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)
)

)


疯球 发表于 2018-11-23 15:40:52

ssyfeng 发表于 2018-11-23 11:04
我也分享另一种方法:

这个好,谢谢

疯球 发表于 2018-11-23 15:42:06

437271963 发表于 2018-11-13 13:28
(defun c:tes ( / p1 p2)
(vl-load-com)
(if (null (tblsearch "layer" "新建")) (entmake (list'(0 ....

谢谢你的分享,但按ESC后不能切换到0层,还是保持在新画的图层上,谢谢你的帮助

疯球 发表于 2018-11-23 15:42:42

chenbh2 发表于 2018-11-21 10:43
(defun c: L1()
(If (= (Tblsearch "layer" "新建") nil)
    (command "-layer" "n" "新建" "s" "新建 ...

谢谢你的分享,但按ESC后不能切换到0层,还是保持在新画的图层上,谢谢你的帮助

chenbh2 发表于 2018-11-23 17:28:56

疯球 发表于 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" "")
)

Andyhon 发表于 2018-11-24 11:09:05

...ESC...回归0层...

请参考 *ERROR* 的相关讨论

1784290342 发表于 2018-11-27 14:46:56

(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]
查看完整版本: 画完线后回归0层