我建议为此使用 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
, 或三角学,如果您更喜欢生成欧拉角;您不需要在文件转换阶段进行数学运算。