OpenSCAD 用户手册/其他二维格式
目前,OpenSCAD 仅支持 DXF 作为二维图形的图形格式。其他常见格式包括 PS/EPS、SVG 和 AI。
程序 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
可以使用 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 文件。
此代码也足够通用,可以将其放在单个文件中,并在每个包含用于 dxf 转换的 svg 文件的目录中通过运行以下命令将每个 makefile 创建符号链接
ln -s /path/to/this/svg_to_dxf_makefile makefile
在每个相应的目录中。
尽管 Adobe Illustrator CC/CC.2014 允许您将插图导出为 DXF(并选择 DXF 格式版本,最早可追溯到 12),但它使用 OpenSCAD 不支持的 DXF 实体,例如 POLYLINE
和 SPLINE
。
由于 pstoedit 本身不支持 Adobe Illustrator 文件,因此可以使用 EXDXF 作为替代方案,它是一个 Adobe Illustrator 插件(30 次免费试用导出,之后您需要支付 90 美元才能注册该插件)。
在导出之前,建议您确保画板与您要导出的组件的尺寸相同。尽管 EXDXF 在导出到 DXF 时提供了许多选项,但对于 OpenSCAD 兼容性而言,最重要的选项是将 线转换
设置为 线和圆弧
。
OpenSCAD 并不总是提供有关它在 DXF 导入中遇到的问题的信息。如果发生这种情况,请选择 设计 | 清理缓存
,然后选择 设计 | 重新加载和编译
。