|
这个是看到有网上有人问到的一个问题。他原来的问题是,能不能一键把全约束的部件全改成绿色。3 r; t0 k6 g0 e4 d: a$ l8 _
我的回答如下:' X* G( C+ [0 m. m- Q& N
=================
2 J, W# C& w/ O# L" O$ h* B# t A, J可以实现滴,这个问题,无论是对二次开发的新手还是老手都还是有一定难度的。
0 O7 s: V0 |6 a& K3 W* q0 c要实现这个功能,首先要解决以下问题:
& x; F$ n6 I& d) P3 { M+ m1、要学会如何遍历得到当前显示部件中所有的装配(含多层级装配),这个要用递归的方式来解决;
5 p6 x7 M7 S/ q! T+ s2、要学会,如何去查看一个装配部件的自由度,在NX默认有这个功能,会弹出让你选一下,这是查看单个的;而二次开发的时候,是用代码来完成,UFUN里面有可能是没有对应的函数来查看一个装配部件自由度的(我是说可能,具体有没有,没有一个个去找过),并且如果用NXOpen方式来做,不支持录制显示自由度的功能。所以就必须很了解NXOpen里面的各种类,才可能做出来;/ k$ }$ s5 S5 j ]
3、学会了第2步,就还要学会,怎么去设置一个部件更改颜色,最终完成工具。% [1 N2 x5 M' z" n
==============
8 T+ C* D6 U' ~# x其它考虑问题:
# y0 h2 w8 V5 M& P$ ^1、代码要考虑Bug,如果当前部件不是一个装配,要考虑,出免出现未知错误;
5 P8 `2 c2 t4 i2 c2、改颜色问题,是临时更改,还是永久更改。按我的理解,如果都改成绿色,多难看,假设本来就全约束,而用一下这个工具,屏幕不就是一片绿了么?从人性化的角度来讲,这个在个人眼里,不是很好,我觉得,往往一个装配,全约束的是占多数,非全约整的是少数,所以,直接把全约束的部件,隐藏,显示在屏幕上的,就是没有全约束的,这时用户自己再在屏幕上约束一下,可能更好吧?
4 s ?+ p% M) @9 M0 P( ]=================
' D7 x. G, n7 Z0 H. u4 ?我简单的测试了一下,选择一个装配,就读取它的自由度: Q1 A8 W- v Y" ^" D
有几个平移自由,几个旋转自由度。
" t1 p- V" j6 \4 _3 R =======================8 g, X1 F; g6 K3 R, K0 n9 @" ~
. T& V8 G5 g" i6 q5 ?9 m9 c
1 t" d- H# N* j* K3 u k8 o
1 V5 E- V8 L# `- c2 j2 x1 X' ] |
|