文章目录
前言
cnc仿真技术
记录下了解到的现有仿真技术,暂不考虑刀具移动扫掠体的创建。cnc仿真相当于是做一个优化的快速布尔运算,与有限元/有限网格等CAE方法还是有很大不同(但感觉一些网格划分方法还是可以用到其中),目前市场长最通用的cnc仿真软件是Vericut,一些公司也会用商业库MachineWorks。
谈及布尔运算,大家可能都会想到使用三角面片的布尔运算库来实现,但无论是速度还是稳定性,即使用上优秀的cork(基于csg)库还是会无法满足实时仿真的需求。
精确的布尔运算无法满足实时仿真要求,那基于空间近似的方法便应运而生,无论dexel还是体素,都是对模型的近似,以达到实时仿真要求。
一、Dexel方法
dexel方法将三维的布尔简化成一维的布尔运算(射线与模型求交,直接标记射线各段穿过模型的状态),最后通过三维重建方法获得三角面片。
网上的论文和介绍的文章比较多,就不赘述了。
先提一下离散矢量法,这个方法和dexel非常相似,又叫“割草法”,但它只能生产图像,无法生产实体,若要有使用价值还得改进。
dexel文献中的一些示意图。
dexel的难点在于重建,重建的方法非常多,其重建后的结果有流行的,也有非流行的。
二、三角面片重建
网上对于这方面的文章非常多,推荐一个博主 https://www.boristhebrave.com/2018/04/15/marching-cubes-3d-tutorial/
1.MachingCube
MachingCube是各类重建方法的鼻祖,自它问世之后,各类重建方法如雨后春笋版冒出。
MachingCube着眼于每个网格与原始模型(等参面之类的)的相交情况,枚举所有相交类型并简化,最后重建时根据查表生成对应的三角形。
原始的MachingCube不完善,有各种各样的问题,没有尖锐特征、拓扑奇异性、无法自适应等等,实际应用的往往是其改进型(EMC)。
2.DualContour(对偶轮廓)
DC重建最大的问题是拓扑依赖,难以并行化。
3.Cubical Marching Squares(cms)
cms(2005年)另辟蹊径,不再着眼于单个cell,考虑整个八叉树上叶子节点的面片,最后将面片连接起来形成一个闭合实体,作者使用共享数据的方法(八叉树),消除了裂缝。
作者给出了cms相对于前人方法的优势
三、动态体素(体素+八叉树Octree)
在各类方法中我比较看好动态体素(叶节点最后可以生成四面体),因为天生是实体,不省去了连三角形的麻烦事,没有缝隙(即使有精算精度影响),因为无论怎么优化大家都要使用八叉树,主流的cnc仿真又要带一点CAE的特点,如计算体积去除率、刀具受力分析等等,而动态体素又可以很好的和有限元联合起来,虽然生产的三角面片或模型是非流行的。
提一嘴,体素是一种热门的技术,无论在全局光照(包括热门的sdf)中,还是在自动驾驶中,都有涉及。
上图中十几年前的结果仿真一个叶轮粗加工在10分钟左右(没有刀具移动扫掠体创建耗时),放到如今,结合一些优化技术(GPU),做到实时仿真是没有问题的。
总结
挺有意思的。