各位大神能帮我整合下下面两个LISP吗 - (defun YH_chlayer (YH_layer / YH_S)
- (if (null (tblsearch "LAYER" YH_layer))
- (entmake (list
- '(0 . "LAYER")
- '(100 . "AcDbSymbolTableRecord")
- '(100 . "AcDbLayerTableRecord")
- (cons 2 YH_layer) ;图层名称
- '(70 . 0) ;图层状态
- '(62 . 7) ;图层颜色
- '(6 . "bylayer") ;图层线型
- )
- )
- )
- (setq YH_S (cadr (ssgetfirst)))
- (if YH_S
- (command "CHPROP" YH_S "" "la" YH_layer "c" "bylayer" "")
- (setvar "clayer" YH_layer)
- )
- (princ)
- )
- (defun c:0 ()
- (YH_chlayer "0")
- )
- (defun c:1 ()
- (YH_chlayer "轮廓线-粗")
- )
- (defun c:2 ()
- (YH_chlayer "轮廓线-中")
- )
- (defun c:3 ()
- (YH_chlayer "轮廓线-细")
- )
- (defun c:4 ()
- (YH_chlayer "填充")
- )
- (defun c:5 ()
- (YH_chlayer "标注")
- )
- (defun c:6 ()
- (YH_chlayer "文字")
- )
- ;可继续添加,便于切换图层
 - (defun c:gc ()
- (prompt "选择要改变的图素: ")
- (while (setq ss (ssget))
- (prompt "输入你要改变到的层名:")
- (setq a (getstring))
- (if (not (tblsearch "layer" a))
- (progn
- (command "layer" "n" a "")
- (setq cc (getstring "输入你要的色 1-红 2-黄 3-绿 4-靑 5-蓝 6-紫 "))
- (if (= cc "")() (command "layer" "c" cc a ""))
- (setq ll (getstring "输入你要的线型 中心线-center 虚线-hidden 假想线-divide 回车为轮廓线 实线"))
- (if (= ll "")() (command "layer" "l" ll a ""))
- ))
- (setq b (getreal "输入线型比例: "))
- (if (= b nil)(setq b 1))
- (command "change" ss """p" "s" b "la" a """layer" "s" a "")
- (prompt "选择要改变的图素: ")
- )
- )
比如在第一个执行命令时,比如按键盘2然后空格,命令发现没有2的图层,则新建图层,这是第一个命令可以实现的。我想在这个命令新建图层的那一步加上第二条命令的部分内容。也就是建层的话会要求你进行设置。而不是自动新建默认的图层
|