创建具有圆角/圆角或斜角的文本的3D模型

时间:2015-02-10 13:40:27

标签: 3d computational-geometry mesh

我正在尝试以编程方式创建具有斜角或圆角的文本的3D模型。有关示例,请参见下图。 另一个要求是速度。应该可以在不到10秒的时间内为10个字母的单词创建一个模型。

enter image description here

OpenScad会变慢。

我也试过Freecad,但Freecad圆角算法(来自Opencascade)要求字形的最短线长于圆角半径。这将排除几乎所有字体。 使用freecad,我还尝试通过使用轮廓扫描字形路径来创建圆角。虽然结果看起来不错,而且速度还可以,但我无法用它创建有效的实体。

还有其他库可以完成这项工作吗?是否有一个库来平滑网格中的角落? Python作为语言将是首选,但我也会使用其他任何东西。 作为输出格式,任何可以转换为STL的都可以。

1 个答案:

答案 0 :(得分:3)

您可以尝试其他FreeCAD方法。当问题是字形的短边时,您可以使用单边样条近似这样的多边线。生成的实体可以随意填充(好的,仍然取决于字体和大小等。)

假设您的示例,“O”是一个名为“ShapeString”的FreeCAD形状字符串:

w1 = App.ActiveDocument.ShapeString.Shape.Wires[0]
w2 = App.ActiveDocument.ShapeString.Shape.Wires[1]

f1 = Draft.makeBSpline(w1.discretize(30), True)
f2 = Draft.makeBSpline(w2.discretize(30), True)

f = f1.Shape.cut(f2.Shape)
pad = f.extrude(App.Vector(0,0,3))
Part.show(pad)

这当然需要一些调整来处理所有字形。此外,您可能需要增加离散点数以获得准确结果,具体取决于您的需求。

其他近似方法:

  • FreeCAD Wire对象也有近似函数,但我不知道参数含义

The example "0" approximated with BSplines