|
这个是看到有网上有人问到的一个问题。他原来的问题是,能不能一键把全约束的部件全改成绿色。& x+ _3 t5 P8 L0 {/ @. N ^
我的回答如下:
* J7 t( _3 }: B* S =================
: `) h4 U9 ^1 w( N7 K2 @可以实现滴,这个问题,无论是对二次开发的新手还是老手都还是有一定难度的。
( ~# _# q1 x7 O' |- W* C. ` v, `# U要实现这个功能,首先要解决以下问题:
3 m' o6 X @$ i: {1、要学会如何遍历得到当前显示部件中所有的装配(含多层级装配),这个要用递归的方式来解决;
$ i; s7 G9 l/ q9 ]0 v @) y2、要学会,如何去查看一个装配部件的自由度,在NX默认有这个功能,会弹出让你选一下,这是查看单个的;而二次开发的时候,是用代码来完成,UFUN里面有可能是没有对应的函数来查看一个装配部件自由度的(我是说可能,具体有没有,没有一个个去找过),并且如果用NXOpen方式来做,不支持录制显示自由度的功能。所以就必须很了解NXOpen里面的各种类,才可能做出来;
v9 A' @4 h4 V, B6 ^3、学会了第2步,就还要学会,怎么去设置一个部件更改颜色,最终完成工具。
' O8 X0 }8 ^; X, n" p==============3 I2 N @: {' h. J4 g: c
其它考虑问题:
. K' u3 M" a4 c; V$ l1、代码要考虑Bug,如果当前部件不是一个装配,要考虑,出免出现未知错误;
/ N- p8 f. O6 A2 V E( a" d2、改颜色问题,是临时更改,还是永久更改。按我的理解,如果都改成绿色,多难看,假设本来就全约束,而用一下这个工具,屏幕不就是一片绿了么?从人性化的角度来讲,这个在个人眼里,不是很好,我觉得,往往一个装配,全约束的是占多数,非全约整的是少数,所以,直接把全约束的部件,隐藏,显示在屏幕上的,就是没有全约束的,这时用户自己再在屏幕上约束一下,可能更好吧? h( V; j- ~0 u6 X. o! W" v
=================; P' q) w1 B$ v2 B0 i, i
我简单的测试了一下,选择一个装配,就读取它的自由度:
) \2 l" c# U5 A9 f, N( ~9 \9 p" N0 G有几个平移自由,几个旋转自由度。
- H, ^! F+ r0 W$ d8 ~ =======================
2 O1 ~! @) ^1 O% M) o z
/ R- k' \" l9 ^2 K
B. C; k7 Q" I* b' A c* P7 l7 D- p( J- I% p2 T3 ^
|
|