|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
/ O; e# s( K2 P( V3 `8 C0 F) a5 f* t
& @$ T9 ~* `" `+ o+ B8 d- <p>static void do_UGopenapi(). ^; y# i2 [2 E, ?7 T/ t5 d' |% i
- {8 a. l. M( x1 Z( d6 B6 D
- /*
3 g7 U! s) m9 y. C - Create Curve
7 Q# r4 {3 O d* Q; E - */
5 J# [5 z3 u7 {; {; u. d% m - // create line: t% Y: c- R0 y0 e
- UF_CURVE_line_t line_coords;
8 E' @. `# b3 b! ?+ j - tag_t line;) { x; z9 E4 t6 ~& ^5 U4 Z- i
- line_coords.start_point[0]=0;
* V8 l. m w9 R) w# T, l - line_coords.start_point[1]=0;
( k* m2 T& ~! p+ `- f/ C - line_coords.start_point[2]=0;$ v$ O2 A7 `' t- d: A/ o, c8 N
- line_coords.end_point[0]=100;; c3 J q* p8 E! m% P
- line_coords.end_point[1]=100;8 ^0 @5 G) Z+ K2 \& Y& J/ t$ O
- line_coords.end_point[2]=100;" c4 d. ?# _) U4 E6 H o) g& M( k( \
- UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
: ]. A. u, q* \5 `) r) L& W - UF_CURVE_arc_t arc_coords;) p2 [4 X: [7 [4 n: _" d
- tag_t arc,marix,wcs;- @$ l9 d |1 r5 c" ~, q
- UF_CSYS_ask_wcs(&wcs);
& w' w4 b( O" o1 t5 |2 k% _' m - UF_CSYS_ask_matrix_of_object(wcs,&marix);1 g' w9 Z% ^4 y
- arc_coords.arc_center[0]=0;
2 I2 I d1 M- v7 S+ z( H - arc_coords.arc_center[1]=0; }1 }, M+ ]( v
- arc_coords.arc_center[2]=0;0 J/ ~' x3 [0 D
- arc_coords.start_angle=90*DEGRA;
; C4 ^, H2 b2 ]$ a8 z7 E' o - arc_coords.end_angle=270*DEGRA;
% ], k C5 W& x, Y) _4 l - arc_coords.radius=100;
+ z9 r* \. l5 c/ @8 D, W- F - arc_coords.matrix_tag=marix;6 U+ o; X# q( e) d! @! j
- UF_CURVE_create_arc(&arc_coords,&arc);
3 j$ m8 q: d& q( n6 H' } - // create point 6 |& S2 \2 ^/ }1 n6 M6 _
- double point_coords[3]={100,100,100};' |' u4 M$ U! v9 I6 a& ^. T% U
- tag_t point;
. v* }# V. \# R: j9 ]( X - UF_CURVE_create_point(point_coords,&point);+ f+ Y2 s, r) z. J1 G" {' [
-
" [4 l0 O) N1 L a1 U - // create Plane4 M( n D: O; e. C+ o7 J S
- double origin_point[3]={100,100,100};9 }! d1 j: x" i0 A
- double plane_normal[3]={1,0,0};
, Q K- \# A( T& `- c - tag_t plane_tag;
; n4 x) \0 N) v% ~8 b# ?; J' ^ - UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*; ~2 v5 K3 Z$ Z8 B, k- S6 L
- Get the curve information
/ C- z- y( C& f" ^2 ~3 V - */6 R) J7 F% K7 z& L6 w
- UF_UI_open_listing_window();, H, g# @7 p. h3 k( |5 k
- char msg[132];
* B9 \. x. B$ ` R% `" z# F6 z) A - // get line information
, w( l8 B, ]& ^4 H/ H3 W( Q - UF_CURVE_line_t line_info;
; _7 T- v+ o$ W - UF_CURVE_ask_line_data(line,&line_info);# k; m; B5 V" y, B9 O. l: [
- sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],) r( M+ F6 K: f2 V) G1 D" @
- line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],- R; [. f0 y% n* t: V" E$ Z# w
- line_info.end_point[2]);, c& ]0 f/ k" P k E: l
- UF_UI_write_listing_window(msg);
4 _* l# i3 m& g - //get the point information9 \, }1 F8 N! y2 X
- double point_info[3];
2 g4 G1 b* o; L0 Y* T5 @- R - UF_CURVE_ask_point_data(point,point_info);
* } n' L1 U1 Y+ e- X4 L" ?+ A/ } - sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
/ c% M# b. U2 }1 y5 r& o, Y - UF_UI_write_listing_window(msg);</p><p> //get the arc information2 f1 D8 b7 J4 z
- UF_CURVE_arc_t arc_info;
+ ^! X$ `; S. c - UF_CURVE_ask_arc_data(arc,&arc_info);+ c! P7 v( f! p( m4 @# R( | H
- 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;",7 j* h$ i! w, Y r" V
- arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],0 U( R! G# U5 P: @& D
- arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius
$ ?( I* `; p5 m1 }% @" U9 v - );
6 ]7 a* R |7 k7 L( I - UF_UI_write_listing_window(msg);
6 P p3 D: f. X9 E) @+ z$ y - // calculate the arc length
; P1 Y4 \: s. E! Z! [ - double arc_length;: w3 r0 `/ @2 s {
- UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);! B: I7 z& E: Y2 b) X4 Y* Z
- sprintf(msg,"\nArc Length:\n\t%lf",arc_length);5 R: C/ f: d6 c
- UF_UI_write_listing_window(msg);
4 @0 \$ b$ P( z - }$ t+ q) h. s. {0 U/ ?
- </p><p> </p>
复制代码
$ J0 {( L+ s' X; j9 d% G# I. i |
|