|
这个是看到有网上有人问到的一个问题。他原来的问题是,能不能一键把全约束的部件全改成绿色。
: Y% y$ j2 `4 C3 z2 u 我的回答如下:
+ u: C% d5 ~# W: z1 f =================3 R4 X7 ?3 Y& {# Q
可以实现滴,这个问题,无论是对二次开发的新手还是老手都还是有一定难度的。. I: T" v+ S2 i9 `5 q3 J
要实现这个功能,首先要解决以下问题:
& G8 P1 g' Q) z& N2 I, K1、要学会如何遍历得到当前显示部件中所有的装配(含多层级装配),这个要用递归的方式来解决;9 |5 D! T) N0 B( a$ |
2、要学会,如何去查看一个装配部件的自由度,在NX默认有这个功能,会弹出让你选一下,这是查看单个的;而二次开发的时候,是用代码来完成,UFUN里面有可能是没有对应的函数来查看一个装配部件自由度的(我是说可能,具体有没有,没有一个个去找过),并且如果用NXOpen方式来做,不支持录制显示自由度的功能。所以就必须很了解NXOpen里面的各种类,才可能做出来;
4 K1 s$ f$ D' }! Q& C' q& Y3、学会了第2步,就还要学会,怎么去设置一个部件更改颜色,最终完成工具。
% b& |! O/ N; l" g- n4 w==============5 Z7 `$ o% f K. H7 K1 R( K$ q; A
其它考虑问题:$ X$ f" {& v. s" d' f
1、代码要考虑Bug,如果当前部件不是一个装配,要考虑,出免出现未知错误; v5 y5 G0 {* Y# G
2、改颜色问题,是临时更改,还是永久更改。按我的理解,如果都改成绿色,多难看,假设本来就全约束,而用一下这个工具,屏幕不就是一片绿了么?从人性化的角度来讲,这个在个人眼里,不是很好,我觉得,往往一个装配,全约束的是占多数,非全约整的是少数,所以,直接把全约束的部件,隐藏,显示在屏幕上的,就是没有全约束的,这时用户自己再在屏幕上约束一下,可能更好吧?6 Q, B+ d+ n1 c& d E8 _, V( ~
=================6 B# T8 y6 q: i1 }/ H) O
我简单的测试了一下,选择一个装配,就读取它的自由度:
% V" i5 P6 p0 n+ z6 x! e% `有几个平移自由,几个旋转自由度。
; u3 B3 g, I G: N3 C$ q- M =======================
+ m: e% m( F) m) m: ^) N+ l" [
; `3 W; I; ^7 d P/ g( A
# d6 m+ h( R) _) N/ q: L5 o- C0 y" ?6 o1 y8 S [, \. w
|
|