跳至內容

OpenSCAD用戶手冊/其他二維數據格式

維基教科書,自由的教學讀本


目前,OpenSCAD僅支持DXF作為其2D圖形格式。而其他常見的格式還有PS/EPS, SVGAI

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來構建特定的文件,但是上述代碼令您可以僅通過調用makemake 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實體,例如POLYLINESPLINE

由於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