kenken 发表于 2020-2-28 20:11:39

新建图层,完成如下功能

本帖最后由 kenken 于 2020-2-29 08:18 编辑

新建立图层命令1.选择图内一段文字建立图层,图层名称=选择的一段文字名称,图层默认白色,实线,等,基本默认状态就可以
2.如果图层重复,弹出对话框提示   
3.如果图层不重复,所选择文字=新建图层,
4.新建图层=当前图层




cqu20104225 发表于 2020-2-28 20:11:40

本帖最后由 cqu20104225 于 2020-3-7 16:16 编辑

(defun c:nt (/ OldCmdecho layername)
(setq OldCmdecho (getvar "cmdecho"))
(setvar "cmdecho" 0)
(while (not (setq layername (cdr (assoc 1 (entget (car (nentselp "\n 请选择图层名称:"))))))))
(if (= (tblobjname "LAYER" layername) nil)
    (progn
      (entmake
      (list
          '(0 . "LAYER")
          '(100 . "AcDbSymbolTableRecord")
          '(100 . "AcDbLayerTableRecord")
          '(70 . 0)
         (cons 2 layername)
         (cons 62 7)
      )
      )
      (princ (strcat "新建图层:" layername))
    )
    (alert (strcat "图层[" layername "]已存在"))
)
(command "layer" "s" layername "")
(setvar "cmdecho" Oldcmdecho)
(princ)
)

ntwison 发表于 2020-3-1 00:18:07

看到你发了这么多,感觉你在攒一个完整的工具

kenken 发表于 2020-3-1 02:01:31

最近画图手指头有点痛,自己常用的功能。想尽量少用手指头

etoxp 发表于 2020-3-1 10:52:23

所需代码论坛中都有,建议自己动手。

kenken 发表于 2020-3-7 22:00:17

谢谢,同时学习了!

MXS 发表于 2021-11-16 13:38:39

cqu20104225 发表于 2020-2-28 20:11
(defun c:nt (/ OldCmdecho layername)
(setq OldCmdecho (getvar "cmdecho"))
(setvar "cmdecho" 0) ...

感觉这位道友是暖通专业的
页: [1]
查看完整版本: 新建图层,完成如下功能