|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码' v. Z: ?" [3 t4 R
* ?' H1 p0 |3 w$ u6 }
- <p>static void do_UGopenapi()
( a, h& E& t/ X. G% a/ S - {- }) [6 I: `* J$ {7 |
- /*$ i& L0 j! g4 c- o$ [" Q0 j
- Create Curve* U; J8 D+ u% U: x7 ~2 k/ M
- */
+ L7 X' D8 V& T7 `- y2 f/ J) X+ x - // create line, O, |6 ?; K- }' X$ |: v
- UF_CURVE_line_t line_coords;
4 w6 \' ]: h6 Y8 h6 J - tag_t line;: l( x }* L4 s+ W! M
- line_coords.start_point[0]=0;1 M% y; B5 P+ ~" I: z. p# X& j
- line_coords.start_point[1]=0;$ x i. g8 F5 D, a
- line_coords.start_point[2]=0;
$ l% ~- C7 y5 d6 n1 b! n4 C - line_coords.end_point[0]=100;
2 G9 w V5 K2 _& N0 P" \& u9 L. u& i - line_coords.end_point[1]=100;, B" P |# @2 f) K; {
- line_coords.end_point[2]=100;4 _6 u& G% {4 ?2 g% {8 H* i3 A, A
- UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc: k' R# t" J4 O9 A, W& @3 E0 v; H
- UF_CURVE_arc_t arc_coords;# v" B- N# M, M8 h1 B, y, C- i' k
- tag_t arc,marix,wcs;0 e* G9 C0 E. D q& Y
- UF_CSYS_ask_wcs(&wcs);1 ~ Z" N8 c Z& U
- UF_CSYS_ask_matrix_of_object(wcs,&marix);
9 I: s, G1 }1 D2 s" B - arc_coords.arc_center[0]=0; X! [2 k& z2 Z5 [( S# S z! v1 v
- arc_coords.arc_center[1]=0;
* x$ E6 I+ q% \* t' s' j: L - arc_coords.arc_center[2]=0;0 y5 |" L0 p9 Z C9 [9 T: L; r
- arc_coords.start_angle=90*DEGRA;0 W! N' z) B6 j4 f, l* y1 I
- arc_coords.end_angle=270*DEGRA;
' y+ q' P5 r4 m0 ?5 z; h. S: a - arc_coords.radius=100;
& R: f! @" [' R7 ^/ D - arc_coords.matrix_tag=marix;' F; T) \8 B: X
- UF_CURVE_create_arc(&arc_coords,&arc);
- Z" P: V7 C! ~: }7 A) r" s& c - // create point
5 J) A" L: r) a0 K+ V - double point_coords[3]={100,100,100};
7 ?' H( W/ G2 {' N" `- p - tag_t point;, y6 u0 F5 M7 l9 l0 Y$ a
- UF_CURVE_create_point(point_coords,&point);
1 O D9 q8 z& V - 2 J# T" y7 [0 M
- // create Plane5 j4 R) ?- M; S8 q7 O1 D$ q; t6 L
- double origin_point[3]={100,100,100};
; Y7 z8 J X& r/ v6 X - double plane_normal[3]={1,0,0};. M7 W. {- f" l& _
- tag_t plane_tag; ( Y" U T$ S: l9 ?0 j) m, u
- UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
" X: e; g8 f; u( |7 R7 D - Get the curve information+ g' _1 g3 O& C% y6 w; V1 a# L6 k
- */
. Q/ ~ m! R0 k; W - UF_UI_open_listing_window();( b" S) }; n0 t1 w8 {! B! Y
- char msg[132];( v" c2 i, E" O$ q, x! b7 H( H
- // get line information
; I& K& b3 P/ V$ u7 [- K9 e/ G - UF_CURVE_line_t line_info;
3 e2 \. Q" X( I/ I, c- x) P - UF_CURVE_ask_line_data(line,&line_info);4 P) ?3 T3 K% S, ]5 ~$ d: I
- sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
" [+ @6 Z# N! r9 Y: e$ F - line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
: t7 t9 E" h/ f5 x# n3 @- m - line_info.end_point[2]);; J0 J3 x8 J6 O4 J% }* n$ P
- UF_UI_write_listing_window(msg);7 U8 d% [; a! _6 R6 Q! |
- //get the point information
& o, g! ]; c/ s# T2 |4 j) n% y - double point_info[3];
! x* F \1 c: G5 o - UF_CURVE_ask_point_data(point,point_info);/ R0 }# u5 T r- B) k. T; X
- sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);6 y5 }( u* ^5 d# N1 s" [' ]
- UF_UI_write_listing_window(msg);</p><p> //get the arc information8 W, g& V8 T! J" A& R! x
- UF_CURVE_arc_t arc_info;
( Q1 W) ^- H7 y! c; m - UF_CURVE_ask_arc_data(arc,&arc_info);" c" O# \4 }$ e5 p; V5 |
- 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;",
: e Q! {9 G, D, C# B( x6 M - arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
9 ~( J- w; d2 {. |/ C2 d - arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius2 p$ X7 {% }/ |8 ?0 c
- );
' X& F( t+ d. u5 E- J f1 ]) z - UF_UI_write_listing_window(msg);0 S8 x, y& w2 c$ C
- // calculate the arc length
/ t# J# C& Y7 x/ M6 P/ g& F/ d - double arc_length;4 p0 d3 g/ s; T
- UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);, u+ o' c1 B. V D+ d9 J
- sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
" Y5 l9 I V) @/ x+ I, f1 p2 q - UF_UI_write_listing_window(msg);) |- o* s3 c/ ~) `5 j0 q
- }
! ?5 d" Y5 F2 s - </p><p> </p>
复制代码
4 g8 J3 B! f5 [; a' l# H) o0 j g: O |
|