QQ登录

只需一步,快速开始

快捷登录

登录 或者 注册 请先

UG爱好者

查看: 1707|回复: 10
打印 上一主题 下一主题

[求助] 现存prt文件中怎么才能快速生成NX_Mass部件属性表达式

[复制链接]

中尉

Rank: 5Rank: 5

7

主题

53

帖子

4052

积分
跳转到指定楼层
楼主
发表于 2022-10-19 22:11:59 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
问题来源:我想借助宏程序实现对现有零件prt文件一键生成NX_Mass以及NX_MassPropRollupMass部件属性表达式,从而提取prt文件的质量属性,方便后面工程图自动生成明细表等后续操作。

我的思路是通过宏程序一键导入相关表达式,相关表达式已经编辑好,语句逻辑上是对的,但是跑不通,如下图:


理想状态下:由于表达式中有相关变量的赋值,这样就可以非常方便实现对现有零部件prt文件的重量数据采集。

但是,通过导入表达式,确实创建了NX_Mass、NX_MassPropRollupMass表达式,但是并没有跟部件属性关联,所以无法正常提取prt文件的质量数据,从而导致后面的重量赋值无法生效。


说明:新建文件时,由于我已将模板文件中NX_Mass、NX_MassPropRollupMass部件属性表达式正常创建,因此已经可以实现一键重量赋值表达式,如下图;


由于现存图纸数量不少,如果能实现一键赋值,效率会着实提高不少,不知朋友们有啥思路,望指点一二,感谢!


有奖推广贴子: 

回复

使用道具 举报

中校

123

Rank: 7Rank: 7Rank: 7

19

主题

815

帖子

1万

积分
推荐
发表于 2022-10-20 18:57:50 | 只看该作者
纯Pure 发表于 2022-10-20 10:26
夏兄,此法甚妙,创建表达式勾选后更新质量信息后会自动创建表达式,确实解决了我想要的自动创建部件表达 ...

老实说,这么搞来搞去,有点把问题搞复杂了,能做二次开发就最好了
我心如醉,一睹芳容新月如眉,月光如水,可鉴我心无怨无悔
回复 支持 1 反对 0

使用道具 举报

中校

123

Rank: 7Rank: 7Rank: 7

19

主题

815

帖子

1万

积分
推荐
发表于 2022-10-20 18:52:12 | 只看该作者
本帖最后由 夏季里那丝清凉 于 2022-10-20 18:58 编辑
纯Pure 发表于 2022-10-20 10:26
夏兄,此法甚妙,创建表达式勾选后更新质量信息后会自动创建表达式,确实解决了我想要的自动创建部件表达 ...

emmmm~~~~勾选创建表达式后,创建的表达式名称是填写的属性别名Mass,你更改属性别名,对应生成的表达式名也跟着变动。
我这边测试了一下,当文件是单个零件且存在质量时,生成的表达式只有Mass;当文件是一个装配或子装配且存在质量时,生成的表达式只有MassProprollupMass。而且当删除掉文件内特征,让其质量归零,再次更新质量后,质量表达式将消失。
根据这一特性,想是用IF来判断就出现了问题,缺少表达式!因为软件自动生成的表达式要么只有Mass,要么只有MassProprollupMass。于是我想,如果我在软件自动生成质量表达式前就把Mass和MassProprollupMass表达式创建了会怎么样了?





从图里可以看到质量表达式是可以提前手动创建的,那么一个大胆的想法浮现在我脑中。于是我提前创建了两个质量表达式"质量"和"累计质量"。



原因很简单,文件并不存在"累计质量"属性。那么如何让"累计质量"不被删除了,也很简单,只要"累计质量"被其它表达式引用了,它就不会被删除。于是我再次尝试了一下。




进行到这一步,应该也能满足你的要求了,你的模板文件是用的NX_MASS和NX_MassProprollupMass创建的表达式,所以要么改成用户默认设置里的别名属性名称(我的是"质量"和"累计质量",默认是“MASS”和"MassProprollupMass"),要么在表达式改成NX_MASS=“质量别名”;NX_MassProprollupMass=“累计质量别名”。

老实说,这么搞来搞去有点把问题搞复杂了,能做二次开发是最好的,这么弄其实也方便不了多少....


我心如醉,一睹芳容新月如眉,月光如水,可鉴我心无怨无悔
回复 支持 1 反对 0

使用道具 举报

中尉

Rank: 5Rank: 5

7

主题

53

帖子

4052

积分
沙发
 楼主| 发表于 2022-10-19 22:28:01 | 只看该作者

回复 支持 反对

使用道具 举报

中校

123

Rank: 7Rank: 7Rank: 7

