NX二次开发-装配环境下零件的三种属性
适用版本:NX6及以上
在进行NX二次开发时,某些业务场景需要对装配环境下的零件赋予属性,要注意的是如果编辑对象只是单个零件,即在当前环境下不存在父级对象,则只有一种属性可以编辑,即部件属性;如果编辑对象是一个组件,则在当前环境下存在父级对象,则此时将存在三种类型的属性可以编辑,分别是部件属性、实例属性与组件属性。
部件(Part)、实例(Instance)与组件(Component)是装配中重要的三种对象(NX Object)。部件属性、实例属性、组件属性分别也对应着上述三种对象。
在NXOpen当中,当读取当前装配的装配结构后,会获取到所有的组件对象。此时如果要编辑组件属性,则直接对组件对象使用NX对象属性相关的方法即可。例如:NXObject.SetUserAttribute()、NXObject.HasUserAttribute()、NXObject.GetUserAttribute()等等。
若要编辑部件属性,则需要先通过组件对象获取到对应的部件对象,方法如下:先利用NXObject.Prototype()可以获取到组件对象的原型对象,此时再用INXObject.OwningPart()获取到原型对象所属的基础部件对象(BasePart),此时可将基础部件对象强转为部件对象(Part),部件对象会包含更多的信息。获取到部件对象,即可使用NX对象属性相关的方法进行操作。
若要编辑实例属性,则可以使用组件对象自带的用于操作实例属性,例如:Component.GetInstanceUserAttribute()、Component.
SetInstanceUserAttribute()、Component.HasInstanceUserAttribute ()等等。
需要注意的是三种属性是存在继承关系的,组件属性继承于实例属性、实例属性继承于部件属性。即若是设置一个部件属性,则该属性会自动映射到实例属性与组件属性上;若是设置一个实例属性则会自动映射到组件属性上。咱们可以在属性编辑界面中看到每个属性是否是从父级对象继承过来。如下图所示,属性列表中存在“继承”列,若存在对应的图标,则代表该属性来自于父级对象,将光标移动至图标上可以看到属性来源于何处。
图1 属性编辑窗口
但如果在子级对象中编辑自动继承的属性时,则会打破这个关联性,这是在做NX二次开发时必须注意的一点。
部件属性会记录至组件对应的部件文件中,而实例属性与组件属性则只会记录至所在装配的部件文件中。
综上所述,如果大家碰到类似的业务场景,可以通过上诉的方法对部件属性、实例属性、组件属性进行操作,但在开发当中要注意三者的关联性,避免误操作造成数据出错。
免责声明:
1、本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
2、本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。
3、本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
4、侵权违法和不良信息举报 举报邮箱:cnddit@qq.com
还没有评论,来说两句吧...