在NX1969中目前没有找到可以计算沿实体表面最近路径的功能,对于稍微复杂实体还有避开孔洞等等。
通过网上查找资料找到两篇参考论文,有兴趣可以研究一下:
曲面上任意两点的近似最短路径算法研究 - 道客巴巴https://www.doc88.com/p-4062105607873.html三角网格模型上任意两点间的近似最短路径算法研究 - 道客巴巴https://www.doc88.com/p-8445975288671.html?s=rel&id=2
两篇论文内容相似,但细分方法不太一样,通过分析两篇论文,简化了方法,但增加了运算次数。总结一下我的方案:
1、使用PK函数离散实体成三角片体,然后根据三角片数据,构建G图;(UF函数离散也可以,不过数据还需要处理);构建G图的方式,就是三角片体的每条边作为可联通的路径;
2、通过带路径的迪杰斯塔拉寻路算法,寻找起点到终点的最短路径;
3、此处我没有做判断,直接用路径中的点位作为参考,获取以这个点位为顶点的三角片体,然后细分构建子G图,再次执行寻路,如果点位位于三角片体边上,则取这个边的两个顶点。直到迭代最小路径与上一次最小路径差值小于指定公差。
细分三角片方式,注意A为路径经过的顶点:
运行效果如下: