|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码4 R. ~& X1 F/ A( p& X
$ j: X# l4 N ?5 ?- <p>static void do_UGopenapi(). J' |) D7 h2 @& h3 v. O
- {' \' c$ v! c0 A' K# B( f
- /*
; S5 I/ c+ T* s$ q# g9 \% x | - Create Curve
5 q2 [1 V+ A) N p4 g* s9 m - */
$ Y8 _* o) j9 V5 d, i - // create line# D" J% F" l4 f2 _1 s
- UF_CURVE_line_t line_coords;: ?3 C; Y( U7 d- Q
- tag_t line;$ J) _/ @. F) h( H) {& N
- line_coords.start_point[0]=0; K$ g. r' S) r: P: O, o
- line_coords.start_point[1]=0;" i6 ?* E/ Q# G! S8 z
- line_coords.start_point[2]=0;
: Z* c3 @. h4 C4 k - line_coords.end_point[0]=100;) g' q5 ]2 ^% F( k* t/ z+ n
- line_coords.end_point[1]=100;
. g% u9 k- }! y* X* Q+ O - line_coords.end_point[2]=100;. S) ]# @* \3 @ w
- UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc$ M& k: s+ @% w( L* P1 P. {
- UF_CURVE_arc_t arc_coords;! V( o7 s0 d8 l% o: ] [) X. y
- tag_t arc,marix,wcs; ~' W; A; ~$ T7 I$ J
- UF_CSYS_ask_wcs(&wcs);- H1 h( i0 ]' w$ f( C# B
- UF_CSYS_ask_matrix_of_object(wcs,&marix);
* {! s- W `2 K; W, H" U* q5 ^ - arc_coords.arc_center[0]=0;
. J. N4 L# @ F/ G8 N4 L1 H - arc_coords.arc_center[1]=0;& S' n/ k( ^ A
- arc_coords.arc_center[2]=0;8 k( \. t$ v+ d& M3 C
- arc_coords.start_angle=90*DEGRA;! e" D/ K) x+ o5 L$ E2 y
- arc_coords.end_angle=270*DEGRA;& ~& G9 g' S# b' g- `+ `1 @
- arc_coords.radius=100;
1 c1 w( t* E6 U% D - arc_coords.matrix_tag=marix;
. q/ C! W9 E0 x' [, I' ~5 j - UF_CURVE_create_arc(&arc_coords,&arc);# Y& H4 B" t, g4 a" X
- // create point + o( x3 F4 s! [6 t, g- m
- double point_coords[3]={100,100,100};0 z1 P8 Z0 p2 v8 @# J1 e
- tag_t point;3 }- C: M t& z" ?
- UF_CURVE_create_point(point_coords,&point);: L/ h7 F7 s3 }9 v o
- 3 ]# o" _6 \4 E' n7 j
- // create Plane& S7 M( d( e9 a8 F; Y) x
- double origin_point[3]={100,100,100};
! v! e4 M1 g+ E2 h4 T( b3 W1 | - double plane_normal[3]={1,0,0};
9 i& o/ ?# ?3 i) r `# ~+ H - tag_t plane_tag;
$ X V- J! L: v, [# t T7 x, Q- s - UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
8 W% ^1 D/ }. J8 i* t - Get the curve information5 D7 W' T( k9 A( i" T7 V
- */2 S/ A; W' p& Y. n; j
- UF_UI_open_listing_window();
# [: Q. S; ]; j* E& ^ - char msg[132];1 F1 C$ P! c v: ~( y* l+ B
- // get line information9 w* e8 I% a) V5 M# h& d
- UF_CURVE_line_t line_info;
( o6 ^3 B) b0 P4 [5 j) _ - UF_CURVE_ask_line_data(line,&line_info);9 c( y9 H% p. D6 p9 z$ C5 f4 u
- sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
0 Z2 X; j: T D - line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],/ R$ e/ b" `' U- s, t6 h2 r
- line_info.end_point[2]);$ i/ S2 M. e0 k( R8 [
- UF_UI_write_listing_window(msg);
3 E' x/ v m3 e, g* f3 V$ W - //get the point information7 e3 |+ y8 c. ~5 _8 Z
- double point_info[3];
i& }, ^# B! C - UF_CURVE_ask_point_data(point,point_info);
8 H# P$ X2 H$ Y0 I v& |8 u- L, A - sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
0 G4 t0 ?# ?9 [: Q - UF_UI_write_listing_window(msg);</p><p> //get the arc information
2 }; P u7 P& s* K/ Z& i6 y - UF_CURVE_arc_t arc_info;
$ X% Q+ u$ y: G1 j8 g' E: y; ~ - UF_CURVE_ask_arc_data(arc,&arc_info);
9 O- {) s# \' ? - 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;",6 r& j6 d7 k% h6 D. [
- arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
. x8 }4 E/ z: \4 M7 [ x$ n - arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius. u" D3 s J" m# P" j- J
- );4 n& D. l$ H( }$ N7 G [! _
- UF_UI_write_listing_window(msg);
( r7 j6 e' N4 t0 ?- W% P - // calculate the arc length) r; k3 U. v3 u
- double arc_length;
8 \% v3 g9 f$ x( V3 ~# G6 s2 y6 r8 p/ K - UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
4 K; h# [4 A% c1 j9 i0 H9 D - sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
* _2 s- H6 c! {$ t - UF_UI_write_listing_window(msg);
' k4 L3 x' G: m+ R9 I+ Y' B& K - }5 T+ ]$ q$ m, A
- </p><p> </p>
复制代码
- N- L2 g& U7 R' P |
|