Cura是一款开源3D打印机的切片引擎。
切片程序的主要过程如下: i. 导入3D模型(STL,OBJ等等)。 ii. 分析并修复3D模型(源码里面貌似木有这一步…)。 iii. 将3D模型切割成2D层。 iv. 用上一步得到的2D图层形成LayerParts(他们自己的叫法),因为一层里面,很有可能有很多个不同的多边形,比如桌子,他的四个角,切出来后是四个圆形,上一步中只是得到了四个圆形,而没有确定这四个圆形是属于同一层的。 v. 进一步确定LayerParts中,各个part间的关系,比如得到了两个圆,大圆套小圆,我们就需要确认,小圆是空心的,而大圆和小圆形成的圆环是实心的。 vi. 将需要实心打印的部分标记出来(100%填充)。 vii. 将需要空心打印的地方打印出来(部分填充)。 viii. 根据生成的LayerParts生成每一层的G-code。上述的每一步都有更多的逻辑关系在里面,但这只是一个工作的大概流程。切割引擎所有的数据都存放在一个叫SliceDataStorage的类里面。记住,上述的每一步都是基于前一步的数据来进行的。这里严格按照上述的流程来处理3D模型生成G-code。另外,在代码里面,坐标是用64位整数的形式存在的,比如,你在代码中看到的1000,他实际代表了1mm。这样做是因为Clipper使用了64为整数来表示距离。
评论