作者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
推 sjgau:推 ,感謝您發表自己的東西。等我有空再仔細看並 回饋 05/05 07:34
推 Egriawei:謝謝,寫的很粗淺不知道可以在補充什麼 05/05 11:52
※ 編輯: Egriawei 來自: 61.230.25.93 (05/07 01:18)