萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 軟體知識 >  >> 影像處理 >> CAD 教學 >> CAD 使用教學 >> 常見案例解析

AutoCAD 批量處理 LISP 程式集:修改多段線寬度與批量列印

1. 批量修改多段線寬度 (CH_W)

痛點:PEDIT 單條修改,多條需逐一選取輸入,易漏選且慢。

CH_W.LSP 程式碼

(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)
)

使用方法

  1. 存為 CH_W.lsp 載入 (或加入啟動檔)。
  2. 命令列輸入 CH_W → 框選多段線 → 輸入目標寬度 (預設 0.3) → 自動批量完成。

2. 批量列印多張圖框 (MPLOT)

場景:單一 DWG 含多張同尺寸圖框縱向排列,間距固定 (如 500mm)。

MPLOT.LSP 程式碼 (節錄核心邏輯)

(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)
)

使用流程

  1. 調試第一張圖框列印參數 (縮放、筆寬、樣式表等)。
  2. 執行 MPLOT → 指定第一張圖框左下/右上角 → 輸入總張數。
  3. 程式自動按 Y 向間距 500 依序列印所有圖框。

擴充方向

  • 支援橫向/矩陣排列圖框。
  • 整合列印設定檔 (.pc3) 自動切換打印機/紙張。
  • 加入圖框自動識別 (以圖層/區塊名稱) 免去手動拾取角點。
copyright © 萬盛學電腦網 all rights reserved