dxf

dxf

熱門

從 Python ezdxf 原始碼產生、重新產生及驗證 2D DXF 圖面。適用於 DXF 檔案、gen_dxf() 原始碼、2D 輪廓、外形、模板、墊片、面板、平面圖案、雷射/電漿/水刀切割佈局,以及 CAD 幾何的 2D 圖面匯出。

1萬星標
1137分支
更新於 2026/7/11
SKILL.md
唯讀
名稱
dxf
描述

從 Python ezdxf 原始碼產生、重新產生及驗證 2D DXF 圖面。適用於 DXF 檔案、gen_dxf() 原始碼、2D 輪廓、外形、模板、墊片、面板、平面圖案、雷射/電漿/水刀切割佈局,以及 CAD 幾何的 2D 圖面匯出。

DXF 產生與驗證

來源:維護於 earthtojake/text-to-cad
使用已安裝的本機技能檔案作為執行階段的真實來源;
儲存庫連結僅供來源追溯與版本審查。

目的

根據自然語言需求或 CAD 幾何建立或修改 2D DXF 圖面,產生驗證過的 .dxf 成品,並回傳檢查結果。DXF 原始碼為定義 gen_dxf() 並回傳 ezdxf 文件的 Python 檔案;CLI 負責輸出路徑。

支援兩種原始碼形式:

  • 獨立繪圖:僅定義 gen_dxf() 的 Python 原始碼。適用於純 2D 輸出 — 墊片、面板、模板、切割佈局 — 背後無 3D 模型。
  • CAD 投影:在同時定義 gen_step() 的 CAD 產生器原始碼中加入 gen_dxf()。適用於 DXF 為 3D 零件的圖面或輪廓時;先使用 $cad 建立並驗證 STEP 幾何,然後在同一個原始檔中加入投影。

使用此技能的時機

當使用者要求 DXF 檔案、2D 圖面、輪廓、外形、模板、墊片、面板、平面圖案,或雷射、電漿、水刀、CNC 雕刻的切割佈局時,使用此技能。

對於 DXF 所衍生的 3D 零件或組立件,使用 $cad。對於 SendCutSend 特定的上傳預檢,使用 $sendcutsend

預設值

除非使用者另有指定,否則使用以下預設值:

  • 單位:公釐;在文件上明確設定(doc.units = ezdxf.units.MM)。
  • 幾何位於模型空間,比例為 1:1。
  • 切割輪廓為封閉聚合線或封閉線/弧迴圈;開放輪廓僅用於雕刻或參考幾何。
  • 對於 CAD 支援的零件,建議從同一個產生器腳本中的實際 STEP/實體拓撲推導 DXF 切割輪廓:建立 3D 形狀,選取/投影實際的平面面,將其展開為平面座標,並從這些投影的面邊線發出封閉輪廓。僅在沒有可靠的 3D 拓撲可投影時,才使用手繪參數化輪廓。
  • 圖層承載意圖:將切割幾何與彎曲/摺線放在不同圖層,並在彎曲圖層名稱中包含「bend」,以便下游工具將其分類為彎曲而非切割。
  • DXF 圖層是繪圖結構,而非 STEP 零件/組立件結構。

工具

啟動器位於 DXF 技能目錄中:

python scripts/dxf targets... [flags]

使用作用中的專案 Python 直譯器;將 python 視為直譯器佔位符,並使用 --help 取得完整介面。目標路徑從指令的當前工作目錄解析;從擁有成品的目錄執行,並使用相對於當前工作目錄的目標路徑。除非使用者另有要求,否則將 DXF 輸出及其 Python 產生器放在同一個目錄中,並使用相同的基底名稱。

DXF 目標是定義以下內容的 Python 原始碼:

def gen_dxf():
    ...
    return document

純產生的 Python 目標會寫入同名的 .dxf 輸出。僅在單一純產生的 Python 目標上使用 -o/--output,或使用 SOURCE.py=OUTPUT.dxf 位置配對來指定每個目標的自訂輸出。請勿將輸出路徑放在 gen_dxf() 的回傳值中。

scripts/dxf 是產生器;它不會檢查現有的 .dxf 檔案。對於現有 DXF 的檢查,請使用 ezdxf 進行實體/圖層檢查,並使用 $cad-viewer 進行視覺審查。

工作流程

  1. 將需求轉換為簡短摘要:外形尺寸、孔與槽、圖層、單位、輸出路徑及驗證目標。
  2. 對於 CAD 投影,先使用 $cad 產生並驗證 STEP 幾何,然後在同一個原始碼中加入或更新 gen_dxf()。在可能的情況下,從記憶體中的 STEP/實體拓撲推導 DXF,而非重複幾何公式,使 DXF 保持為所匯出零件的直接投影/展開。
  3. 編寫或編輯 Python 原始碼,使用有意義的尺寸作為命名參數。
  4. 僅對明確的 Python 原始碼目標執行 scripts/dxf;請勿執行目錄範圍的產生。
python scripts/dxf path/to/source.py
python scripts/dxf path/to/source.py -o path/to/output.dxf
python scripts/dxf path/to/a.py=out/a.dxf path/to/b.py=out/b.dxf
  1. 確定性地驗證產生的 DXF,然後交接並回報。

驗證

使用有目標的 ezdxf 檢查來驗證產生的檔案,而非目視:按類型和圖層的實體計數、切割輪廓的封閉標誌、繪圖範圍,以及使用者指定的每個尺寸。

import ezdxf

doc = ezdxf.readfile("path/to/output.dxf")
msp = doc.modelspace()
profiles = [e for e in msp.query("LWPOLYLINE") if e.closed]
holes = msp.query('CIRCLE[layer=="0"]')

僅回報實際執行的檢查。

交接

在建立或修改 .dxf 成品後,當 $cad-viewer 技能已安裝時,您必須一律將明確的檔案路徑交接給 $cad-viewer,並在最終回應中包含其即時檢視器連結。如果 $cad-viewer 不可用或啟動失敗,請回報該情況,並依賴 ezdxf 檢查,而非默默省略交接。

最終回應應包含產生的檔案、回傳的檢視器連結、實際執行的驗證,以及假設。