|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
& b; y) d, O) }% ?1 S& q& r- W
一些关于使用ufun进行CAM加工设置参数的简单函数示例
& r& L4 M1 m+ I* @4 W可以参考下,常用的方式!
6 C$ t# g( c3 A
7 `5 s! _1 O$ G6 K2 fstatic int set_tool_param( int jj, tag_t toolTag ) X e3 Q5 b3 t1 \7 S' K1 R: u
{
: E4 ^; @2 j1 A' H/ @; W double toolDia = 0, toolRad = 3;; y/ w9 P: X7 p. C* O9 u3 Z: }* _
3 B6 T; v1 A7 T4 L/* Modify the default 5-Parameter Milling Tool */
* o2 g/ [9 ]# o; f9 K& u4 i( j y6 d0 v9 K8 m* Z0 A
swiTCh( jj )
7 e n9 [3 |+ L! \. b+ O- z; X) x {
# N: r- b: f- r- Q( t/* Tool No. 1 */
* w. o6 e7 j& T; X9 B6 c/* Add a 3.0 MM crad */6 g+ u: S: V7 G( N4 P9 i9 z! W! d7 S
case 1:7 S. ]3 A( x: Y1 H& g
{+ o- l1 N: f7 n( W. c; y1 k3 `
UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_COR1_RAD, toolRad );
4 U7 l3 U- b$ X7 [0 L break;+ u+ V# _' X6 [/ O/ m% r
}) L" D: k/ E) \4 x+ _* K& {3 D
/* Tool No. 2 */! D% w) z& J, Z6 U+ j5 E& l
/* Make this a Ball Nose */
9 V( f' q0 u1 u, d4 ?3 e case 2:5 P% f! D# N) O5 G4 d
{1 `* e9 r( g& f# @ v) t) v
UF_PARAM_ask_double_value( toolTag, UF_PARAM_TL_DIAMETER, &toolDia );
; e8 T( c5 `+ i+ Y& T( D UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_COR1_RAD, toolDia/2 );6 p$ [' g( M7 m5 O/ ^; v
break;1 `% c2 U2 O7 M" Y9 w4 e) R
}
U: {' S7 | s/* Tool No. 3 */
$ @% K( s/ B$ g& o2 Z/* Define a smaller Ball Nose */
- J" T6 u4 v: K case 3:
3 g7 Z- d- Y* U. y$ v5 s+ j) g! E {
, [. Q, K. x' o2 Y' ]& X6 r! X UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_DIAMETER, 25.0 );1 y4 D* ^4 x' M* E' ]% |
UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_COR1_RAD, (25.0/2) );
% N# m p) B# T( I break;9 X& j( y9 `6 u# }
}
* |# e8 V+ s& g( U; |% k default:
- T6 V' H$ o$ z9 s {$ N- g, R- E- s5 i+ ^8 D
printf( "Default...\n" );# d; `; d( H$ y: m! E
}, d' k, Z7 D# ^5 z7 ]
}
! a& [- o* t+ ]% O+ c' D return 0;
+ r" A% ~' \% ^' |8 q5 n}
# E. u! w; f; [" s
: |. N, a! k% e& C4 {' q& qstatic int cav_mill_param( int numop, tag_t *operTag ); Z: E8 x; j3 Q
{: O2 J F; n% r4 C6 k
/* int numop;*/
" L" u: R9 X% r4 { double depthPerCut;" a- r- k' T0 T& {
double stockPart;. c+ e( n' W$ _/ G
- x o. I1 D+ y9 V q- y8 l
UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_CUTLEV_GLOBAL_CUT_DEPTH, &depthPerCut); T7 [- x7 W% S7 j0 x$ G1 D& r
printf(" Depth/Cut default is set to %f\n", depthPerCut );
" U8 V* V0 v6 o$ i( q+ v2 n UF_PARAM_set_double_value( operTag[numop-1] , UF_PARAM_CUTLEV_GLOBAL_CUT_DEPTH, 12.000 );
O* m- Z& \8 t2 e4 | UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_CUTLEV_GLOBAL_CUT_DEPTH, &depthPerCut );
# k) I, A0 S! u. _ |0 t printf(" Verify Depth/Cut reset to %f\n", depthPerCut );
. ] ^3 x; ~2 ^! g; @% X
" G# z7 `2 s! {/ h _4 \ UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_STOCK_PART, &stockPart );
. f/ M; Y5 K- I: r printf(" Part Stock default is set to %f\n", stockPart );
3 Q+ M% s5 d! A) ]1 o; Q P UF_PARAM_set_double_value( operTag[numop-1] , UF_PARAM_STOCK_PART, 1.0 );8 i: i1 W3 w6 r$ S+ E" b
UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_STOCK_PART, &stockPart );
, R1 Q0 h$ Y ]1 ?2 w printf(" Verify Part Stock reset to %f\n", stockPart );9 z( U2 Q$ R: X. c) a8 @
& _. u' L: E7 b2 z2 i# z UF_PARAM_set_int_value( operTag[numop-1], 327, UF_PARAM_cut_trace_method_tolerant ); C. x4 X6 i, j8 y. E: s2 M
UF_PARAM_set_int_value( operTag[numop-1], 328, UF_PARAM_cut_ctrl_trim_method_silhoutte );
, L- z$ E; K: W5 u2 g( H$ G
" N% v" p: F9 h* N* Y return 0;
+ p C, _. Z3 l6 s! i$ P}2 e( ], d. Q+ _
3 i, F, r* B6 Z5 W4 Q) ^static int flow_cut_param( int numop, tag_t *operTag )) s* x4 |0 F* c% `/ R0 M; @- ]7 r% J
{
( Z4 j- h2 J( W4 w9 |" | UF_PARAM_disp_tool_t display_data;! l6 P" h+ C# c) Z- ^9 |% b% S
display_data.type = 2; /* Type = 2 produces 3D tool display in tool path. */% z8 @6 [ e1 e8 a% S/ C
display_data.frequency = 10;
6 ^, b6 ]0 X* S0 k7 c, j0 j: M# z5 v+ M
UF_PARAM_set_subobj_ptr_value( operTag[numop-1], UF_PARAM_DISP_TOOL , &display_data );0 f* ^- f' {" \( ]: Q
UF_PARAM_ask_subobj_ptr_value( operTag[numop-1], UF_PARAM_DISP_TOOL , &display_data );( u9 ~2 q# H4 C8 i3 @
printf("Display data for tool type returns %d\n", display_data.type );
3 W# T. E7 H/ W) ~) Z printf("Display data for tool frequency returns %d\n", display_data.frequency );
6 b0 C$ H, C& i$ H6 l' ]
, I) ]# c4 L' u! p# e. X5 ` return 0;' y/ ~3 y2 Q2 X' {# F; _
}4 C$ n) n% m! C; w# e" ^9 ~
+ k1 G: v! |) H9 W* A4 Y8 astatic int area_mill_param( int numop, tag_t *operTag ). F* C. l9 J" }
{
) Q3 Q& S0 c$ J! x$ \- f! c& Y, _& X9 K1 l- q) I( D2 z
UF_PARAM_set_int_value( operTag[numop-1],UF_PARAM_CUT_EDGE_TRACE_REMOVAL,UF_PARAM_edge_trace_removal_on );0 b' r0 D! G9 X( r4 i
) S% ~* d5 f; g7 [# S" _- X/* 1 = Warning, 2 = Skip, 3 = Retract */ / T, n' e) l6 k
5 I% L5 L! t. Y5 w' u% g UF_PARAM_set_int_value( operTag[numop-1],UF_PARAM_AVOIDANCE,UF_PARAM_avoid_stepover );
; D. u. p [$ ~; T# n( p1 {, G UF_PARAM_set_int_value( operTag[numop-1],UF_PARAM_CUT_FOLLOW_CHECK_STATUS,UF_PARAM_cut_follow_check_on );. l: c. p9 a. Y" w7 @
1 E% [! y8 E$ d$ E5 O5 J# Q% q% G return 0;6 t e, U0 D" X) v/ A, h `; q
}
% K# k8 ^1 W: |# V7 t X( w; s' V4 _) M+ y; e
|
|