|
这个是看到有网上有人问到的一个问题。他原来的问题是,能不能一键把全约束的部件全改成绿色。$ a4 z& V# z6 k. R) I4 m2 |
我的回答如下: J: y9 Q) G7 c+ e9 U# [4 c$ Z* t
=================; j5 h7 q% a; g" E+ g) t
可以实现滴,这个问题,无论是对二次开发的新手还是老手都还是有一定难度的。. p: J7 @% m- a" \8 N _. ?5 T q
要实现这个功能,首先要解决以下问题:- O h9 l6 y. X5 E
1、要学会如何遍历得到当前显示部件中所有的装配(含多层级装配),这个要用递归的方式来解决;
6 k! r6 B! {( j2、要学会,如何去查看一个装配部件的自由度,在NX默认有这个功能,会弹出让你选一下,这是查看单个的;而二次开发的时候,是用代码来完成,UFUN里面有可能是没有对应的函数来查看一个装配部件自由度的(我是说可能,具体有没有,没有一个个去找过),并且如果用NXOpen方式来做,不支持录制显示自由度的功能。所以就必须很了解NXOpen里面的各种类,才可能做出来;9 S( B/ h& A4 U& _* |" Y( j
3、学会了第2步,就还要学会,怎么去设置一个部件更改颜色,最终完成工具。* `6 e8 E& i5 f# v: U8 ~$ f
==============' y1 |; C& X: c1 Y8 }5 T- L; K. _- U
其它考虑问题:
9 X% |9 P! z% W# W) `) x- |+ f' h1、代码要考虑Bug,如果当前部件不是一个装配,要考虑,出免出现未知错误;
( M7 b. C; {0 J& q2、改颜色问题,是临时更改,还是永久更改。按我的理解,如果都改成绿色,多难看,假设本来就全约束,而用一下这个工具,屏幕不就是一片绿了么?从人性化的角度来讲,这个在个人眼里,不是很好,我觉得,往往一个装配,全约束的是占多数,非全约整的是少数,所以,直接把全约束的部件,隐藏,显示在屏幕上的,就是没有全约束的,这时用户自己再在屏幕上约束一下,可能更好吧?, S4 `9 n$ X v/ k$ _; c& a
=================" O* U% t& l' p: M
我简单的测试了一下,选择一个装配,就读取它的自由度:
- x% z; W6 K n7 n9 g. O有几个平移自由,几个旋转自由度。1 m. ~+ o3 L l
=======================
: y6 I% V; z) H" N( D# t
9 \, R. j7 o! D- Q- |& }6 l
/ h' b- g( b0 Q4 S
) D* U1 e& y0 b, r+ w" a$ f |
|