[MSCE C#] 如何获取体元素的点/线几何信息?

各位老师好,

现在需要用C#函数实现如下:

将一个体元素的点/线几何信息汲取出来。

以点做例子,现有的思路是:

1.使用 SolidUtil.GetBodyVertices(out subEntitiesOut, entityOut)后得到SubEntity[],

2.再将SubEntity转为VertexList

3.再调用其GetVertices()的方法得到三维点坐标。

卡在了第2步,不知如何实现。

想请问一下C#中是否有C++对应的以下API函数:

mdlSolid_vertexData(&point, vertex); 

mdlSolid_edgeData(&startVertex, &endVertex, &startPoint, &endPoint, &startParam, &endParam, NULL, &curve, NULL, edge);

mdlSolid_coedgeData(&edge, NULL, NULL, &nextCoedge,NULL, NULL, NULL, &reversed, nextCoedge);

以及,在C#中是否有VERTEX_TAG,ENTITY TAG这些概念?

提前感谢!

Parents
  • 如下代码提取了体的顶点信息,我测试是可以的

    Convert1.ElementToBody(out SolidKernelEntity entityOut, ele1, true, true, true);
                SolidUtil.GetBodyVertices(out SubEntity[] subEntitiesOut, entityOut);
                if (BentleyStatus.Success == SolidUtil.EvaluateVertex(out DPoint3d pt, subEntitiesOut[0]))
                {
                    string strInfo = pt.X.ToString() + "," + pt.Y.ToString() + "," + pt.Z.ToString();
                    MessageCenter.Instance.ShowInfoMessage(strInfo, strInfo, false);
                }

    Answer Verified By: mkt 

  • 非常谢谢郭工,问题解决。

    还有个问题,比如一个立方体,

    step1:使用  SolidUtil.GetBodyVertices(out SubEntity[] pointsOut, entity) 得到存有八个顶点数组

    step2: 用  SolidUtil.GetBodyEgdes(out SubEntity[] pointsOut, entity) 得到十二条边

    step3:用SolidUtil.GetEdgeVertices(out SubEntity[] subEntitiesOut, edge))  得到所有顶点数组

    但发现,直接使用subEntity.isEqual(),step1中的所有顶点和step3中的所有顶点没有一个是相等的,这让我有点疑问,因为这两个函数得到的同一个立方体的所有顶点实体。

    是否有可能得到subentity的唯一标识符? 类似subentity的tag这样的概念 ,使得step1中顶点与step3中的顶点可以一 一对应上。

Reply
  • 非常谢谢郭工,问题解决。

    还有个问题,比如一个立方体,

    step1:使用  SolidUtil.GetBodyVertices(out SubEntity[] pointsOut, entity) 得到存有八个顶点数组

    step2: 用  SolidUtil.GetBodyEgdes(out SubEntity[] pointsOut, entity) 得到十二条边

    step3:用SolidUtil.GetEdgeVertices(out SubEntity[] subEntitiesOut, edge))  得到所有顶点数组

    但发现,直接使用subEntity.isEqual(),step1中的所有顶点和step3中的所有顶点没有一个是相等的,这让我有点疑问,因为这两个函数得到的同一个立方体的所有顶点实体。

    是否有可能得到subentity的唯一标识符? 类似subentity的tag这样的概念 ,使得step1中顶点与step3中的顶点可以一 一对应上。

Children