作者Egriawei (Noble Mind)
站内Cad_Cae
标题[心得] 自己写的一些处理图层的lisp,请指教
时间Sat May 5 04:00:09 2007
下面是我觉得图层使用上
可能会需要的部分功能而练习写的副程式
应该还有再补充,补强,修正或简化的余地
请多指教
;============================
;建立图层"str" with "color"
;三原色红绿蓝0,0,0 ~ 255,255,255(旧版本autocad请勿使用)
(defun nlayer (str color)
(if (not (tblsearch "layer" str))
(command "layer" "n" str "c" "t" color str "")
(command "layer" "s" str "c" "t" color "" "")
)
(princ)
)
;索引颜色1 ~ 255(各版autocad皆可使用)
(defun olayer (str color)
(if (not (tblsearch "layer" str))
(command "layer" "n" str "c" color str "")
(command "layer" "s" str "c" color "" "")
)
(princ)
)
;============================
;切换到图层"str"
(defun ctlay (str)
(if (tblsearch "layer" str)
(setvar "clayer" str)
)
(princ)
)
;虽然我觉得这个有点多余,不过主要还是多了tblsearch可以判定
;============================
;切换一个传入物件所在图层
(defun celay (element layername / e_data e_layer n_layer)
(if (tblsearch "layer" layername)
(progn
(setq e_data (entget element);抓取传入物件资料
e_layer (assoc 8 e_data);抓取物件所在图层
n_layer (cons 8 layername);新建图层点对串列
)
(setq e_data (subst n_layer e_layer e_data));切换到新图层
(entmod e_data);更新图元
)
t
)
(princ)
)
;============================
;切换一个点选物件所在图层
(defun ccelay (layername / e_data e_layer n_layer)
(if (tblsearch "layer" layername)
(progn
(setq e_data (entget (car (entsel "\nChose an element:")));物件资料
e_layer (assoc 8 e_data);抓取物件所在图层
n_layer (cons 8 layername);新建图层点对串列
)
(setq e_data (subst n_layer e_layer e_data));切换到新图层
(entmod e_data)
);更新图元
t
)
(princ)
)
;最後这两个我想简化(因为大多一样)可是不知道怎麽办
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.25.6
1F:推 sjgau:推 ,感谢您发表自己的东西。等我有空再仔细看并 回馈 05/05 07:34
2F:推 Egriawei:谢谢,写的很粗浅不知道可以在补充什麽 05/05 11:52
※ 编辑: Egriawei 来自: 61.230.25.93 (05/07 01:18)