明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 835|回复: 10

画完线后回归0层

[复制链接]
发表于 2018-10-6 00:42 | 显示全部楼层 |阅读模式
1明经币
这个文件可以直接在图层里画线型,画好后转为0层,但有个问题是画直线的时候习惯性的用ESC来结束,这样的话就不能转到0层了,请大神帮改一下,谢谢
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

我也分享另一种方法:
发表于 2018-10-6 00:42 | 显示全部楼层
我也分享另一种方法:
  1. (defun c:L1 (/ *error* p1 p2)
  2.   (defun *error* ( msg )
  3.     (if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))
  4.       (progn (princ (strcat "\n错误:" msg)) (setvar "CLAYER" "0"))
  5.     )
  6.     (princ)
  7.   )
  8.   (If (= (Tblsearch "layer" "新建") nil)
  9.     (command "-layer" "n" "新建" "s" "新建" "")
  10.     (command "-layer" "s" "新建" "")
  11.   )
  12.   (command "CECOLOR" "2")  ;;;定义颜色
  13.   (setq p1 (getpoint "\n 选择起点:"))
  14.   (while (setq p2 (getpoint p1 "\n 选择下一点:"))(command "line" p1 p2 "")(setq p1 p2))
  15.   (command "layer" "s" "0" "")
  16. )


回复

使用道具 举报

发表于 2018-11-13 13:28 | 显示全部楼层
(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)
)
回复

使用道具 举报

发表于 2018-11-21 10:43 | 显示全部楼层
(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 | 显示全部楼层
ssyfeng 发表于 2018-11-23 11:04
我也分享另一种方法:

这个好,谢谢
回复

使用道具 举报

 楼主| 发表于 2018-11-23 15:42 | 显示全部楼层
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 | 显示全部楼层
chenbh2 发表于 2018-11-21 10:43
(defun c: L1  ()
(If (= (Tblsearch "layer" "新建") nil)
    (command "-layer" "n" "新建" "s" "新建 ...

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

使用道具 举报

发表于 2018-11-23 17:28 | 显示全部楼层
疯球 发表于 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" "")
)

回复

使用道具 举报

发表于 2018-11-24 11:09 | 显示全部楼层
...ESC...回归0层...

请参考 *ERROR* 的相关讨论
回复

使用道具 举报

发表于 2018-11-27 14:46 | 显示全部楼层
(defun c1 ()
(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" "")
)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-29 20:48 , Processed in 0.240431 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表