请选择 进入手机版 | 继续访问电脑版

NX二次开发

 找回密码
 立即注册
查看: 637|回复: 0

[技术分享] 关于NX二次开发高版本部件转低版本的问题

[复制链接]

728

主题

998

帖子

6402

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6402
发表于 2021-6-23 18:23:43 | 显示全部楼层 |阅读模式
文/唐康林 QQ125317589 E-mail: tangkl@foxmail.com
        如何使用NX二次开发方式把高版本的NX部件转换为低版本,这个问题,我记得四年前就有人问过我了,刚好这几天有人愿意出资,让我弄一下,我就花了时间写了一下代码。
        这个功能,要做好是相当的难,如果用户期望高版本转低版本还带参数,这个暂时就不要想了,基本上难搞定。除非高版本创建的特征使用的命令,在低版本都有,然后分析高版本数据,在低版本重新创建,这TM工作量太大,应该没有人去做这事。
        所以,我们说的NX高版本部件转低版本,都是无参转换的。从大方向来说,这个解决方案,很简单,就是高本转*.x_t格式,然后在低版本再打开或导入就可以了。
        但是,转*.x_t会丢失很多对象信息,一般对象信息有这些(这是用户期望在低版被保持的信息):
        ① 体,面,边的名称,属性;
        ② 体所在的图层信息;
        ③ 面的透明度与颜色;
        高版本中的属性比较复杂,比如属性有不同的类型,还可以链接表达式,那么在低版本,你是否也要创建表达式,去创建链接关系呢?还有更复杂的,如果在高版本,导出的体是有装配结构的,你还要记录这些装配结构,在低版本里面去重构并维持原来树结构,当相同零件被装配多次,你还要删除一些,再按原来的位置装配。
       所以,开发这样的功能,细节多,技术难度不大,如果说有难度的话,应该就一个。当高版本部件转换为*.x_t后,在低版本导进对象以后,怎么让高版本的对象与低版本对象一一对应。因为转*.x_t,貌似只有颜色被自动保持,其它的信息都不会被保持。
       这就需要开发者自己通过一定的方式,去将这些信息对应起来,才可以在导入*.x_t后,按高版本的信息重新设置对象的相关信息(反正有一个非常简单的方法可以将体一一对应起来)。
       一般情况下,开发工具,都要开发一个导出的,还有一个导入的(因为导入要添加附加信息)。如果期望直接在高版本转换为低版本的*.prt,有一个简单的方法,用外部开发模式,做一个创建部件并导入*.x_t功能再保存部件的工具就可以了。但这个里面也有一些细节,就算用外部模式开发,一般都要依赖于NX本身,所以还要分析用户计算上装的NX中最低版本是哪一个,然后要动态的去调最低版本NX的库创建部件导入*x_t和保存,原理就是这样简单,这是四年前,我给别人的思路。
       最牛X的就是直接分析NX的*.prt数据结构,直接按它的数据结构创建一个低版本的*.prt就可以了。这玩意,差不多就可以了,没有几个人闲得dan疼,去做这么多细节,就是花时间写代码而已,又没有太多算法。我搞这东西,也是按不同的价位,做到不同的水平。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋| ( 蜀ICP备16014681号-1

GMT+8, 2021-10-17 07:22 , Processed in 0.082435 second(s), 25 queries .

Powered by www.nxopen.cn

© 2001-2013 nxopen.cn

快速回复 返回顶部 返回列表