|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
: `" Q! j& v# P# O) r/ z7 S
9 d% g" R' |; U) R k# f- <p>static void do_UGopenapi()1 _* H( e8 d6 s1 B$ z2 {
- {
; G: z; I" k7 b. X9 f# J - /*1 Y5 O$ ?; a1 I, K- N
- Create Curve
& ?0 h' V+ y. w) X0 ^6 C! R - */
& b$ n+ n) F; A6 p D - // create line
- g) U8 h$ S+ f% H* D! j - UF_CURVE_line_t line_coords;
& E& o/ ^/ \" D - tag_t line;' d& U( m% ?% E9 k" W! k
- line_coords.start_point[0]=0;
# \+ ]0 K! v; w - line_coords.start_point[1]=0;
* j: W* w+ H% W% I! I( Q. R x: ~ - line_coords.start_point[2]=0;5 A% X5 q7 o% m5 @0 W8 P7 ^1 z
- line_coords.end_point[0]=100;4 w! D3 I) u. x( Z
- line_coords.end_point[1]=100;
7 u9 g, n3 H( z7 F6 q5 a" l; W4 E7 ~ - line_coords.end_point[2]=100;
, ] D9 t4 V5 A1 \4 Y& |/ f% C - UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc& v' I: P, k" }( `
- UF_CURVE_arc_t arc_coords;
+ ]( C# V4 \: c. T$ Y - tag_t arc,marix,wcs;
0 |% R4 S: M& I, o8 w8 d- _9 y# d - UF_CSYS_ask_wcs(&wcs);
1 z7 k4 ?1 S* C/ U: U! } - UF_CSYS_ask_matrix_of_object(wcs,&marix);0 x( e/ f2 c4 K. m+ b$ R6 L9 l$ r1 y( C; b
- arc_coords.arc_center[0]=0;
+ N6 I( [1 x! X& N- Q) m& E8 C! D - arc_coords.arc_center[1]=0;7 L1 g" J. s$ L* s8 m' z
- arc_coords.arc_center[2]=0;; W+ q5 n* l' k8 U5 D4 E- J
- arc_coords.start_angle=90*DEGRA;
( S" L& D; t" ]# g - arc_coords.end_angle=270*DEGRA;
3 x' d; Q: d5 q3 \/ g - arc_coords.radius=100;
( Y- g1 {& K; E f& N - arc_coords.matrix_tag=marix;
5 w/ Z1 B; @2 ]! n) S( X3 J - UF_CURVE_create_arc(&arc_coords,&arc);
# S2 b7 T+ l& F- \6 _; G4 ] - // create point
6 e8 r1 F4 k# J, Y4 K1 b - double point_coords[3]={100,100,100};
# R. n- B1 l& i' Y - tag_t point;
" k, ~- X7 |6 c0 r: [) g/ ~ - UF_CURVE_create_point(point_coords,&point);
5 l* x6 J4 ]: Z$ R$ Q7 p8 e - 8 P: C; o* l5 y- F# \/ p
- // create Plane
& Z; B6 p4 v* e - double origin_point[3]={100,100,100};
7 J0 W' p4 }& z" G' y; m) ] - double plane_normal[3]={1,0,0};
( Q' `" d& e; H$ W) a - tag_t plane_tag; 6 j% V* o! M9 M! G4 F. d
- UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
: S" Z# R! C; t4 {+ A& Y O) C - Get the curve information4 b+ q5 G2 A$ b2 C. @
- */, p+ \7 s8 L6 r8 O+ g; X
- UF_UI_open_listing_window();
! z0 Q+ J: Z& f0 O+ x0 w - char msg[132];
4 k& N" U8 Y/ C( R @ - // get line information3 [( p' i) O* b0 A( d" d, `" ~
- UF_CURVE_line_t line_info;
8 v4 W! o" @& ]) I5 X - UF_CURVE_ask_line_data(line,&line_info);
/ D) [( X+ w0 u4 t6 ?) g5 x4 B - sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
! B3 E, F! V5 `, y1 z# S - line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
) L& q# R9 {: x# A [ ?( x - line_info.end_point[2]);
, M+ z$ o# [* H# O! Y5 {# E - UF_UI_write_listing_window(msg);" I" J. Y6 X6 Y1 N; ?1 k
- //get the point information
* ?( i+ A! G9 z/ v; R* N - double point_info[3];
' B# m+ v' T0 F! y( [ - UF_CURVE_ask_point_data(point,point_info);
+ ]) G4 H5 |2 _; a% W9 Q - sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);' s' f6 G" @- q( V, _! b) j
- UF_UI_write_listing_window(msg);</p><p> //get the arc information* ^4 c, {( b% { c) R1 ]
- UF_CURVE_arc_t arc_info;( M6 a8 B; W2 j3 f! p# M+ [
- UF_CURVE_ask_arc_data(arc,&arc_info);
; R3 t& Y% ?' J - 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;",, G% u( U6 n7 {
- arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],+ ^2 z% g' D' F' f. Q1 q k8 p
- arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius4 ~2 j+ ^% m/ G1 j+ q
- );5 k5 r* W! G7 |- p Q8 K3 V
- UF_UI_write_listing_window(msg);* j q% P$ O" R8 I: V9 ?/ X
- // calculate the arc length7 m: {: p5 J" Y8 A7 P! U7 O
- double arc_length;
! J9 {( A9 L9 m% t4 B4 g - UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);/ a* i, m0 H3 q2 N; |2 U
- sprintf(msg,"\nArc Length:\n\t%lf",arc_length);. ]4 L& I- c' u; v' m6 b
- UF_UI_write_listing_window(msg);
! E, c4 Z7 B$ c _: R& v4 g# d - }
! h" X& G/ c! ^, k4 x. m; o% D4 r1 Q - </p><p> </p>
复制代码 + H- u* g! [ I4 h7 G9 T1 |
|
|