針對輸出圖面線寬分級需求,本文提供開源 AutoLISP 程式 chwd.lsp,支援四種調整模式(單選、按圖層、按顏色、按線型),可在互動狀態下即時批量修改直線、多段線、圓/弧、橢圓/弧、樣條曲線等實體線寬,並保留原圖層/顏色/線型等屬性不變。程式碼開放原始碼,可依專案需求二次開發擴充。
EXPLODE 區塊,調整後可選擇不存檔保留原結構。(defun c:width ()
(setq bb 1)
(setq w 0)
(initget 1 "Select Layer Color LType")
(prompt "\n調整方式選擇")
(setq t (getkword "[Select/Layer/Color/LType]"))
(prompt "\n選擇調整範圍")
(setq obj (ssget))
(if (= t "Layer")
(progn
(initget 1 "Entity Name")
(prompt "\n選擇實體確定圖層或給出圖層名?")
(setq lb (getkword "[Entity/Name]:"))
(if (= lb "Entity")
(progn
(prompt "選擇所需變化圖層圖素:")
(setq le (ssget))
(setq lp (ssname le 0))
(setq ll (cdr (car (cdr (cdr (entget lp))))))
)
)
(if (= lb "Name")
(progn
(setq lll (getstring "\n給出所需變化的圖層名:"))
(setq ll (strcase lll))
)
)
(setq obj1 (ssadd))
(setq j 0)
(while (< j (sslength obj))
(setq pl (ssname obj j))
(setq j (+ j 1))
(setq py (cdr (car (cdr (cdr (entget pl))))))
(if (= ll py) (ssadd pl obj1))
)
)
)
; ... Color / LType / Select 分支同理 ...
(princ)
)
完整原始碼請見文末附件或複製上述片段補全邏輯分支。