适用版本:NX7.5版本
在做NX二次开发时,开发人员会使用属性对特殊对象做标记处理或记录信息,而在NX7.5中,属性功能仍然只是“半成品”,还有很大的完善空间,下面我将介绍几个开发人员经常会遇到的问题以及相应的解决方法。
NX7.5版本的部件属性只支持字符串类型
用过高版本的人都知道,部件属性是支持所有属性类型,如图1所示。但是在NX7.5版本,部件属性只能输入字符串型,如图2所示。
图1
图2
解决方法:尽可能只传入字符串型数据;若一定要其他类型数据,可以先转换成字符串型,后续读取时再反向转换读取即可;也可以考虑储存到其他对象属性上。
NX7.5版本的属性不支持布尔类型和多值类型
用过高版本的人都知道,属性中一般含有布尔类型可以选择,且在任意类型下都有“允许多值”选项可以选择,如图3所示。但是在NX7.5版本的属性中,这两个功能都不支持,如图4所示。
图3
图4
解决方法:尽可能规避布尔值以及多值情况;布尔值可以通过字符串值为“TRUE”或“FALSE”来替代;多值可以用给属性名称添加流水码后缀的方法,来区分每一级,这个方法需要封装相应的写入和读取功能,如图5所示。
图5
NX7.5版本的部分属性没有手动编辑界面
用过高版本的人都知道,属性一般都可以直接从对象的右键菜单中找到并编辑。但是在NX7.5版本的部分对象的属性,是没法在界面中直接编辑的,如图6所示。只能通过对象的信息按钮查看属性信息,如图7所示。目前已知的这类对象有图纸页、投影视图和模型视图。
图6
图7
解决方法:尽可能规避在这类对象上储存或标记信息;尽量减少手动查看或编辑属性的需求;自行开发编辑界面,方便手动查看或编辑属性。
NX7.5版本的属性值的字节长度有限制
对于储存信息或标记对象的属性来说,我们下意识认为其储存的的内容应该是可以很多的才行。但是经过测试,在NX7.5版本的属性中,属性值只能储存132个字节的内容。超过该大小时,写入会报错,如图8所示。
图8
解决方法:尽可能规避在储存超过132个字节的信息;超出范围时,可以采用和上述问题2中多值问题类似方法,将属性拆分成多个值,并用流水码的方式区分;在代码上使用“Encoding.UTF8.GetByteCount(“”)”的方法可以获取输入内容的字节数量。
在无法规避开发版本的前提下,应对不同版本的一些开发问题,是需要经验慢慢累积。通过本文分享,让更多人了解NX7.5的一些开发小技巧。