|
本帖最后由 jefft 于 2017-1-19 19:06 编辑 ) u" n+ N/ Q3 A, h4 g% }
- n1 E9 I0 X7 ?4 V; Z7 A. f/ D一、二次开发背景
3 {* {4 e. f. Y4 Z! M }1 {+ Q 2014年,我当时所在的公司刚上PLM系统,PLM系统中间有一个映射表,是用来提取NX装配各部件属性的,最终就在PLM里面形成了BOM表;这就要求工程师在上传每一个NX部件的时候,都要对该部件设置属性。(且属性的名字,不能随意,要与PLM的映射表对应。)" t4 ?- |0 k- f6 ~' J8 o% b
而NX的每个部件,默认打开是不会自动去写属性的,所以西门子官方推出了一个GC工具,可以利用它来写属性,而属性的关键字要在gc_tool.cfg里面去配置。(只要看过我教程的就知道怎么弄). c, E1 D' \7 z, V6 G
尽管GC工具给我们带了一定的方便,但还是有很多的不足,比如:①GC工具中的属性工具那个对话框太难调了;②每次打开这个命令都要先弹一个警告;③该命令只能对单一部件设置属性。8 f& @0 S. ]8 r
根据我的观察,很多工程师,并不会设计好一个零件(.prt)就马上对该零件(.prt)去设置属性,往往都是装配好了一堆零件,想出图了,才发现,还有很多的部件没有设置属性。这个时候,带来的繁琐操作,就是要不断的在很多的部件中来回切换,次数搞多了,都不记得某一个部件刚才设置了属性没有。* I( |% a: r( P5 u- p
因此,2014年,我旁边的模具科有个同事,就问我,有没有一个功能,可以打开一个界面,一次性把所有的部件属性设置好,点确定就搞定。根据我对NX的理解,目前没有直接的功能来实现这个,但有一个差点的方法,操作起来也相当繁琐的。
* M- U7 D: \9 \- ~ 刚好这几天没有啥事,我就花了点时间,把这个功能给二次开发出来了,一个完全支持扩展的命令,自认为还是些许“高大上”的,有兴趣的往下看。
% g8 F; I* X- n二、工具下载
; ? x5 s7 K0 I% ? 1、 前提:安装我本人开发的“森焱工具V11.2.0”版,截止2017年1月19日未开放下载。计划在2017年2月3日开放下载,下地址: 链接: http://pan.baidu.com/s/1pKCFQmJ 密码: gn8t
a" |8 `8 o' Q% U7 f三、工具使用方法- `# {9 M# r' B) S5 w7 ]
1、工具安装好以后可以在下图的位置看到这个命令。
$ P, d N N9 p0 |/ g. h. g
5 ^3 c; |# d. g, {, E) [/ s8 z
9 `: M. N9 V- C# w" X v6 E& _ 2、当打开这个命令的时候,出现下图这样。部件名那一列,自动读取了装配树结构(已经做了打包功能),而右边列显示的多少,以及标题的名字等,都是通过本地的\NX 11.0\TKLTOOLS\Configuration\Tangkl_Set_ATT.xml 文件来配置的,如果你觉得这些属性的名字,不是你想要的,只要更改这个配置文件就可以了。+ S; n, m& i I/ K
2 @' n( v$ ]( Z! T/ B1 ]4 p7 F9 Y% m
3、如果本身部件已经存在属性了,打开这个命令的时候,就会显示出属性来。如下图:这时你可以检测是否正确,然后再更改它。
# V- S+ m3 S7 {) |/ ^% I& m1 q
0 \+ L5 ?& | | K; p
5 h: D$ y8 g, T, T7 D1 y& H 4、更改内容的时候,支持下拉列表。如下图:而下拉列表的选项内容,是通过\NX 11.0\TKLTOOLS\Configuration\more_part_attr_comboBox_values.xml 来进行配置的,你可以把你常用的下拉列内容,配置好。
0 L) `/ i3 r: [ ~1 {& S9 r
4 S2 C. k! L! V/ I1 y7 L) A; I2 e 5、支持鼠标右键的一些操作。
6 p: p( z0 g7 X! m+ G/ Q" I Z ① 设置同列显示:这个功能的开发是因为,当有很多个部件的时候,在设置属性,比如设计人员,都是我:有100行,可能就要设置100次,你可以使这个功能,一次性把100行全部设置成相同的内容;(此处的菜单数量是动态的,是由.xml文件决定的,更改了.xml文件,菜单会显示不同。)+ D1 D9 l$ ?5 A. e3 B
② 展开与折叠功能:这个是用来设置树列表中,带+号的地方是否要被展开与折叠;
/ Z0 ?. p: [+ u# E1 n ③ 自动列宽与取消自动列宽功能:因为每一个“单元格”的内容长度是不一致的,为了方便你观看,你可以使用这两个功能;
: b: x9 f' ?$ z+ |7 b2 m. s ④ 刷新日期:该功能可以把树中,日期那一列,全部填写为今天的日期;
r2 A* N, d4 h, Y$ {/ u ⑤ 刷新重量:该功能是自动计算每个部件的质量,单位为克,并且写到树中,重量那一列。(这个功能本来可以在一打开对话框就显示出来的,之所以没有这样做,是为了用户更好的体验,零件越多,计算重量的时间越长,如果时长太长,用户点了命令很多都不弹出对话框,人家还不知道是怎么回事,所以,就设置成右键,让用户根据需要去刷新这个重量。)( ~2 t# n! I; k
⑥ 清除树内容:清除掉已经显示在树中的属性内容;
9 A! H/ s! v9 G! [( S$ S2 ~4 I
! z: \1 b8 |6 t- K. \四、动画显示
) B5 ]8 R- l3 r# M; J 1、基于以上叙述几点,可以用下列动画来说明。& M4 Y& r, u& E& [1 G6 x. D. m) c
9 [: h3 ]+ D9 } 2、配置.xml文件的方法 e2 i5 q0 A: D
/ H. w }2 F3 R, A6 H! @# h5 ~" u
五、未来升级功能
+ W! n8 \ P; k* S1 R 目前这个批量写属性,基本用起来没有什么问题,但如果有几百个部件,要来写属性,可能有点问题。比如零件名字这一列,你几百行就要写几百次,在NX的树结构里面来写文字,是否不是很方便,并且也不能像电子表格那去去拖一下,整列递增什么的。虽然我现在开发成了大家点一下右键,来设置同列显示内容相同,但可能有些用户觉得还是没有电子表格操作方便 。, {% S) Q$ W$ e8 N; ]; _) g; {& R
如果有必要,以后,我再在右键增加一个功能,让当前的树内容导出成excel,然后大家在excel里面编辑了相关内容,再导入到树列中,然后点确定,然后的然后就是,所有的部件属性已经填完了。
# ?$ n O- }9 F; e! ?* I) |
+ D2 ^! G" h* P3 X! L5 C4 H
. W( j1 K9 J6 a4 h
; j) r% p! R4 y0 R |
|