使用 rounded/filleted 或斜角创建文本的 3D 模型

Create 3D model of text with rounded/filleted or beveled corners

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

OpenScad 太慢了。

我也尝试过 Freecad,但是 Freecad 圆角算法(来自 Opencascade)要求字形的最短线长于圆角半径。这将排除几乎所有字体。 使用 freecad,我还尝试通过使用配置文件沿着字形路径扫过来创建圆角。虽然结果看起来不错,速度也不错,但我无法从中创建有效的实体。

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

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

假设您的示例 "O" 是一个名为 "ShapeString":

的 FreeCAD shapestring
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对象也有近似函数,但不知道参数含义