|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
# f8 A& A/ X( p( \: _一些关于使用ufun进行CAM加工设置参数的简单函数示例
\; z$ ?) Q- G8 ?5 J, A4 S可以参考下,常用的方式!
, X+ U9 z C. |4 M1 v$ G
$ z4 [: A' H% p7 x+ Gstatic int set_tool_param( int jj, tag_t toolTag )
1 V6 u3 f P6 e' a6 Z* H{+ G1 C1 n6 Q0 A) B. i
double toolDia = 0, toolRad = 3;( ]) N' a: f- g d
( e. ~3 r2 }2 I
/* Modify the default 5-Parameter Milling Tool */
: w% P. L* ~! K7 q1 V( s8 x2 `8 D7 F* H* F( o9 ?+ I+ f, i
swiTCh( jj )7 P3 |; Z' z5 h( a2 ]2 Z2 M9 ?
{
& M5 B0 ^' |" P# o0 b" k/ H- \, @/* Tool No. 1 */
& ^ C3 K3 [" X! c2 w+ J/* Add a 3.0 MM crad */2 s: n* q8 y+ }6 I9 s1 `, ~
case 1:) p4 \8 K; p+ x/ t; F
{* X+ |9 I/ F% c8 m/ {9 a7 G
UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_COR1_RAD, toolRad );
% V" F, I+ k7 s; o ~, t# X break;; s7 e; a- {! `' T. K5 \. }
}, ?- x; C1 H8 F
/* Tool No. 2 */2 ?6 i7 a8 q+ q" B4 A- d' k
/* Make this a Ball Nose */! |3 w7 z: V8 c: R& }+ J
case 2:1 C6 _$ S: K% l( F2 O; d
{
1 v: D- G: A7 s4 d! c0 Q! Y UF_PARAM_ask_double_value( toolTag, UF_PARAM_TL_DIAMETER, &toolDia );
8 V% M! \% {. T' ?6 j UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_COR1_RAD, toolDia/2 );* ^2 Q" x& s/ V p
break;7 w- B5 t8 j1 y. u2 `9 q
}
/ j: V4 ^% e U1 Y3 d5 J/* Tool No. 3 */
3 X0 b% t% X) X6 N! e! l, u; X/* Define a smaller Ball Nose */: h/ M& T$ w. d3 ~: \- q
case 3:
! [8 g" I8 a7 a: a {
7 K9 U4 H9 e, \7 |+ h& E! W B* U UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_DIAMETER, 25.0 );
0 W- S: K1 n# Z UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_COR1_RAD, (25.0/2) );
0 E2 ^- T7 _: X: ~1 f" |4 [ break;8 R: V& [# b% q4 u& A: ?
}
4 y! V( V: N5 F" D; h default:5 i% O8 \1 {+ I" P
{( U% } m2 g. M
printf( "Default...\n" );
# D7 {; ~: V H% ]+ H }
5 @7 Q* l2 O" N$ e! z4 X4 Y* _5 v }
7 L h# r: }- F0 z% @ return 0;7 B; [) _7 Y& F% D
}: ^% v @ s2 v5 S
) Z" g* _4 p+ [2 ^, z1 v
static int cav_mill_param( int numop, tag_t *operTag )
+ s0 R: ~# m& u" t1 E- q{, X$ Y/ @7 S: L
/* int numop;*/
! K; X, X0 w6 L1 m' ? _3 a double depthPerCut;0 R7 _3 _ N& f
double stockPart;) l) Y- M& N( u9 t: ?& Z7 L
; D! X* x8 K5 V5 a" _
UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_CUTLEV_GLOBAL_CUT_DEPTH, &depthPerCut);
4 s" m- h4 x9 x printf(" Depth/Cut default is set to %f\n", depthPerCut );
6 P/ m) c1 w6 @. _: M4 b* Z$ x UF_PARAM_set_double_value( operTag[numop-1] , UF_PARAM_CUTLEV_GLOBAL_CUT_DEPTH, 12.000 );
$ x- O g7 O5 Y& W% [5 S$ B/ t( h' q7 J UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_CUTLEV_GLOBAL_CUT_DEPTH, &depthPerCut );2 I5 ^2 P% K2 o8 L
printf(" Verify Depth/Cut reset to %f\n", depthPerCut );1 } U8 c4 a; |
; o- |# T# T" G9 l; ? UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_STOCK_PART, &stockPart );
% n7 l" @2 \6 x1 J) w0 u. p printf(" Part Stock default is set to %f\n", stockPart );
' l) U; |# _/ Y7 z' R( e" j7 z2 k UF_PARAM_set_double_value( operTag[numop-1] , UF_PARAM_STOCK_PART, 1.0 );- U8 O) d* [! a9 P0 d
UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_STOCK_PART, &stockPart );2 c+ u/ G, l0 n* R
printf(" Verify Part Stock reset to %f\n", stockPart );& x4 y' M2 `! q, B+ e
, |* ]" f. O+ k# S) ^% C. y
UF_PARAM_set_int_value( operTag[numop-1], 327, UF_PARAM_cut_trace_method_tolerant );
. ~5 s% }& i; `3 Q8 P7 x UF_PARAM_set_int_value( operTag[numop-1], 328, UF_PARAM_cut_ctrl_trim_method_silhoutte );
" ]1 i8 L. I* d$ i8 a4 t0 v/ b5 U, J. u; l/ d9 ~
return 0;) H. q, v/ B7 }1 F4 E3 R j
}7 T5 B5 ]$ m% c
{* I+ R/ s7 _+ R! G4 @% q& h
static int flow_cut_param( int numop, tag_t *operTag )
% P+ i$ Q" j x' n# Z/ Y{% g! F% e7 q% r
UF_PARAM_disp_tool_t display_data;
- ^" h& r4 ?2 {6 r: e display_data.type = 2; /* Type = 2 produces 3D tool display in tool path. */( o7 V* @' E! ~# n* H# t7 J+ b
display_data.frequency = 10;3 v% r) c' \- p: ?
# A2 [! ]* t9 I# F R7 _ UF_PARAM_set_subobj_ptr_value( operTag[numop-1], UF_PARAM_DISP_TOOL , &display_data );, |/ C1 D; N+ g
UF_PARAM_ask_subobj_ptr_value( operTag[numop-1], UF_PARAM_DISP_TOOL , &display_data );" {8 K w/ B) I/ m1 z, J
printf("Display data for tool type returns %d\n", display_data.type );5 j+ ]; O+ [+ b* S. i4 c
printf("Display data for tool frequency returns %d\n", display_data.frequency );6 F5 K' W. n: I9 ^( d8 |& u1 d( O
2 _" H0 Y) _5 t6 E6 U( r return 0;
, S* ^, J+ B, u. c}% p" A8 s) H; l& C; {4 g: a
; w, Y" c" R* C# X: i; [4 U# q/ s( m
static int area_mill_param( int numop, tag_t *operTag )
0 I7 n" y$ z5 K, Q. w) a{
$ ?2 J- C1 \! Z, x
: v# A, U4 s& M7 W8 X UF_PARAM_set_int_value( operTag[numop-1],UF_PARAM_CUT_EDGE_TRACE_REMOVAL,UF_PARAM_edge_trace_removal_on ); k) O' f `2 G) `. H3 p) Y) }
% k, Y5 h O! T$ H* X2 [5 V ^/* 1 = Warning, 2 = Skip, 3 = Retract */ ( b, _1 j" R, I9 P# s1 t5 r Z
. t) ^$ R# S* W6 n# x, N4 [7 x! V
UF_PARAM_set_int_value( operTag[numop-1],UF_PARAM_AVOIDANCE,UF_PARAM_avoid_stepover );
3 H9 o; X8 H3 Q( K! u UF_PARAM_set_int_value( operTag[numop-1],UF_PARAM_CUT_FOLLOW_CHECK_STATUS,UF_PARAM_cut_follow_check_on );
2 {. j; f1 q" [0 K
2 N* s5 P& e" a* W( N: s return 0;7 f7 I& d, F* ?- t8 Y$ c* G
}0 o- q* {* t6 {2 Z2 i j1 u8 n
6 H& S4 W# g& A8 O B' a: @0 W; H& Z
|
|