|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
- A6 n! i9 C" @
, I+ \) H% d" _$ F6 y6 K: Y( D4 A- <p>static void do_UGopenapi()
0 h+ r. S6 F, d2 Z' Y; c% ?; B' c - {# a$ Q: ^. Q' g. [0 v8 G6 d* v/ U" i( i4 R
- /*
w8 ^2 {) B6 _+ l4 [( H% E( H - Create Curve
# u+ w Z" w2 B1 K2 v2 ?: u" N/ b - */8 ]8 I! s3 O& d c! w
- // create line' }( [3 g( E5 P; h3 O: w
- UF_CURVE_line_t line_coords;5 t5 J, }% O9 X4 w8 ?. y& b
- tag_t line;* | {' V( M$ \5 H6 O9 V
- line_coords.start_point[0]=0; c! l# v0 c5 k+ m
- line_coords.start_point[1]=0;: D H. `7 X6 n+ |* p
- line_coords.start_point[2]=0;
4 }4 ^9 w+ L( u3 L- D) [) N9 z' A7 F - line_coords.end_point[0]=100;
, w9 ^1 h5 ?8 W7 v5 z; @ - line_coords.end_point[1]=100;
: p2 w( ]& Q3 O% ]0 y) b" p - line_coords.end_point[2]=100;
% L9 @. L. S, [3 r+ y/ C" g8 k7 } - UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
) [1 u* R3 U( ~. C* w - UF_CURVE_arc_t arc_coords;
- {1 [! L3 D& e- z+ b# x - tag_t arc,marix,wcs;
3 v% f# F& S7 i, {) R - UF_CSYS_ask_wcs(&wcs);
, M; Y1 Y5 J& \) ~# ?0 E - UF_CSYS_ask_matrix_of_object(wcs,&marix);& A H& R2 _- g; o3 ]0 Q
- arc_coords.arc_center[0]=0;
% z) a; D& B8 S! O! @( h7 W* ] - arc_coords.arc_center[1]=0;! {+ |: J) [' m8 n# A1 ^
- arc_coords.arc_center[2]=0;# o; ]0 q& w& T
- arc_coords.start_angle=90*DEGRA;
; Y) D% ?7 x2 h& d - arc_coords.end_angle=270*DEGRA;
( X( |; \' ]9 G1 v& M: \ - arc_coords.radius=100;/ L; A4 `; ]& j0 {6 S8 e% j' M
- arc_coords.matrix_tag=marix;
* ?/ e$ M+ ^- P' w' [2 t' P - UF_CURVE_create_arc(&arc_coords,&arc);: p& r* N; v6 r! D' l5 |
- // create point
- G, s$ ^0 s8 T5 M - double point_coords[3]={100,100,100};
9 W0 G: C6 N5 ^/ h& K) x8 f - tag_t point;! A1 C' c1 ?: P `# m; s7 a
- UF_CURVE_create_point(point_coords,&point);
, t/ a" `9 B4 Y, P: c0 z -
8 S( V# F! F& k7 L/ c4 q - // create Plane
; P* P$ Z0 i! q. a - double origin_point[3]={100,100,100};# j" G) e: x- K5 V- s
- double plane_normal[3]={1,0,0};
4 ~9 B* @9 ]6 U' J9 s" E - tag_t plane_tag; " a5 @9 ^ i' q8 S1 G, p* H
- UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*" a- r* ?* Z9 a# A. L# s6 B
- Get the curve information- X+ A' ^; q8 Q) M2 W
- */
1 j0 D4 |1 `, c% s& R - UF_UI_open_listing_window();2 u! A. m6 _+ |; e* p# D+ x
- char msg[132];3 Q0 C) ]) F+ U" o' u1 q. u! y
- // get line information; Y- X5 R; N4 g5 H5 ?- h
- UF_CURVE_line_t line_info;) c# P( H, `% S' }# I5 `
- UF_CURVE_ask_line_data(line,&line_info);3 N- u% g! u( C! ^
- sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
. B2 }4 a9 N- G. { - line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],* a! X; I1 @- s% \8 w; Y6 Y9 {
- line_info.end_point[2]);5 e" |8 x% g2 F/ e* _' \& L. N& D
- UF_UI_write_listing_window(msg); {# D/ ^1 J/ n; B
- //get the point information
1 s" j1 r* k- Q) H3 y - double point_info[3];# u& b8 n3 L! b6 ~* q+ j! b: U
- UF_CURVE_ask_point_data(point,point_info);
: r4 v8 X! S% ~9 I - sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
& }9 G& M" x6 b5 g. B - UF_UI_write_listing_window(msg);</p><p> //get the arc information
5 K6 k, U* b( Y) h/ i# t- z - UF_CURVE_arc_t arc_info;, |- v7 O7 u& Q0 O/ v* r
- UF_CURVE_ask_arc_data(arc,&arc_info);3 E9 m) C0 l/ Z1 ]* G
- 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;",( K. }- Z6 ~0 l- l0 X
- arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],. e6 \; h' I( h: M c& k7 Q& P* \
- arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius2 A# M! \: ]" O" U. z1 C1 |$ d
- );
4 h1 o' \$ o. U* g9 f - UF_UI_write_listing_window(msg);
9 d* W( Y C$ R1 c - // calculate the arc length
8 O; d# B6 a2 u! U - double arc_length;
3 G1 p# G" S" R. B3 Q - UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length); L& j3 q. K, n- i0 n; F2 a
- sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
2 y- A. R: [& ?% B6 ]- w3 K - UF_UI_write_listing_window(msg);8 R3 T' X! n9 d0 c+ l3 B& K4 E0 [
- }9 d+ y3 c( G5 x4 B' V
- </p><p> </p>
复制代码
% O# i: a1 ]! g1 R2 g& a; Z |
|