【MSCE13 C++】mesh面的边界提取

我想实现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

Parents Reply Children
No Data