【发布时间】:2013-03-18 01:59:28
【问题描述】:
我正在开发用于 3D 打印的网格切片实用程序。一般来说,它应该将 3d 网格模型切割成 2d 形状(许多多边形,可能带有孔)并使用特定图案用确定厚度的路径填充它们。这些路径将用于为 3d 打印机固件生成 gcode 命令。
有各种用途相同的开源工具,用 python 和 perl 编写。但我的目标是了解切片器的工作流程,并用 C 或 C++ 编写我自己的工具。
到目前为止,我能够得到切片的轮廓,现在要用路径填充它们。问题是我没有找到有效的算法来做到这一点。 填充示例的示意过程:
谁能建议如何生成这些填充路径?谢谢。
目前我正在使用以下算法:
- 找到形状的边界框
- 用线垂直分割 bb(线数 = bb.width/path.thickness)
- 查找形状和每条线的交点(每条线应为两个点)
- 从这些点构造一个与边界偏移的线段
- 添加一个线段,将原始线段连接在一起形成一条线
- 我们已准备好生成 gcode 或绘制路径
这是一种简单快速的算法,但它不适用于凹多边形和带孔的多边形。而且它只使用一种指定的模式。
【问题讨论】:
-
图中两个点都是蓝色的。其中一个应该是绿色的吗?
-
另外,填充路径有什么限制?
-
请注意有两条不同的路径,每条都有起点和终点。
-
路径没有限制,除了粗细和图案。路径的数量也应该尽可能少,但这并不重要。
-
可以选择使用插入多边形吗?
标签: algorithm geometry polygon slice