各位老师,当我使用mdlMesh_extractVisibleChains提取Mesh边界(在该Mesh中,边界并不分段,是完整的)时,发现提取出来的Boundary是打散的,分段的,要使用mdlElmdscr_assembleChains才能缝合。每次缝合时,
由于Mesh分段边界之间的间距不同,设置合适的tolerance也需要反复测试,很繁琐。
然而使用MS自带Mesh Utilities中的Extract Boundary,则可以一次性提取完整的边界。想请问下,Extract Boundary工具是否有对应的API函数可以调用?
提前感谢
尝试出一种效果佳的提取Mesh边界方法:
1. 调用PolyFaceHeader的CollectEdgeMateData函数提取边界集合
2. 将边界集合转换为CurveVector,调用CurveVector的AssembleChains函数,此时并没有assemble成一个shape
3. 将curveVector中每一个Curve Primitive转成元素,调用mdlElmdscr_initOrAddToChain()函数 最后mdlElmdscr_assembleChains
得到的边界是完整的,可以围合成一个shape,而且内部没有多余的面片残留。
Answer Verified By: mkt
这个方法对复杂的mesh不行
如下面这个dgn:share.weiyun.com/Thf7ICye
---------------------------------------------------------------
中国市政工程西北设计研究院有限公司武汉分院