跳轉到內容

OpenSCAD 使用者手冊/其他二維格式

來自華夏公益教科書


目前,OpenSCAD 僅支援 DXF 作為二維圖形的圖形格式。其他常見格式包括 PS/EPSSVGAI

程式 pstoedit 可以進行各種向量圖形格式之間的轉換。OpenSCAD 需要將 -polyaslines 選項傳遞到 dxf 輸出外掛才能理解該檔案。-mm 選項將 1 毫米設定為 dxf 中的 1 個單位;如果將 OpenSCAD 中的 1 個單位設定為等於 1 毫米,請包含此選項。-dt 選項指示 pstoedit 渲染文字,這通常是包含文字時所需的操作。(如果渲染文字的多分邊形數量的解析度太低,最簡單的解決方案是在轉換之前放大 eps;如果您知道更優雅的解決方案,請將其新增到示例中。)

pstoedit -dt -f "dxf: -polyaslines -mm" infile.eps outfile.dxf

Inkscape 可以將 SVG 轉換為 EPS。然後 pstoedit 可以將 EPS 轉換為 DXF。

inkscape -E intermediate.eps infile.svg
pstoedit -dt -f dxf:-polyaslines\ -mm intermediate.eps outfile.dxf

Makefile 自動化

[編輯 | 編輯原始碼]

可以使用 make 系統自動化轉換;將以下行新增到您的 Makefile

 all: my_first_file.dxf my_second_file.dxf another_file.dxf
 
 %.eps: %.svg
 	inkscape -E $@ $<
 
 %.dxf: %.eps
 	pstoedit -dt -f dxf:-polyaslines\ -mm $< $@

第一行指定在當前目錄中呼叫 make 時要生成哪些 dxf 檔案。第二段指定如何將以 .svg 結尾的檔案轉換為以 .eps 結尾的檔案,第三段將 .eps 轉換為 .dxf。

一個更完整的 makefile 可以從資料夾中的任何 svg 自動生成 dxf 檔案。在這種情況下,將以下行新增到您的 Makefile

SVG := $(wildcard *.svg)
DXF := $(SVG:%.svg=%.dxf)
EPS := $(SVG:%.svg=%.eps)

.PHONY: all clean clean-eps clean-dxf

all: $(DXF)

%.eps: %.svg
	inkscape -E $*.eps $*.svg
 
%.dxf: %.eps
	pstoedit -dt -f "dxf: -polyaslines -mm" $*.eps $*.dxf

clean: clean-dxf clean-eps

clean-dxf: 
	rm -f $(DXF)

clean-eps:
	rm -f $(EPS)

仍然可以透過呼叫 make filename.dxf 來構建特定檔案,但此程式碼還允許僅透過呼叫 makemake all 來構建(重新構建)資料夾中的所有 dxf 檔案。

此程式碼也足夠通用,可以將其放在單個檔案中,並在每個包含用於 dxf 轉換的 svg 檔案的目錄中透過執行以下命令將每個 makefile 建立符號連結

ln -s /path/to/this/svg_to_dxf_makefile makefile

在每個相應的目錄中。

AI(Adobe Illustrator)

[編輯 | 編輯原始碼]

儘管 Adobe Illustrator CC/CC.2014 允許您將插圖匯出為 DXF(並選擇 DXF 格式版本,最早可追溯到 12),但它使用 OpenSCAD 不支援的 DXF 實體,例如 POLYLINESPLINE

由於 pstoedit 本身不支援 Adobe Illustrator 檔案,因此可以使用 EXDXF 作為替代方案,它是一個 Adobe Illustrator 外掛(30 次免費試用匯出,之後您需要支付 90 美元才能註冊該外掛)。

在匯出之前,建議您確保畫板與您要匯出的元件的尺寸相同。儘管 EXDXF 在匯出到 DXF 時提供了許多選項,但對於 OpenSCAD 相容性而言,最重要的選項是將 線轉換 設定為 線和圓弧

OpenSCAD 並不總是提供有關它在 DXF 匯入中遇到的問題的資訊。如果發生這種情況,請選擇 設計 | 清理快取,然後選擇 設計 | 重新載入和編譯

上一步

[編輯 | 編輯原始碼]

DXF 拉伸

下一步

[編輯 | 編輯原始碼]

簡短且帶註釋的示例專案

華夏公益教科書