OpenSCAD 用户手册/STL 导出
外观
使用 F6 渲染后,可以使用“文件 -> 导出”菜单导出为 STL、OFF、AMF、3MF、DXF、SVG、CSG、PNG(图像)或 PDF。
请务必检查控制台窗口以获取错误消息。
- STL、OFF 和 DXF 使用
import()
导入 - CSG 可以使用
include<>
导入,或者像 SCAD 文件一样加载 - PNG 可以使用
surface()
导入 - 对于 SVG 和 AMF,存在开放的拉取请求,需要更多工作/测试
- 文件后缀用于确定类型
要导出设计,请从“文件 -> 导出”菜单中选择“导出为 STL...”,然后在随后的对话框中输入文件名。不要忘记添加“.stl”扩展名。
故障排除:
在编译并渲染 CGAL(F6)之后,您可能会发现您的设计是简单的:否。这是个坏消息。
请查看OpenSCAD 2010.02的以下输出中的第 8 行
Parsing design (AST generation)...
Compiling design (CSG Tree generation)...
Compilation finished.
Rendering Polygon Mesh using CGAL...
Number of vertices currently in CGAL cache: 732
Number of objects currently in CGAL cache: 12
Top level object is a 3D object:
Simple: no <*****************
Valid: yes
Vertices: 22
Halfedges: 70
Edges: 35
Halffacets: 32
Facets: 16
Volumes: 2
Total rendering time: 0 hours, 0 minutes, 0 seconds
Rendering finished.
当您尝试将其导出为 .STL 时,会出现此消息
Object isn't a valid 2-manifold! Modify your design..
“流形”意味着它是“水密”的,并且几何体中没有孔。在有效的二维流形中,每条边必须连接恰好两个面。这意味着程序必须能够将一个面与一个物体连接起来。例如,如果您使用高度为 10 的立方体从一个宽度为 10 的立方体中雕刻出一些东西,则不清楚顶部或底部属于哪个立方体。因此,使较小的提取立方体稍微“更长”(或“更短”)。
difference() {
// original
cube (size = [2,2,2]);
// object that carves out
# translate ([0.5,0.5,-0.5]) {
cube (size = [1,1,3]);
}
}
这里有一个更棘手的例子,取自OpenSCAD论坛(检索时间:2010 年 3 月 22 日,UTC 时间 15:13)
module example1() {
cube([20, 20, 20]);
translate([-20, -20, 0]) cube([20, 20, 20]);
cube([50, 50, 5], center = true);
}
module example2() {
cube([20.1, 20.1, 20]);
translate([-20, -20, 0]) cube([20.1, 20.1, 20]);
cube([50, 50, 5], center = true);
}
示例 1 将以这种方式呈现
示例 1 模块不是有效的二维流形,因为两个立方体共享一条边。它们相互接触但不相交。
示例 2 是一个有效的二维流形,因为存在一个交点。现在,构造满足二维流形约束,规定每条边必须连接恰好两个面。
您要减去的部分必须延伸到原始部分之外。(OpenSCAD 提示:流形空间和时间,检索时间:2010 年 3 月 22 日,UTC 时间 18:40)。
作为参考,另一种导致设计无法导出的是,当两个面(每个面都是减法结果)相接触时。然后会出现错误消息。
difference () {
cube ([20,10,10]);
translate ([10,0,0]) cube (10);
}
difference () {
cube ([20,10,10]);
cube (10);
}
简单地接触表面被正确处理。
translate ([10,0,0]) cube (10);
cube (10);