|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
这段代码比较简单,但是你可以学习到如何在CAM里面进行二次开发,比如如何初始化CAM环境,如果查找CAM的程序对象,如何获得加工导航器上的选择结果,如何将对象加入组中。. Y3 W+ q& b3 }; V2 K% i
8 O- R3 c' Q+ ]1 G4 l5 C
static void do_it(void)
$ M( F# ^8 R0 H{
) M0 n( e; ^2 M8 e char reason[UF_NCGROUP_MAX_REASON_LEN+1];9 ~; @3 A; U8 g3 g$ m* E
char msg[MAX_LINE_SIZE+1];
9 l( k1 B6 ~8 R' t4 P. g X
5 {' ^2 f$ J6 O v/ R int object_count,
0 l! E0 M3 V; I7 o5 D) w, v type,( h8 V4 A3 b0 I) r
subtype;
: @& H8 s9 |' `$ D. Q: ~
* N5 ?% z+ A+ N tag_t
7 x" \1 W; U t% M0 |' ^; Q setupTag,0 I2 H: H- [, f0 n
*objects,
) z: {% }0 e5 N* Y prog_root_tag,
9 g8 a! O0 t8 l. { prog_tag;
+ U8 z: @) @* [- z. O4 q# z: g9 P: z! r3 n9 W0 p! X
logical is_initialized;4 S2 y5 w8 P* D: P
logical answer;
& h* ~- I8 c# ], K8 m, g9 p: h- R5 Y8 q) z2 K9 g/ p, m- P* x% ~
* b1 Q1 U2 u' a s' \& ?5 F- p UF_CAM_is_session_initialized(&is_initialized);4 _4 d. A8 q! l* o: s
1 q `! D- _& b% F8 W4 P9 z1 _) G5 ~$ @7 A5 \3 o( `
if( is_initialized == TRUE )
5 _1 L& n- N3 U* B9 ?! p- m! }6 I {
: _! Z8 Y5 h6 v6 m+ G7 E UF_CALL(UF_SETUP_ask_setup( &setupTag ));
+ ]( Q/ I$ f- ^" j/ S UF_CALL(UF_SETUP_ask_program_root( setupTag, &prog_root_tag ));0 c; u8 a4 R+ m# b# J
4 N7 t) l, w, a0 U) q // Find the pre-existing geom PROGRAM and get tag
# f8 }# A7 G& R UF_CALL(UF_NCGROUP_ask_object_of_name( prog_root_tag, "PROGRAM", &prog_tag ));
3 e, E1 {1 P, @9 b8 v! V! k# b2 I+ A
/* Get the highlighted/selected operation from Navigation Tool. */
: S# ? j. z2 u) \. W UF_CALL(UF_UI_ONT_ask_selected_nodes( &object_count, &objects ));
0 ?# x |1 ~! P5 q
' Z, Q* c( P+ n( ^* n if (object_count == 1)
/ B) E! C8 K+ u D/ T2 ~ {
& W b( `$ y6 o0 e: E# B/ o: t UF_CALL( UF_OBJ_ask_type_and_subtype (objects[0],&type,&subtype));& p1 {" b: W% s
+ G* y' B6 p7 {
if (type == UF_machining_operation_type ) e+ d; k) b9 D+ x
{
) {! Z+ ?% g F! d UF_CALL(UF_NCGROUP_can_accept_member( prog_tag, objects[0], &answer, reason ));
+ F8 b9 n3 A1 s1 E- c3 |% d if( answer == TRUE )
+ r6 Q @6 S: q8 ?1 j {9 T( C) i& a8 J" B
UF_NCGROUP_accept_member( prog_tag, objects[0] );
, J0 x+ t, H6 M: v+ _6 N0 n: z } , E2 v6 r2 o- p; [2 h
else ) ^1 T: ~* X% ~8 a- ?" A8 Z
{+ l" F' |8 R- l6 y: {! ` B( T& f
sprintf(msg,"program group can not accept operation");
D: v: f8 W* c; A% j" X" p0 G2 N UF_CALL(UF_UI_write_listing_window(msg));
8 ^+ W# B6 M3 U3 r6 c } ]3 w/ @ T: d- _. }$ B+ \
}7 p2 G" T2 q3 W- C" J- G& g
else5 k( {- C: Y; b' i5 b3 c
{! E/ I' l& ]7 \ a: D* Z3 V/ X
sprintf(msg,"object type is not UF_machining_operation_type");
4 @, z, I! `' w4 Y UF_CALL(UF_UI_write_listing_window(msg));
1 `4 |2 @9 D* T: a% J7 ?- r6 w+ m& w- i }
8 g& D! c K5 T# f7 F }9 [( R! |' ]) I) a n
else
0 \) r6 d: x+ T, ?6 X {
3 `; f) M4 K- c+ W sprintf(msg,"Nothing highlighted");2 M0 w6 ~( I* q0 w
UF_CALL(UF_UI_write_listing_window(msg));/ e! v0 P5 Q% z, m5 i3 M5 a3 ^
}: s g5 p: n* U
B, i$ h @+ M V5 g8 Y# Z4 w
} // end of if init
# r& [9 K# ?) I' a2 T. ]' e) `}5 P% R+ S1 Q$ I6 p
% |6 _" O; l! f
|
|