;;;;;;;;切换图层时检查图层是否存在,如果不存在则按给定的图层颜色、线型等创建相应图层
(defun create-layer-if-not-exists (layer-name color linetype)
(if (not (tblsearch "LAYER" layer-name))
(progn
(entmake (list
(cons 0 "LAYER")
- ;;;;;;;;切换图层时检查图层是否存在,如果不存在则按给定的图层颜色、线型等创建相应图层
- (defun create-layer-if-not-exists (layer-name color linetype)
- (if (not (tblsearch "LAYER" layer-name))
- (progn
- (entmake (list
- (cons 0 "LAYER")
- (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"))
(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"))
|