OpenSCAD用戶手冊/其他二維數據格式
目前,OpenSCAD僅支持DXF作為其2D圖形格式。而其他常見的格式還有PS/EPS, SVG與AI。
PS/EPS
[編輯]pstoedit程序可在各種向量圖形格式之間進行轉換。需要為此dxf插件指定-polyaslines
選項才能輸出OpenSCAD可以識別出的文件。-mm
選項則把1mm設置為dxf中的1個單位;如果您想令OpenSCAD中1個單位為1毫米就可以加入此選項。-dt
選項令pstoedit渲染文本,如果您的文件中包括文本通常可以加入此選項。(如果被渲染文本以多邊形表示的分辨率過低,可以簡單地在轉換之前對eps文件內容按比例放大;如果你知曉更優秀的解決方案,請在此添加示例。)
pstoedit -dt -f "dxf: -polyaslines -mm" infile.eps outfile.dxf
SVG
[編輯]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
來構建特定的文件,但是上述代碼令您可以僅通過調用make
或 make all
來(重新)構建特定目錄下的所有dxf文件。
此代碼也具有頗具通用性,可將其編寫至單個文件之中,再通過下列命令以symlink方式,連接每個需要將svg轉換為dxf的文件夾中的makefile:
ln -s /path/to/this/svg_to_dxf_makefile makefile
AI (Adobe Illustrator)
[編輯]儘管Adobe Illustrator CC/CC.2014允許您將其製作的圖像導出為DXF (而且早在12版的時候就可令用戶選擇DXF格式),但OpenSCAD仍不支持AI所用的DXF實體,例如POLYLINE
與SPLINE
。
由於pstoedit原生不支持Adobe Illustrator文件,因此一種替代方法是使用EXDXF,這是一款Adobe Illustrator插件(30天免費使用導出功能,過期後必須支付$90去註冊此插件)。
導出之前,我們建議您確保自己的Artboard與待導出的目標組件有相同的維數(dimensions)。儘管在EXDXF導出DXF時為您提供了許多選項,但與OpenSCAD有關的最重要選項是將Line Conversion
設置為Line and Arc
。
OpenSCAD並非總是提供其DXF導出工具出錯的一切有關信息。如果發生了這種情況,請選擇Design | Flush Caches
,再選中Design | Reload and Compile
。