我正在为3D打印目的使用网格切片工具。一般来说,它应该将3d网格模型切成2d形状(多个多边形,可能带有孔),并使用特定图案填充确定厚度的路径。这些路径将用于生成3d打印机固件的gcode命令。多边形填充算法
有各种开源工具,同样的目的,写在Python和Perl。但我的目标是理解切片机的工作流程并用C或C++编写我自己的工具。
到目前为止,我能够得到片的轮廓,现在该怎么处理路径填充。问题是我没有找到有效的算法来做到这一点。 甲填充实例的示意性过程:
任何人都可以建议如何生成这些填充路径?谢谢。
目前我使用下面的算法:
- 查找形状的边界框
- 拆分BB垂直线(行数= bb.width/path.thickness)
- 找到形状和每条线的交点(应该是每条线两个点)
- 从这些点构造一个线段与边界的偏移
- 添加段,将原来的网段连接在一起,形成一个线带
- 我们准备生成G代码或绘制路径
这是简单而快速的算法,但它确实不适用于凹多边形和带孔的多边形。它也只使用一个指定的模式。
图上这两个点是蓝色的。如果其中一个是绿色的? – ElKamina 2013-03-27 20:02:33
另外,填充路径有哪些限制? – ElKamina 2013-03-27 20:04:13
请注意,有两条不同的路径,每条路径都有起点和终点。 – san 2013-03-27 21:48:18