19

主题

815

帖子

1万

积分
板凳
发表于 2022-10-20 08:23:39 | 只看该作者
1,用户默认设置——基本环境:材料/质量——部件属性和累计属性下部件质量与累计质量的创建表达式勾选上。
2,任意打开一个以前的文件,保存/生成质量质量属性。
3,打开表达式,左上角的显示切换到所有表达式,表达式组切换到全部显示,你会发现右边表达式栏里多出一组质量管理的表达式。
所以导入表达式时,不需要导入NX_Mass和NX_MassProprollupMass
我心如醉,一睹芳容新月如眉,月光如水,可鉴我心无怨无悔
回复 支持 反对

使用道具 举报

中尉

Rank: 5Rank: 5

7

主题

53

帖子

4052

积分
5#
 楼主| 发表于 2022-10-20 10:26:35 | 只看该作者
本帖最后由 纯Pure 于 2022-10-20 10:28 编辑
夏季里那丝清凉 发表于 2022-10-20 08:23
1,用户默认设置——基本环境:材料/质量——部件属性和累计属性下部件质量与累计质量的创建表达式勾选上。
...

夏兄,此法甚妙,创建表达式勾选后更新质量信息后会自动创建表达式,确实解决了我想要的自动创建部件表达式的需求,非常感谢!

但是我要实现一键赋值提取质量信息的方案出现2个Bug,看夏兄是否有思路,万分感谢!


BUG1:表达式名跟通过<W@NX_MASS>/<W@NX_MASSPROPROLLUPMASS>格式化表达式生成的表达式名称不一样
如果是零件prt则只会生成MassPropMass,而不是部件属性NX_Mass表达式
如果是装配prt文件则只会生成MassPropRollupMass,而不是部件属性NX_MassProprollupMass表达式






BUG2:两个表达式无法同时存在
因为单个prt文件,如果是零件prt则只会生成MassProp(Mass NX_Mass)表达式,如果是装配prt文件则只会生成MassPropRollupMass  (NX_MassProprollupMass)表达式由于我采用if表达式判断NX_Mass/NX_MassProprollupMass方式,需要两个表达式同时存在才能正常赋值。
------------------------------------------------------------
例如:
p10=If ( NX_Mass=0&NX_MassPropRollupMass=0 )
                Then ( "0.0000" )
        Else If ( NX_MassPropRollupMass!=0 )
               Then ( format("%0.4f", NX_MassPropRollupMass) )
               Else ( format("%0.4f", NX_Mass) )
weight=ug_setpartattrvalue("weight",p10)

-----------------------------------------------------------------------------



再次感谢!

回复 支持 反对

使用道具 举报

上尉

Rank: 6Rank: 6

47

主题

493

帖子

5133

积分
6#
发表于 2022-10-20 11:12:34 | 只看该作者
搞不懂这些花里胡哨的东西,我都是做好建模跟装配的模板,跟工程图模板,只要是新建的文档填写好属性,出图时候属性自动填写,宏程序不懂
回复 支持 反对

使用道具 举报

中尉

Rank: 5Rank: 5

7

主题

53

帖子

4052

积分
9#
 楼主| 发表于 2022-10-20 20:53:15 来自手机 | 只看该作者
夏季里那丝清凉 发表于 2022-10-20 18:52
emmmm~~~~勾选创建表达式后,创建的表达式名称是填写的属性别名Mass,你更改属性别名,对应生成的表达式 ...

"在软件自动生成质量表达式前就把Mass和MassProprollupMass表达式创建了"
夏兄确实牛叉!!!!!佩服佩服!!!
回复 支持 反对

使用道具 举报

中尉

Rank: 5Rank: 5

7

主题

53

帖子

4052

积分
10#
 楼主| 发表于 2022-10-20 20:55:46 来自手机 | 只看该作者
夏季里那丝清凉 发表于 2022-10-20 18:57
老实说,这么搞来搞去,有点把问题搞复杂了,能做二次开发就最好了

不瞒夏兄:ciya:,确实已经看几节唐工的二次开发视频教程了,还需要一点时间消化:daxiao:
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

 
 
QQ:1359218528
工作时间:
9:00-17:00
 
微信公众号
手机APP
机械社区
微信小程序

手机版|UG爱好者论坛 ( 京ICP备10217105号-2 )    论坛管理员QQ:1359218528

本站信息均由会员发表,不代表本网站立场,如侵犯了您的权利请联系管理员,邮箱:1359218528@qq.com  

Powered by UG爱好者 X3.2  © 2001-2014 Comsenz Inc. GMT+8, 2024-5-4 10:32

返回顶部