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#)-干涉检查-根据间隙集获得干涉检查对链表

UG NX二次开发(C#)-建模-根据零部件名称获得模型文件所在目录

UG NX二次开发(C#)-建模-创建填充曲面(CreateFillHoleBuilder)