三维模型自动添加支撑的几种实现思路

1. 概述

这段时间又开始接触切片软件了。自动支撑一直是大家都在追求的一个功能,这里写一下自己实现过的两种自动支撑,并不是最好的,作为参考提供给大家,同时作为备忘。

本文注重的是寻找到模型能够添加支撑的点,获得支撑点之后,如何添加支撑的动作,可以参考B9的添加模型方法,或者CW早期的代码添加支撑的方法,这两者是一样的。

2. 两种思路及关键算法

1. 基于三角片面中点

这种方法是先获取满足添加支撑的三角面片,然后计算三角面片的几何中点,作为可以添加支撑的点。对于三角面片十分密集的情况,我们需要使用一个hash算法来将这些点按照方格的方式来进行分类。如下图:

图片测试

不同的点进行了网格分类之后,就可以进行多个操作了,比如做树状支撑,比如做平均,来求取对应的支撑点。 有了支撑点之后,再进行下一步的添加支撑动作。

2. 基于射线的方式

这种方法交前一种更为简单。
只需要将模型摆放成斗个角度(仰视模型),然后按照一定的规律(每间隔一定距离)依次生成一根射线,射线如果与模型相交,则求出对应的焦点,并将该点作为支撑点保存下来,再在下一步用该点生成对应的支撑结构。类似的效果如下图:

图片

3. hash算法来源

这个hash算法在切片软件中,对模型进行优化的过程中也有用到,优化的目的就是将重复或者距离过近的三维坐标点排除或者合成为同一个点,这样可以对STL数据进行去冗余。可以参考CuraEngine中的OptimizenModel中的相关操作来进行实现。

参考:

https://www.google.com.hk/urla=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjVmdqe6JvQAhUnw1QKHTbvCJEQFggbMAA&url=http%3a%2f%2fwww%2ecmemo%2eorg%2ecn%2fCN%2farticle%2fdownloadArticleFile%2edo%3fattachType%3dPDF%26id%3d5915&usg=AFQjCNG2axBNlvLb2W-3hFmoebGDSvVt2g

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览33962 人正在系统学习中

来源:捧灰

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年10月7日
下一篇 2016年10月7日

相关推荐