明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 526|回复: 3

切换快捷键图层时检查图层是否存在,如果不存在则按给定的图层颜色、线型等创建相...

[复制链接]
发表于 2025-1-17 16:26:22 | 显示全部楼层 |阅读模式
;;;;;;;;切换图层时检查图层是否存在,如果不存在则按给定的图层颜色、线型等创建相应图层
(defun create-layer-if-not-exists (layer-name color linetype)
  (if (not (tblsearch "LAYER" layer-name))
    (progn
      (entmake (list
                 (cons 0 "LAYER")
  1. ;;;;;;;;切换图层时检查图层是否存在,如果不存在则按给定的图层颜色、线型等创建相应图层

  2. (defun create-layer-if-not-exists (layer-name color linetype)

  3.   (if (not (tblsearch "LAYER" layer-name))

  4.     (progn

  5.       (entmake (list

  6.                  (cons 0 "LAYER")

  7.                  (cons 100 "AcDbSymbolTableRecord")

  8.                  (cons 100 "AcDbLayerTableRecord")

  9.                  (cons 2 layer-name)

  10.                  (cons 70 0)

  11.                  (cons 62 color)

  12.                  (cons 6 linetype)

  13.                ))

  14.       (princ (strcat "\n图层 " layer-name " 已创建。"))

  15.     )

  16.   )

  17. )



  18. (defun set-layer (layer-name color linetype)

  19.   (create-layer-if-not-exists layer-name color linetype)

  20.   (setvar "clayer" layer-name)

  21.   (princ (strcat "\n已经切换到:" layer-name))

  22. )



  23. (defun c:F1 () (set-layer "A-ELEV-LIN1-立面外轮廓线" 42 "Continuous"))

  24. (defun c:F2 () (set-layer "A-ELEV-LIN2-立面中轮廓线" 2 "Continuous"))

  25. (defun c:F3 () (set-layer "A-ELEV-LIN3-立面细轮廓线" 153 "Continuous"))

  26. (defun c:F4 () (set-layer "A-FURN-绘图层" 2 "Continuous"))

  27. (defun c:F5 () (set-layer "0-PM-固定家具" 251 "Continuous"))

  28. (defun c:F6 () (set-layer "Area【区域轮廓不打印】" 250 "Continuous"))

  29. (defun c:FFC () (set-layer "DOTE" 1 "dote"))

  30. (defun c:FFD () (set-layer "DOOR" 4 "Continuous"))

  31. (defun c:FFDD () (set-layer "DOOR-NAME" 4 "Continuous"))

  32. (defun c:FFW () (set-layer "WINDOW" 4 "Continuous"))

  33. (defun c:FFWW () (set-layer "WINDOW_TEXT" 4 "Continuous"))

  34. (defun c:FW () (set-layer "WALL" 42 "Continuous"))

  35. (defun c:FFX () (set-layer "0-PM-建筑面积计算" 5 "Continuous"))

  36. (defun c:D1 () (set-layer "0-DM-地面填充" 251 "Continuous"))

  37. (defun c:D2 () (set-layer "0-DM-地面尺寸标注" 3 "Continuous"))

  38. (defun c:D3 () (set-layer "0-DM-地坪分割线" 251 "Continuous"))

  39. (defun c:T1 () (set-layer "0-TF-天花布置" 251 "Continuous"))

  40. (defun c:T2 () (set-layer "0-TF-天花尺寸标注" 3 "Continuous"))

  41. (defun c:T3 () (set-layer "0-TF-天花灯具布置" 6 "Continuous"))

                 (cons 100 "AcDbSymbolTableRecord")
                 (cons 100 "AcDbLayerTableRecord")
                 (cons 2 layer-name)
                 (cons 70 0)
                 (cons 62 color)
                 (cons 6 linetype)
               ))
      (princ (strcat "\n图层 " layer-name " 已创建。"))
    )
  )
)


(defun set-layer (layer-name color linetype)
  (create-layer-if-not-exists layer-name color linetype)
  (setvar "clayer" layer-name)
  (princ (strcat "\n已经切换到:" layer-name))
)


(defun c:F1 () (set-layer "A-ELEV-LIN1-立面外轮廓线" 42 "Continuous"))
(defun c:F2 () (set-layer "A-ELEV-LIN2-立面中轮廓线" 2 "Continuous"))
(defun c:F3 () (set-layer "A-ELEV-LIN3-立面细轮廓线" 153 "Continuous"))
(defun c:F4 () (set-layer "A-FURN-绘图层" 2 "Continuous"))
(defun c:F5 () (set-layer "0-PM-固定家具" 251 "Continuous"))
(defun c:F6 () (set-layer "Area【区域轮廓不打印】" 250 "Continuous"))
(defun c:FFC () (set-layer "DOTE" 1 "dote"))
(defun c:FFD () (set-layer "DOOR" 4 "Continuous"))
(defun c:FFDD () (set-layer "DOOR-NAME" 4 "Continuous"))
(defun c:FFW () (set-layer "WINDOW" 4 "Continuous"))
(defun c:FFWW () (set-layer "WINDOW_TEXT" 4 "Continuous"))
(defun c:FW () (set-layer "WALL" 42 "Continuous"))
(defun c:FFX () (set-layer "0-PM-建筑面积计算" 5 "Continuous"))
(defun c:D1 () (set-layer "0-DM-地面填充" 251 "Continuous"))
(defun c:D2 () (set-layer "0-DM-地面尺寸标注" 3 "Continuous"))
(defun c:D3 () (set-layer "0-DM-地坪分割线" 251 "Continuous"))
(defun c:T1 () (set-layer "0-TF-天花布置" 251 "Continuous"))
(defun c:T2 () (set-layer "0-TF-天花尺寸标注" 3 "Continuous"))
(defun c:T3 () (set-layer "0-TF-天花灯具布置" 6 "Continuous"))

回复

使用道具 举报

发表于 2025-1-18 07:33:15 | 显示全部楼层
收藏了!有一天可能会用到
回复 支持 反对

使用道具 举报

发表于 2025-1-18 09:44:57 | 显示全部楼层
谢谢楼主分享,很不错!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-5 16:48 , Processed in 0.241224 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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