如何检查 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 就是一个球体。如果演员表不起作用,则说明您拥有的不是球体。
我想检查我在 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 就是一个球体。如果演员表不起作用,则说明您拥有的不是球体。