 - (defun chlayer (layer color lineww / S)
- (if (null (tblsearch "LAYER" layer))
- (entmake
- (list
- '(0 . "LAYER")
- '(100 . "AcDbSymbolTableRecord")
- '(100 . "AcDbLayerTableRecord")
- (cons 2 layer) ;图层名称
- '(70 . 0) ;图层状态
- (if color
- (cons 62 color) ;图层颜色
- (cons 62 7)
- )
- (if lineww
- (cons 370 lineww) ;图层线宽
- (cons 370 -3)
- )
- (cons 6 "Continuous") ;图层线型 图层中没有bylayer
- )
- )
- (progn ;;更新图层颜色线宽 如不需要则删除此段
- (setq elist(entget(tblobjname "layer" layer)))
- (if color (setq elist(subst(cons 62 color)(assoc 62 elist)elist)))
- (if lineww (setq elist(subst(cons 370 lineww)(assoc 370 elist)elist)))
- (entmod elist)
- );更新颜色线宽结束
- )
- (setq S (cadr (ssgetfirst)))
- (if S
- (command "CHPROP" S "" "la" layer "c" "bylayer" "lw" "bylayer" "")
- (setvar "clayer" layer)
- )
- (princ)
- )
- ;;(chlayer "图层名" 颜色数值 线宽数值)
- ;;线宽取值表0、5、9、13、15、18、20、25、30、35、40、50、53、60、70、80、90、100、106、120、140、158、200 和 211。
- (defun c:0 ()
- (chlayer "0" nil nil)
- )
- (defun c:1 ()
- (chlayer "0-1原始墙体" 1 40)
- )
- (defun c:2 ()
- (chlayer "0-2原始柱子" nil 40)
- )
- (defun c:3 ()
- (chlayer "0-3原始窗户" 3 nil)
- )
|