發表文章

目前顯示的是 7月, 2025的文章

AutoCAD LISP 載入或重新載入線型

 內建線型定義檔(.lin),acad.lin 用於英制單位,而 acadiso.lin 則用於公制單位。(在 AutoCAD LT 則是 acadlt.lin 和 acadltiso.lin) 範例1:載入或重新載入內建所有線型(使用 -linetype指令 ) ;;;程式說明:從 lin 檔案載入或重新載入內建所有線型 ;;;作者:ronjonp ;;;來源: lsp 從 .lin 檔案載入或重新載入所有線型 (defun c:loadlt (/ ex v va)   (setq va (mapcar 'getvar (setq v '(cmdecho expert))))   (mapcar 'setvar v '(0 5))   (foreach lt (if (= 0 (getvar 'measurement)) ; <-是否英制 ;; 或將您的自訂檔案新增至清單中,如果不在搜尋路徑中,請提供完整路徑 '("acad.lin") ;; 公制 '("acadiso.lin")       )     (and (findfile lt) (command "._-linetype" "_Load" "*" lt ""))   );_foreach   (mapcar 'setvar v va)   (princ) );_defun_end 範例2:載入指定名稱清單的線型,如果已有載入則重新定義 (使用-linetype指令) (setq linelist '(("Dashed" . "acadiso.lin")                  ("Hidden" . "acadiso.lin")                  ("Special" . "Special.lin"))) (foreach  lin linelist   (if (tblsearch "LTYPE" (car li...

AutoCAD LISP 圖層的性質與群組篩選方法

圖片
不想要一個一個手動新增,可以做成巨集或是LISP來快速新增圖層的性質 (Property) 與群組 (Group) 篩選 (Filter) 分類。  方法1:使用指令(-LAYER) 範例1:新增圖層的性質篩選(名稱:凍結圖層,性質:凍結圖層) 1. 輸入指令: -LAYER 輸入選項 [?/建立(M)/設定(S)/新建(N)/更名(R)/打開(ON)/關閉(OFF)/顏色(C)/線型(L)/線粗(LW)/透明度(TR)/材料(MAT)/出圖(P)/凍結(F)/解凍(T)/鎖住(LO)/解鎖(U)/狀態(A)/描述(D)/調和(E)/外部參考(X)]: 2. 輸入: filter  (此未顯示在指令選項中,為隱藏) 輸入圖層篩選選項 [新建(N)/設定(S)/更名(R)/編輯(E)/刪除(D)/結束(X)]: 3. 輸入: N (新建) 選取圖層篩選類型 [群組(G)/性質(P)]: 4. 輸入: P (性質) 輸入父系圖層篩選 <全部>: 5. 輸入:直接按下 Enter鍵 (此為不在任何分支之下;如果要在已有篩選之子項要輸入此項) 輸入性質篩選定義: 6. 輸入: frozen=="true" (此為凍結圖層)(如果多條件要同時輸入在此處) 輸入圖層篩選的名稱: 7. 輸入: 凍結圖層 (此為決定篩選名稱,不能空白或重複名稱) 輸入圖層篩選選項 [新建(N)/設定(S)/更名(R)/編輯(E)/刪除(D)/結束(X)]: 8. 輸入:直接按下 Enter鍵 結束指令 (如果沒有要繼續輸入) 這樣就新增圖層篩選完成 指令巨集: ^C^C-layer;filter;n;p;;frozen=="true";凍結圖層;; LISP: (Command "-layer" "filter" "n" "p" "" "frozen==\"true\"" "凍結圖層" "") 補充 性質篩選定義 : 名稱:NAME,要篩選的圖層名稱(可用萬用字元) 關閉:OFF,true/false 凍結:frozen,true/false 鎖住:locke...