|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
$ g+ I( V+ l. |
一些关于使用ufun进行CAM加工设置参数的简单函数示例
- y5 e& F' T8 j. g可以参考下,常用的方式!
# @& e( |5 p2 q: |0 B+ W' f c' O, U4 Y! X9 ?, I8 e3 x8 q
static int set_tool_param( int jj, tag_t toolTag ), f3 e+ ~1 a8 Y' i/ d5 d
{4 s' U3 t! ~% |7 w1 J3 A3 {$ i7 Z
double toolDia = 0, toolRad = 3;1 o9 ?6 [* s% ]! `+ n8 l9 P( g
# \+ x; U2 q6 r9 T8 V
/* Modify the default 5-Parameter Milling Tool */
0 B8 C2 Z3 o3 \3 O5 s, l- E+ G- f2 h/ h
swiTCh( jj )
; A7 j' k0 h) C! | {
( e) @! R# ? ]- T0 H& o/* Tool No. 1 */: o( A. b3 M: I e5 X
/* Add a 3.0 MM crad */* M8 d0 i9 T4 b, p
case 1:
! i3 p! m/ l7 K( @' k* ~6 l {
; d: y' S. {( S# h" X0 q UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_COR1_RAD, toolRad );$ B' C' y) d1 T% X S
break;7 w- r; l& K. ?4 y
}
3 Q! }: {; b% v0 L* V# a/* Tool No. 2 */
6 d- |# h" N4 m6 t$ v$ t0 {/* Make this a Ball Nose */& x! n/ U+ u7 ^
case 2:
* I, M" ?2 \9 B! n8 a {
, t. |6 _: e7 o( D UF_PARAM_ask_double_value( toolTag, UF_PARAM_TL_DIAMETER, &toolDia );
4 O% B: B9 t a' K: w UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_COR1_RAD, toolDia/2 );
$ F7 p4 N7 ]! ?3 c break;' r( Z" E9 N% ~1 O M
}; [, r! b( B- w) c
/* Tool No. 3 */
7 U* r8 A7 H& j" ~5 m/* Define a smaller Ball Nose */
& b7 F7 E0 s: D. {/ r case 3:
3 J/ V$ _3 m2 Y; ^+ Y* d {" T" n4 }" m) r- Q0 l
UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_DIAMETER, 25.0 );2 L' @+ c2 z2 p& L2 u
UF_PARAM_set_double_value( toolTag, UF_PARAM_TL_COR1_RAD, (25.0/2) );
' U" `( f& R0 F6 y break;
w% w8 b/ V- @$ V }
' ?8 g+ [5 P' Y0 X1 p1 n default:% t+ [/ i* [& Y7 x, _
{# s0 e5 c2 f9 |4 t: `1 |1 O: ~2 o
printf( "Default...\n" );
! n1 {8 v! N' ]. S/ z: u+ ] }
" b& v4 D; d1 |1 y# V. A }
' q+ U2 e' n- F. P) D return 0;0 K/ }& m! u9 t$ L1 r
}
3 @- v+ C+ _2 Q6 M0 w9 a6 M- w+ O) E4 T3 ]& j
static int cav_mill_param( int numop, tag_t *operTag ) x) c9 P' t/ P9 @# B6 q
{
' j1 m3 G1 T' k0 Z& v. t/* int numop;*/+ e! v9 {3 z# A1 F
double depthPerCut;9 T4 A0 }6 @ r: P
double stockPart;
* {" @9 C! n I5 H; T
, {$ v2 ]( `- T UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_CUTLEV_GLOBAL_CUT_DEPTH, &depthPerCut);/ S4 V% r5 V" y# E
printf(" Depth/Cut default is set to %f\n", depthPerCut );
! \4 ^/ x- w- x. {% {/ h1 p4 z" y UF_PARAM_set_double_value( operTag[numop-1] , UF_PARAM_CUTLEV_GLOBAL_CUT_DEPTH, 12.000 );: y* z5 s9 S8 g/ l0 M/ `
UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_CUTLEV_GLOBAL_CUT_DEPTH, &depthPerCut );2 {/ S5 L( R* L" S$ [
printf(" Verify Depth/Cut reset to %f\n", depthPerCut );, m7 g' z6 M5 @# U, W
# T; F' f1 w/ d2 ~" Y) g5 G4 V; V
UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_STOCK_PART, &stockPart );6 W+ q+ T' ?+ v1 ~+ O7 u
printf(" Part Stock default is set to %f\n", stockPart );
+ f" _9 B2 u" }5 P7 i2 _ UF_PARAM_set_double_value( operTag[numop-1] , UF_PARAM_STOCK_PART, 1.0 );9 Q2 G; b4 k7 ]
UF_PARAM_ask_double_value( operTag[numop-1] , UF_PARAM_STOCK_PART, &stockPart );- G: f+ d3 h* x
printf(" Verify Part Stock reset to %f\n", stockPart );2 L$ N; L# P$ j% \
8 G, y! K+ S% V UF_PARAM_set_int_value( operTag[numop-1], 327, UF_PARAM_cut_trace_method_tolerant );
# ^% T2 j3 o/ s3 ^ UF_PARAM_set_int_value( operTag[numop-1], 328, UF_PARAM_cut_ctrl_trim_method_silhoutte );) k( M6 `! x# Z9 b% c& m4 E0 R
; v$ d B" ?$ Q return 0;& _: [- d% `+ b
}
. m) C5 r- i" x0 w! ]. P" y! c- R. _ k
static int flow_cut_param( int numop, tag_t *operTag )6 K1 Z, F+ a# m0 M5 x! `5 v
{( I9 j- B# k) s% K& |
UF_PARAM_disp_tool_t display_data;
, z$ g8 {& G% K8 z# H display_data.type = 2; /* Type = 2 produces 3D tool display in tool path. */: o" P& m0 ~: @- K
display_data.frequency = 10;
2 F I% [& i# ] G* f! A% ^ Y- b, [
UF_PARAM_set_subobj_ptr_value( operTag[numop-1], UF_PARAM_DISP_TOOL , &display_data );
3 d& g4 K. y. W9 w5 { UF_PARAM_ask_subobj_ptr_value( operTag[numop-1], UF_PARAM_DISP_TOOL , &display_data );
6 P5 C6 x' `& h- Q& Y) s. F& e2 l printf("Display data for tool type returns %d\n", display_data.type );, E% p( q" n& |5 k( x+ j) p
printf("Display data for tool frequency returns %d\n", display_data.frequency );
' r4 i& E( Q" h9 G4 H4 w4 {3 J2 j" H, D) v: ^* p3 X
return 0;
F5 f7 b$ W8 v; ]}
4 j$ o+ ^# r& i" K+ [- k, W
6 z' w r9 W7 A7 g9 B6 Hstatic int area_mill_param( int numop, tag_t *operTag )! f, v+ O# x- C4 ?: j2 V' E, _, q
{
; V& f1 }$ e7 n* [
# g3 d( m; o0 x8 v UF_PARAM_set_int_value( operTag[numop-1],UF_PARAM_CUT_EDGE_TRACE_REMOVAL,UF_PARAM_edge_trace_removal_on ); X% `# s$ n/ n; H8 b# x3 Q
/ j- ~' V6 v; n, \% r0 i9 L* C' t
/* 1 = Warning, 2 = Skip, 3 = Retract */
& y W- T' w# f. O( }
- I" }3 M4 J* i" Y' _ UF_PARAM_set_int_value( operTag[numop-1],UF_PARAM_AVOIDANCE,UF_PARAM_avoid_stepover ); / P1 D! M2 W4 V& O5 W; I
UF_PARAM_set_int_value( operTag[numop-1],UF_PARAM_CUT_FOLLOW_CHECK_STATUS,UF_PARAM_cut_follow_check_on );
7 Y8 K1 g: y9 d6 V) R
% c" W, t4 e. D! {9 U+ c return 0;
9 n6 s+ e! y, {3 Z7 h9 e* {}" v W [5 A/ @ }# c% T
# j0 j" V2 T j K9 |; c
|
|