|
这个是看到有网上有人问到的一个问题。他原来的问题是,能不能一键把全约束的部件全改成绿色。
; ]1 Q/ N. E; d' J. X 我的回答如下:: A& ^4 O/ o" d" q) A
=================2 p3 {9 ~ H8 e0 m. y
可以实现滴,这个问题,无论是对二次开发的新手还是老手都还是有一定难度的。$ k0 @# o* S6 x
要实现这个功能,首先要解决以下问题:* Q p# E; y: z4 j
1、要学会如何遍历得到当前显示部件中所有的装配(含多层级装配),这个要用递归的方式来解决;3 G7 ~+ k0 `/ L4 t7 X p
2、要学会,如何去查看一个装配部件的自由度,在NX默认有这个功能,会弹出让你选一下,这是查看单个的;而二次开发的时候,是用代码来完成,UFUN里面有可能是没有对应的函数来查看一个装配部件自由度的(我是说可能,具体有没有,没有一个个去找过),并且如果用NXOpen方式来做,不支持录制显示自由度的功能。所以就必须很了解NXOpen里面的各种类,才可能做出来;7 H& ~& J$ z% U0 p0 B3 O1 f
3、学会了第2步,就还要学会,怎么去设置一个部件更改颜色,最终完成工具。
- K3 B e3 D2 c: E) a( v# H3 Z==============
9 F) ]- e3 e5 y# n3 f- E7 j其它考虑问题:
; A8 q/ `# y* j1、代码要考虑Bug,如果当前部件不是一个装配,要考虑,出免出现未知错误;
2 q7 q/ F, a( A& v6 }7 D: A: c6 T+ O2、改颜色问题,是临时更改,还是永久更改。按我的理解,如果都改成绿色,多难看,假设本来就全约束,而用一下这个工具,屏幕不就是一片绿了么?从人性化的角度来讲,这个在个人眼里,不是很好,我觉得,往往一个装配,全约束的是占多数,非全约整的是少数,所以,直接把全约束的部件,隐藏,显示在屏幕上的,就是没有全约束的,这时用户自己再在屏幕上约束一下,可能更好吧?
+ p. t" @: h1 } i% c, j2 p( u=================
. ]9 a, R( }9 \8 @4 B& i我简单的测试了一下,选择一个装配,就读取它的自由度:
: G4 L x) U% U9 @! Q0 }* r有几个平移自由,几个旋转自由度。
7 w9 K7 }. i& g =======================9 b7 I& Y4 D4 x+ ?+ f
/ |2 E+ a: ]3 ^ h% p
: V j3 q: M% }- D1 [# Z' P$ y' | F: H# v
|
|