|
这个是看到有网上有人问到的一个问题。他原来的问题是,能不能一键把全约束的部件全改成绿色。
1 p2 M( v* Z" ?) \& Y6 i. B 我的回答如下:$ e5 O7 V3 q( D6 ]. w
=================6 P% g0 l! ] W G: ^1 x% x
可以实现滴,这个问题,无论是对二次开发的新手还是老手都还是有一定难度的。5 M- h5 g0 E2 L+ K/ D$ i0 A% l4 N
要实现这个功能,首先要解决以下问题:
, o) o& H* K: Z2 D0 h) R1、要学会如何遍历得到当前显示部件中所有的装配(含多层级装配),这个要用递归的方式来解决;
$ t% Z% p$ D" w q6 A2、要学会,如何去查看一个装配部件的自由度,在NX默认有这个功能,会弹出让你选一下,这是查看单个的;而二次开发的时候,是用代码来完成,UFUN里面有可能是没有对应的函数来查看一个装配部件自由度的(我是说可能,具体有没有,没有一个个去找过),并且如果用NXOpen方式来做,不支持录制显示自由度的功能。所以就必须很了解NXOpen里面的各种类,才可能做出来;. i8 F; \" a" h" `6 q# v
3、学会了第2步,就还要学会,怎么去设置一个部件更改颜色,最终完成工具。9 w' s' z; W/ `! M
==============
$ v2 U+ o4 r, d' U; h* A8 p7 E其它考虑问题:: R5 m6 F H) i" a& h
1、代码要考虑Bug,如果当前部件不是一个装配,要考虑,出免出现未知错误;
& s( B- Q* _- f) K4 z2、改颜色问题,是临时更改,还是永久更改。按我的理解,如果都改成绿色,多难看,假设本来就全约束,而用一下这个工具,屏幕不就是一片绿了么?从人性化的角度来讲,这个在个人眼里,不是很好,我觉得,往往一个装配,全约束的是占多数,非全约整的是少数,所以,直接把全约束的部件,隐藏,显示在屏幕上的,就是没有全约束的,这时用户自己再在屏幕上约束一下,可能更好吧?, ]/ |" `. L9 ?
=================
% U* H4 J+ }- f/ g- k我简单的测试了一下,选择一个装配,就读取它的自由度:
5 G( ~; E9 t0 o, L2 f) Z3 r有几个平移自由,几个旋转自由度。
. U6 \9 {2 ]! v/ P, \" Q =======================: Y% I! ^7 e9 }8 k0 X$ w4 O; i2 u
. v, o, v0 a3 q/ w' u, L3 _/ u
[2 n0 ?9 ~) R9 h' J
' a- r& x/ A. ~7 q) N$ [7 f+ O |
|