精華區beta Cad_Cae 關於我們 聯絡資訊
下面是我覺得圖層使用上 可能會需要的部分功能而練習寫的副程式 應該還有再補充,補強,修正或簡化的餘地 請多指教 ;============================ ;建立圖層"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)