如何检查 body 是否是球体

How to check if a body is a sphere

我想检查我在 BodyCollection 中使用的 body 的 body 类型是什么(如果 body 是 Sphere).

我该怎么写?

这是我试过的:

public void ChamferAll()
{
    int subtype = 1;
    string offset1 = "5", offset2 = "0", angle = "5";
    BodyCollection bodyCollection = theSession.Parts.Work.Bodies;
    List<Tag> edgeTags = new List<Tag>();
    foreach (Body body in bodyCollection)
    {
        
        if (body.GetType() == NXOpen.Features.Sphere)
            continue;
        else
        {
            Edge[] edges = body.GetEdges();
            foreach (Edge edge in edges)
            {
                edgeTags.Add(edge.Tag);
                theUFSession.Modl.CreateChamfer(subtype, offset1, offset2, angle, edgeTags.ToArray(), out Tag chamferTag);
            }

            edgeTags.Clear();
        }
        
    }
}

body.GetType() returns body 的类型,例如 sheet 或实体。 “球体”不是 body 类型。

您可以改为使用 body.GetFeatures() 获取与 body 关联的功能列表。然后 select 第一个返回的特征,并尝试将其转换为 NXOpen.Features.Sphere。如果可行,您得到的 body 就是一个球体。如果演员表不起作用,则说明您拥有的不是球体。