从命令行将球棒模型转换为 STL

3D打印 3d模型 3d 设计
2021-04-30 14:48:35

我经常有 3D 模型,其中包含球和圆柱体的布尔联合(分子模型、星图、数学设计),然后我想将其转换为 STL 模型以在 Shapeways 打印。但我不知道如何轻松做到这一点!我已经将模型作为一系列浮点数(每个球四个,每个圆柱七个),所以我不想进入图形界面来单击/拖动点。相反,我想从命令行将我的浮点数列表转换为 STL。

我认为这将是一件微不足道的事情,但我找不到什么是最好的工具。我认为,我所需要的只是一个指向哪些工具最合适的指针(尽管更详细的帮助将不胜感激:-))我认为“gmsh”可能对此有好处,但我不清楚如何使用它。

我希望这个软件是“免费的”,因为它不花钱。另外,我不是 Windows 用户,所以我希望能够在 Linux 或 macOS 下运行它。

1个回答

我建议为此使用 OpenSCAD。OpenSCAD 本身不支持读取非 3D/2D 模型或图像的数据文件,但您可以编写一个简单的程序来生成 OpenSCAD 代码。

我建议首先编写一个 OpenSCAD 文件来实现您选择的“球”和“棒”类型,例如:

module ball(x, y, z) {
    translate([x, y, z]) 
        sphere(d=10, $fn=60);
}
module stick(x, y, z, length, rx, ry, rz) {
    translate([x, y, z]) 
    rotate([rx, ry, rz]) 
        cylinder(d=5, length=length, $fn=60, center=true);
}

然后,获取您的数据文件——假设它是一个 CSV——

ball,0,0,0
ball,100,0,0
stick,50,0,0,100,0,90,0

并通过添加适当的语法将其转换为 OpenSCAD(这甚至可以使用基本的查找和替换工具来完成):

import <ball-and-stick-definitions.scad>
ball(0,0,0);
ball(100,0,0);
stick(50,0,0,100,0,90,0);

然后,生成 STL 只需openscad在生成的 OpenSCAD 源代码上运行命令即可。

如果您的摇杆参数不是欧拉角而是“起点”和“终点”,则您必须自己添加“旋转以指向……”数学,但这在 OpenSCAD 的能力范围内,因为它具有矢量数学运算和multmatrix, 或三角学,如果您更喜欢生成欧拉角;您不需要在文件转换阶段进行数学运算。