|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
2 V4 {) j; X* }' c* ?
一些关于使用ufun进行CAM加工设置参数的简单函数示例
# R3 R" C+ J9 v可以参考下,常用的方式!6 \. l% J$ x0 z% G6 U! V
/ C+ s6 ^# E) h4 r; ystatic int set_tool_param( int jj, tag_t toolTag )7 K' m( v8 D G: m
{
h) _6 `1 Y' I4 R) G; \ double toolDia = 0, toolRad = 3;3 d) M3 q( ^5 e2 t+ V
0 h' ]- W! Q7 f. I; A# A/* Modify the default 5-Parameter Milling Tool */
, L$ `/ p1 z5 T
1 y# Y- a+ G" ]5 _5 W swiTCh( jj )
8 M. h" {! h1 |7 J( h% M {
; p9 i! [5 h3 M, ^$ w9 }/* Tool No. 1 */
: m C0 i. [+ A; ^# j8 W6 {/* Add a 3.0 MM crad */
2 C$ G1 |; s5 ^/ X# G case 1:
- x9 [" x4 g) A, \+ ?: a# l; O {! h4 q6 r3 J x! [' z
UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_COR1_RAD, toolRad );
- T& D8 p/ t3 E' T break;9 o0 s. o E4 _( ` e
}" [( R, {6 l9 A: A! [
/* Tool No. 2 */
3 ]. C$ @( [/ C! I6 N: V% j/* Make this a Ball Nose */- t2 ?, e: F5 v6 R0 N
case 2:
" g7 A% I6 a$ W% W; h; s) d {
3 R0 _, `; w) w0 a+ g UF_PARAM_ask_double_value( toolTag, UF_PARAM_TL_DIAMETER, &toolDia );
; Q$ t9 I, a; M% e6 q UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_COR1_RAD, toolDia/2 );. V) c5 S1 k- M3 E( \
break;5 p" M, R% j' J% H+ E
}
& g( T2 O+ f i1 E" c9 ^3 L/* Tool No. 3 */8 \! m9 _! D/ L+ v( W; | A# E
/* Define a smaller Ball Nose */9 E" ?7 P `. X6 W( M' a
case 3:
& c2 Y# r* i; a, ` {% x* H3 D; _% ]" t
UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_DIAMETER, 25.0 );/ u t/ J. k* Z) v0 @7 T
UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_COR1_RAD, (25.0/2) );
4 \$ G8 `: o ~% k! Q' y6 n0 Y break;
' y8 U: W- `, |- d0 l+ N8 L }
6 R" P! j1 a8 t4 O# M- e6 H default:
# I. S2 J7 J p9 c3 ] {
; b+ ~/ r2 a+ G$ D1 K1 o$ F8 D printf( "Default...\n" );3 t/ y# f! d7 {. S3 Y
}. t W; W$ n* {
}9 O' d( F5 A/ k- f, ^$ [- X
return 0; ? w+ A% o/ }
}2 l' a1 V3 \; P, j7 V
j, Q5 e2 M" v2 L0 ]( y% z
static int cav_mill_param( int numop, tag_t *operTag )- V* l' v# d/ H$ k+ e, }
{
# \- p4 X# Z. i/* int numop;*/& `8 P- E' D& t! e% X' D
double depthPerCut;
' j# z' c+ U' n. C; G+ ^/ [/ e$ B double stockPart;
! g4 f3 z/ m. U2 e) F
: _& k6 Q g7 N C3 h) K UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_CUTLEV_GLOBAL_CUT_DEPTH, &depthPerCut);
9 u6 i4 g% a# a, h8 e; T% u* D printf(" Depth/Cut default is set to %f\n", depthPerCut );! I) p, P& \+ C7 t
UF_PARAM_set_double_value( operTag[numop-1] , UF_PARAM_CUTLEV_GLOBAL_CUT_DEPTH, 12.000 );0 p& b" W' H! m: o" I
UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_CUTLEV_GLOBAL_CUT_DEPTH, &depthPerCut );
- m7 T7 g) ~ J/ Y' g+ @ printf(" Verify Depth/Cut reset to %f\n", depthPerCut );
* r+ [4 N8 }0 _
/ j; I1 @8 p. ]. [ UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_STOCK_PART, &stockPart );
7 p% b- r* h7 c& J4 M) I* `- T printf(" Part Stock default is set to %f\n", stockPart );
- j9 d" U8 J! f- O6 l7 i0 X/ O UF_PARAM_set_double_value( operTag[numop-1] , UF_PARAM_STOCK_PART, 1.0 );$ e' f d6 a' U8 [* ]7 A
UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_STOCK_PART, &stockPart );
3 \ k5 g d' X0 `+ W, d! d% R! x printf(" Verify Part Stock reset to %f\n", stockPart );
8 i+ R" N$ a9 |0 C( N! S* Q' z% L7 D% c2 w Y4 n; q l
UF_PARAM_set_int_value( operTag[numop-1], 327, UF_PARAM_cut_trace_method_tolerant );) w, C z+ u0 Z8 _3 G
UF_PARAM_set_int_value( operTag[numop-1], 328, UF_PARAM_cut_ctrl_trim_method_silhoutte );& \# l- Y: e7 Y7 L
1 B* y: {0 d, q: _6 [ return 0; m0 B- H" T/ |9 C6 Y. ~
}
. k$ M" |" Y2 A7 ?8 e- }: V9 J
# C$ H0 l$ q- L; b" T% x: H# l, t9 \static int flow_cut_param( int numop, tag_t *operTag )4 V0 a1 K$ v/ f
{* V* s$ Q7 t: O7 d9 G/ z
UF_PARAM_disp_tool_t display_data;
1 L9 U9 R* R: D$ P7 |) D: U6 p display_data.type = 2; /* Type = 2 produces 3D tool display in tool path. */( L2 X9 @& A/ I- I& v' L9 U' Q
display_data.frequency = 10;6 k$ b, w u6 j4 C$ o8 T9 V5 {
8 f' z4 j: l5 W
UF_PARAM_set_subobj_ptr_value( operTag[numop-1], UF_PARAM_DISP_TOOL , &display_data );4 I/ t' |- p. C# l% V7 U
UF_PARAM_ask_subobj_ptr_value( operTag[numop-1], UF_PARAM_DISP_TOOL , &display_data );
7 I5 R: V4 |5 ^. {3 C0 z/ i% c0 y U: s printf("Display data for tool type returns %d\n", display_data.type );
5 |8 @" _1 f0 M a" ^6 E' x8 C n printf("Display data for tool frequency returns %d\n", display_data.frequency );; d- l; t1 a+ c% c3 g4 I
0 v- B: @; D+ N' h
return 0;
# p' R# c, N0 f# o! I}
' K9 d* ^+ o8 q3 c+ t9 W
4 K- J7 K% T. g; U3 ostatic int area_mill_param( int numop, tag_t *operTag )
& L& S# g% A9 u* ^% X{0 e y* m2 V& }2 C+ B! i% R
`$ W4 _9 i, ?9 ^% U
UF_PARAM_set_int_value( operTag[numop-1],UF_PARAM_CUT_EDGE_TRACE_REMOVAL,UF_PARAM_edge_trace_removal_on );
1 m3 j+ b7 E; n8 p" C4 c/ m8 B
, p6 f, n% d& ^7 g0 n9 [* |+ _9 u/* 1 = Warning, 2 = Skip, 3 = Retract */ ' _6 f8 }, [( u( @& H
$ |$ [" A0 C: w! B- O X. m5 o3 W% h
UF_PARAM_set_int_value( operTag[numop-1],UF_PARAM_AVOIDANCE,UF_PARAM_avoid_stepover ); + I6 M! v' {1 f5 Q( ^
UF_PARAM_set_int_value( operTag[numop-1],UF_PARAM_CUT_FOLLOW_CHECK_STATUS,UF_PARAM_cut_follow_check_on );8 i# |8 W) Y& X5 _# G; w1 h
& [5 r/ A* F, t/ Y; _ return 0;# Q8 m1 r; ^3 y; f7 h7 T, E
}
% ]8 n) a7 f& b, j" `. x4 Q* M1 v" ?3 s9 ?& e# X& y6 {
|
|