|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码, M0 x9 R" g2 P6 S$ r) Z7 c
! n5 T" |1 G J3 G w/ B- <p>static void do_UGopenapi()
: `4 V, b. g. u& E - {1 i! Z3 \5 Q" \0 `! v3 Y6 Q$ `6 d
- /*5 |/ r |2 q+ _" J' u% x, s
- Create Curve
* ^+ H5 V- J# ]3 u& O - */) x5 c- n0 @$ k' u0 q
- // create line
. X( x+ i# Z, k( w+ u! j - UF_CURVE_line_t line_coords;
% U3 C$ W- J1 @& M6 \) \; T0 ~7 ^ - tag_t line;
/ u3 v+ X- A$ l; s. x, f - line_coords.start_point[0]=0;
& W8 ?' q4 k" ?' l- C - line_coords.start_point[1]=0; _: r! W% }5 g0 {
- line_coords.start_point[2]=0;
9 G- T. g0 v3 i8 V - line_coords.end_point[0]=100;
, d6 z! j! a( r2 j. l I - line_coords.end_point[1]=100;
0 f, Y- N1 T! A% U9 L - line_coords.end_point[2]=100;
( {% d! \/ O9 y J2 D - UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc! ]' i, s3 W) X# S9 d. E0 W
- UF_CURVE_arc_t arc_coords;
: }7 C8 z% g1 b( g - tag_t arc,marix,wcs;
8 w, c0 h5 j8 X) u5 u6 G9 V* c" O - UF_CSYS_ask_wcs(&wcs);
5 K: s$ u0 i' N( G - UF_CSYS_ask_matrix_of_object(wcs,&marix);; J4 l( C+ o- J4 W4 z2 q
- arc_coords.arc_center[0]=0; b+ M) n7 Q. D F
- arc_coords.arc_center[1]=0;
4 ^& l6 ?0 X5 I' E - arc_coords.arc_center[2]=0;" X3 a, D: w7 |" H
- arc_coords.start_angle=90*DEGRA;
* k$ j4 ?1 ~0 V& C% [ - arc_coords.end_angle=270*DEGRA;7 `: W4 q0 i- ^% T1 W% a
- arc_coords.radius=100;1 {( G U0 j+ l# D) P, ^$ g. o
- arc_coords.matrix_tag=marix;
* Z6 B% w$ Y- L. g' [5 v - UF_CURVE_create_arc(&arc_coords,&arc);
0 X' {4 W* Z# Q% T) e- U - // create point
$ ~& ]% l' C2 e6 B' [, @. ]* K& ? - double point_coords[3]={100,100,100};
9 H w" X" ?& I5 K+ I( ]6 l - tag_t point;
1 \& t- Q6 {, w) g - UF_CURVE_create_point(point_coords,&point);% U A! U# ~0 y
-
7 x" ~; v- @% o! c* }/ X - // create Plane. f: E& y: X% h8 Q$ u7 s6 N
- double origin_point[3]={100,100,100};4 n) M( @/ D, k. u
- double plane_normal[3]={1,0,0};3 \0 F! q3 t: s8 A
- tag_t plane_tag; & u, E4 ]/ N2 I6 N3 L
- UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
2 K3 }. }- P" C' V/ G5 V! M1 t - Get the curve information
: G( M$ p: v3 Y" i - */7 A# W" c. R B- G5 H
- UF_UI_open_listing_window();
! J$ n- R9 N# m- i - char msg[132];
8 D7 j3 M: F7 o" r3 _ m - // get line information6 {/ }- l- {+ X \
- UF_CURVE_line_t line_info;
, x0 D* `3 L( @+ ^6 N - UF_CURVE_ask_line_data(line,&line_info);
& z- v+ L' l1 B( K$ r - sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
7 L, p) o( `( f, ]- T, q5 J) [9 b# } - line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
: F3 t2 w9 u3 \ - line_info.end_point[2]);
5 d7 U1 V% j1 c - UF_UI_write_listing_window(msg);
9 J2 ~5 w: t, V" f - //get the point information
, ~2 [4 @7 L% ^4 C - double point_info[3];
}5 `, K* t' A0 k0 V - UF_CURVE_ask_point_data(point,point_info);( w$ i% ^( g# @( A3 r/ b
- sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
& {) n2 `9 K" \' e" z. Z - UF_UI_write_listing_window(msg);</p><p> //get the arc information
9 ~- _+ j B3 g' t. I - UF_CURVE_arc_t arc_info;
9 s- u' }9 q* O" Z6 d' _0 p - UF_CURVE_ask_arc_data(arc,&arc_info);
3 v5 E; V; ^; Z& q7 I - sprintf(msg,"\nArc Center coords:\n\t%lf,%lf,%lf;\nArc start Angle:\n\t%lf;\nArc End Angle:\n\t%lf;\nArc Radius:\n\t%lf;",
3 w4 F- H- G& l4 C/ w& d+ n - arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
3 j/ ?& o3 }" a* S - arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius' m) T% U) B) e
- );
- k# F8 K9 B& N" p2 M - UF_UI_write_listing_window(msg);% A. H9 a4 n( N
- // calculate the arc length' B) R B2 i2 \
- double arc_length;# {5 K+ J8 G+ n7 Q- @
- UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
- `8 O$ j& j/ o, ?3 ]* k - sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
( P" S" d$ s# X; I( v- u - UF_UI_write_listing_window(msg);5 n, K$ Z# H, P, X3 S8 g1 v
- }9 y+ g) e+ X; i: r3 g
- </p><p> </p>
复制代码 ; v- M1 l. `6 q$ M) F+ b
|
|