|
这个是看到有网上有人问到的一个问题。他原来的问题是,能不能一键把全约束的部件全改成绿色。
/ l* ?2 l" o% Q! x7 E; D1 n 我的回答如下:; Q: c) s6 y" n n6 R2 t& Q5 W
=================
0 f9 X& o1 W' b; ?$ V可以实现滴,这个问题,无论是对二次开发的新手还是老手都还是有一定难度的。$ x+ v8 n5 @9 F" _, \
要实现这个功能,首先要解决以下问题:
* T" w/ y5 p9 U9 s" u9 _1、要学会如何遍历得到当前显示部件中所有的装配(含多层级装配),这个要用递归的方式来解决;
J# ?! W; z _0 X+ y/ y; O2、要学会,如何去查看一个装配部件的自由度,在NX默认有这个功能,会弹出让你选一下,这是查看单个的;而二次开发的时候,是用代码来完成,UFUN里面有可能是没有对应的函数来查看一个装配部件自由度的(我是说可能,具体有没有,没有一个个去找过),并且如果用NXOpen方式来做,不支持录制显示自由度的功能。所以就必须很了解NXOpen里面的各种类,才可能做出来;
+ ^7 p8 ]( W2 ~8 x% v' W# p3、学会了第2步,就还要学会,怎么去设置一个部件更改颜色,最终完成工具。2 ?- D1 d; v+ f! T: j, L, P+ f
==============$ a8 Z# p u% N. W9 ?
其它考虑问题:% s5 G9 D% g2 s) t: |; l
1、代码要考虑Bug,如果当前部件不是一个装配,要考虑,出免出现未知错误;! d0 w) N0 n' H
2、改颜色问题,是临时更改,还是永久更改。按我的理解,如果都改成绿色,多难看,假设本来就全约束,而用一下这个工具,屏幕不就是一片绿了么?从人性化的角度来讲,这个在个人眼里,不是很好,我觉得,往往一个装配,全约束的是占多数,非全约整的是少数,所以,直接把全约束的部件,隐藏,显示在屏幕上的,就是没有全约束的,这时用户自己再在屏幕上约束一下,可能更好吧?/ [& i0 v6 x: U: x: x( C# L
=================% S: P6 k. \) l: c0 g' X
我简单的测试了一下,选择一个装配,就读取它的自由度:) m7 X" V1 Z! A3 a2 [
有几个平移自由,几个旋转自由度。2 c3 Z- Q* \) I+ M5 G2 h
=======================
% }$ }7 U, z6 s2 j/ r
: U! T: G u) e' n+ @6 S+ g4 r+ w x" Y9 r
1 a: H, ]9 U# ] A& Z7 Y5 ` |
|