3D打印技术之切片引擎(6)
来源:互联网 发布:集合卡尔曼滤波算法 编辑:程序博客网 时间:2024/05/01 12:07
3D打印技术之切片引擎(6)
文章转自:http://blog.csdn.net/fourierFeng/article/details/47605363
这一篇文章说一下填充算法中的网格填充,网格填充在现有的较为成熟的引擎中是很普遍的:skeinforge从扫描线的连续性上考虑采用的四边形填充,看下图:
打印顺序:
slice3r从模型的柔韧性上考虑采用的是六边形填充(蜂窝填充),cura从打印速度及开发成本上考虑则主要采用的是线填充(不知道现在是否还是这样,去年的时候cura因此打印质量不如skeinforge和slice3r)。我的上一家雇主,为了实现建筑打印,从模型硬度上考虑则需要实现三角形填充(理论上讲三角形填充也不是最合适,下文将提到)。
为什么那么多切片程序都默认网格填充,很大原因是它可以不做任何改变的兼顾各种拓扑结构,连续性强,平均长度和方差都相对符合打印机的基本要求(请参看第一讲切片引擎的基本要求),而且开发起来也相对容易。
在我的程序里,不局限于是多边形填充,理论上可以是任意填充图案的,动态加载图案,然后动态拼接成网状。我的方案是先把基本图形单元存入xml,然后在程序中像拼地板砖一样把它扩展,最后就实现了网格填充。
下面xml文件代码为正三角形填充图元,具体格式如下:
<?xml version="1.0" encoding="utf-8" ?><Rectangle LineCount="3" XVol="0.1" YVol="0.1" Angle="30"> <Line> <Begin x="0.10" y="0.10"/> <End x="0.10" y="0.00"/> </Line> <Line> <Begin x="0.10" y="0.00"/> <End x="0.00" y="0.00"/> </Line> <Line> <Begin x="0.10" y="0.00"/> <End x="0.00" y="0.10"/> </Line></Rectangle>
这是正三角形填充的一个基本图元,其中
下面的xml代码是正六边形填充的基本图元:
<?xml version="1.0" encoding="utf-8" ?><Rectangle LineCount="6" XVol="3.00" YVol="1.73" Angle="0"> <Line> <Begin x="0.00" y="0.87"/> <End x="1.00" y="0.87"/> </Line> <Line> <Begin x="1.00" y="0.87"/> <End x="1.50" y="1.73"/> </Line> <Line> <Begin x="1.00" y="0.87"/> <End x="1.50" y="0.00"/> </Line> <Line> <Begin x="1.50" y="0.00"/> <End x="2.50" y="0.00"/> </Line> <Line> <Begin x="2.50" y="0.00"/> <End x="3.00" y="0.87"/> </Line> <Line> <Begin x="3.00" y="0.87"/> <End x="2.50" y="1.73"/> </Line></Rectangle>
接下来在程序中把它展开,然后用clip算法。这样就得到了所有的填充矢量的集合,下面最关键的是把这些填充矢量收尾相接的,间断次数最少的组织起来(可参考图的深度优先遍历),注意:这里填充矢量的方向在组织的时候是可以改变的。以及把长度小于阈值的边给去掉。这样就实现了最简单的网格填充。
我们平时所说的填充大都指的是二维概念上的,能不能实现三维概念上的填充,或者说是不是有必要实现三维的填充,我认为是有必要的,就像是我上面提到的建筑材料的打印,要尽可能的硬度大,就需要实现类似于金刚石的内部结构,就应该是一个正四面体的填充,这就是一个三维概念上的填充。实现方法和上面提到的类似,只不过图元扩展和clip的时间复杂度要大得多,三维的clip算法目前有没有较为成熟的这个我本人还没有去研究过。
- 3D打印技术之切片引擎(6)
- 3D打印技术之切片引擎(6)
- 3D打印技术之切片引擎(3)
- 3D打印技术之切片引擎(3)
- 3D打印技术之切片引擎(1)
- 3D打印技术之切片引擎(2)
- 3D打印技术之切片引擎(4)
- 3D打印技术之切片引擎(5)
- 3D打印技术之切片引擎(7)
- 3D打印技术之切片引擎(1)
- 3D打印技术之切片引擎(2)
- 3D打印技术之切片引擎(4)
- 3D打印技术之切片引擎(5)
- 3D打印技术之切片引擎(7)
- 3D 打印切片软件 CuraEngine 介绍
- 3D打印技术
- 3D打印技术
- 3D打印机切片引擎Cura分析<一>
- 3D打印技术之切片引擎(5)
- the method to speed up your app
- android开发——.so文件相关知识点
- 修改SQL数据库中表字段类型时,报“一个或多个对象访问此列”错误的解决方法
- Android Studio多渠道打包和代码混淆教程
- 3D打印技术之切片引擎(6)
- 东庄镇党委书记黄少敏收礼十条中华,4瓶茅台酒
- Android studio 在电脑蓝屏后 报错的解决方法
- PIG: Exception in thread "main" java.io.IOException: Per
- containsKey()方法
- 3D打印技术之切片引擎(7)
- 短期技术规划
- mySql学习(2)
- dateUtils.js