我想实现mesh面的外边界提取,在论坛里找了一下之前的帖子,也试了帖子中说的方法,比如下面帖子中的方法:
使用未公开的函数mdlMesh_extractVisibleChains,但是得到的结果不对
//获取待删除面片的外边界 MSElementDescrP edpInputMesh = eehOut1.GetElementDescrP(); MSElementDescrP ppResultDescr = NULL; mdlMesh_extractVisibleChains(edpInputMesh, &ppResultDescr, false); if (ppResultDescr != NULL) { printf("ppResultDescr != NULL\n"); mdlElmdscr_add(ppResultDescr); }
也试了这样的方法:
mdlMesh_getPolyfaceArrays(ppResultDescr,pIndices,pXYZ,&pNumIndexPerFace,NULL); mdlMesh_filterMultiplyDrawnEdgesExt(pIndices,1,TRUE,TRUE); mdlMesh_edgeCoordinates(pEdgeXYZArray,pIndices,pXYZ,1,TRUE);
更尝试了polyfaceHeader里面的函数:
ExtractBoundaryStrings
得到的结果都不是mesh的外边界;
请教各位老师,如何得到mesh的外边界?
下面的文件是测试文件:
,测试提取mesh边界.dgn
参考的帖子链接:communities.bentley.com/.../v8i-mdl-mesh
您是想获取Mesh投影的外边界还是Mesh面的真实外边界?
真实外边界,效果就是跟MSCE自带的mesh工具中的Extract boundary工具一样,或者一个mesh的真是外边界,真是坐标。
Work smart, not just work hard!
您这个Mesh元素有问题,您用下图所示的工具查看一下有一个void的:
小郭老师 我也发现提取mesh边界这个问题 本特利自带画的mesh 用mesh Audit也一样会出现一个void 但他用mdlMesh_extractVisibleChains提取就没问题