UG NX二次开发(C#)-特征-根据Feature获得CoordinateSystem对象
Posted GimiGimmy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UG NX二次开发(C#)-特征-根据Feature获得CoordinateSystem对象相关的知识,希望对你有一定的参考价值。
1、前言
在UG NX二次开发中,经常遇到需要根据特征获得对象的情况,这就要知道特征与对象的关联关系。本文以坐标系CoordinateSystem对象为例,说明特征与对象之间的开发思路。
2、获取特征
在一个工作部件中,特征是存放在FeatureCollection集合中。将集合存放在特征数组中,代码如下:
workPart = theSession.Parts.Work;
FeatureCollection featureCollection = workPart.Features;
Feature[] features = featureCollection.ToArray();
3、识别坐标系的特征
在特征数组features中,根据每个特征的类型,识别出坐标系特征。代码如下:
foreach(var fe in features)
if(fe.FeatureType== "DATUM_CSYS")
4、获得坐标系特征具有的所有对象
在特征中,获取对象的方法是GetEntities(),其类型是NXObject[],获得坐标系特征中所有NXObject对象,代码如下:
foreach(var fe in features)
if(fe.FeatureType== "DATUM_CSYS")
NXObject[] nXObjects = fe.GetEntities();
foreach(var nx in nXObjects)
5、根据对象类型识别出NXOpen.CartesianCoordinateSystem对象
在坐标系特征的对象数组中,是NXOpen.CartesianCoordinateSystem对象,不是cartesianCoordinateSystem对象。NXOpen.CartesianCoordinateSystem对象可以通过类型来判断,即:
foreach(var fe in features)
if(fe.FeatureType== "DATUM_CSYS")
NXObject[] nXObjects = fe.GetEntities();
foreach(var nx in nXObjects)
if(nx.GetType().ToString()== "NXOpen.CartesianCoordinateSystem")
6、将NXOpen.CartesianCoordinateSystem对象强制转换为cartesianCoordinateSystem对象
foreach(var fe in features)
if(fe.FeatureType== "DATUM_CSYS")
NXObject[] nXObjects = fe.GetEntities();
foreach(var nx in nXObjects)
if(nx.GetType().ToString()== "NXOpen.CartesianCoordinateSystem")
NXOpen.CartesianCoordinateSystem cartesianCoordinateSystem = (NXOpen.CartesianCoordinateSystem)nx;
NXOpen.CoordinateSystem coordinateSystem = (CoordinateSystem)cartesianCoordinateSystem;
开发者涨薪指南
48位大咖的思考法则、工作方式、逻辑体系
以上是关于UG NX二次开发(C#)-特征-根据Feature获得CoordinateSystem对象的主要内容,如果未能解决你的问题,请参考以下文章
UG NX二次开发(C#)-CAM-不再高亮显示所有的加工特征(CAMFeature)
UG NX二次开发(C#)-Part-根据模型名称获取part的对象
UG NX二次开发(C#)-Part-根据模型名称获取part的对象
UG NX二次开发(C#)-干涉检查-根据间隙集获得干涉检查对链表