使用 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对象也有近似函数,但不知道参数含义
我正在尝试以编程方式创建具有斜角或圆角的文本的 3D 模型。有关示例,请参见下图。 另一个要求是速度。应该可以在不到 10 秒的时间内为 10 个字母的单词创建模型。
OpenScad 太慢了。
我也尝试过 Freecad,但是 Freecad 圆角算法(来自 Opencascade)要求字形的最短线长于圆角半径。这将排除几乎所有字体。 使用 freecad,我还尝试通过使用配置文件沿着字形路径扫过来创建圆角。虽然结果看起来不错,速度也不错,但我无法从中创建有效的实体。
还有其他库可以完成这项工作吗?是否有一个库可以平滑网格中的角? Python 作为首选语言,但我也会使用其他任何语言。 作为输出格式,任何可以转换为 STL 的格式都可以。
您可以尝试另一种 FreeCAD 方法。当问题是字形的短边时,您可以用单边样条近似这样的多边线。生成的实体可以随意填充(好吧,仍然取决于字体和大小等。)
假设您的示例 "O" 是一个名为 "ShapeString":
的 FreeCAD shapestringw1 = 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对象也有近似函数,但不知道参数含义