痛點:PEDIT 單條修改,多條需逐一選取輸入,易漏選且慢。
(defun c:CH_W (/ w ent_ss n_ss j ent_n ent_a)
(princ "\n請選擇目標 (多段線):")
(setq ent_ss (ssget) w (getreal "\n請輸入線寬 <0.3>:"))
(if (= w nil) (setq w 0.3))
(if (/= ent_ss nil)
(progn
(setq n_ss (sslength ent_ss) j 0)
(repeat n_ss
(setq ent_n (ssname ent_ss j)
ent_a (cdr (assoc 0 (entget ent_n)))
j (1+ j))
(if (or (= ent_a "POLYLINE") (= ent_a "LWPOLYLINE"))
(command "PEDIT" ent_n "W" w "" "")
)
)
)
)
(princ)
)
CH_W.lsp 載入 (或加入啟動檔)。CH_W → 框選多段線 → 輸入目標寬度 (預設 0.3) → 自動批量完成。場景:單一 DWG 含多張同尺寸圖框縱向排列,間距固定 (如 500mm)。
(defun c:MPLOT ()
(setq p_1 (getpoint "\nFirst CORNER:")
p_2 (getpoint "\nOther CORNER:")
n (getint "\n總張數 <1>:"))
(if (= n nil) (setq n 1))
(setq m_d 500) ; 固定間距
(repeat n
(command "PLOT" "W" p_1 p_2 "N" "") ; "W"indow 模式列印
(setq p_1 (list (car p_1) (+ (cadr p_1) m_d))
p_2 (list (car p_2) (+ (cadr p_2) m_d)))
)
(princ)
)
MPLOT → 指定第一張圖框左下/右上角 → 輸入總張數。