|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
) R i1 \3 C; E% l3 K% Q% `: A% h( D3 A [9 e3 R9 R
- <p>static void do_UGopenapi() J, ?* l- N8 Z, }" s% _+ F
- {
/ L0 `9 u3 Y8 Q( | - /*+ e6 g# A& O1 U0 [' d6 T! a
- Create Curve/ {& f' A3 }- e0 b" O
- */
3 ^8 ^3 C0 p$ k: `8 d* m - // create line: M2 ^* ]5 W: ?, \! ^; j L6 }
- UF_CURVE_line_t line_coords;( w4 E: \- r3 W/ R$ a
- tag_t line;
& `8 m- M2 W3 J - line_coords.start_point[0]=0;6 `- U2 l- J# X" T( k
- line_coords.start_point[1]=0;
' r: e/ Y" A% o0 e - line_coords.start_point[2]=0;" `7 W6 T* f8 t' M$ A. R
- line_coords.end_point[0]=100;7 Z2 Y* |. r/ z' V
- line_coords.end_point[1]=100;
/ @6 h! ]! ~& g9 k& g) } - line_coords.end_point[2]=100;
: N/ F( L8 I" S5 b0 J0 l - UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc. @" { N/ O% \: t; e8 ^5 }
- UF_CURVE_arc_t arc_coords;3 p% g* Y1 E# N9 z6 T a
- tag_t arc,marix,wcs;" p. G, s) A4 ~
- UF_CSYS_ask_wcs(&wcs);' J3 ?5 R% D9 A7 P( ~
- UF_CSYS_ask_matrix_of_object(wcs,&marix);
3 ?! h. r/ m5 h" d - arc_coords.arc_center[0]=0;; A! z' m) P4 w# N/ b' E& a) ?) p
- arc_coords.arc_center[1]=0;
/ ~ W/ N: X1 w& `( x5 L1 d! E8 i - arc_coords.arc_center[2]=0;
4 Q: b& f- l! m' D) q! \+ i - arc_coords.start_angle=90*DEGRA;
, M) F0 v' y5 C6 i" v2 I* T - arc_coords.end_angle=270*DEGRA;" f6 F' }6 {" p5 u' `) M
- arc_coords.radius=100;
& D4 V# X; |* D+ b. O2 ?8 h - arc_coords.matrix_tag=marix;
" U( W& C1 U0 U2 {5 v - UF_CURVE_create_arc(&arc_coords,&arc);: A, q" V2 F2 q3 m4 ^4 T" U* a" K
- // create point 6 l8 |4 L& H, J0 w5 L0 C# [% f
- double point_coords[3]={100,100,100};. X/ l' h7 B- ~1 y* X% a
- tag_t point;0 \; Y7 u; g/ _& j" ^* l$ e* ~% M
- UF_CURVE_create_point(point_coords,&point);+ J. H5 V* h* O) `7 z9 P
- 8 G1 j' Q q+ x. W3 g7 y w
- // create Plane
- }7 }/ K$ G2 F5 [$ S# G/ d8 }( v - double origin_point[3]={100,100,100};
! `% E* {0 o0 |% B5 I0 d) f - double plane_normal[3]={1,0,0};8 u# `9 \2 g& s, _8 a5 G W
- tag_t plane_tag; ' U) k% o4 n# q' W; Q9 |: h8 z0 }2 Z
- UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
& B i+ f; U5 g - Get the curve information
2 S4 N/ R7 o" G* a! j( y - */& ?" X1 ]3 b) m# k; n
- UF_UI_open_listing_window();
) r; S* j3 Z8 B+ X: f/ Y - char msg[132];
, O9 y+ ~: k7 A - // get line information1 H% b1 U: S$ z% |
- UF_CURVE_line_t line_info;, m9 @7 X7 d" @3 S S; J
- UF_CURVE_ask_line_data(line,&line_info);
* ? c( L3 Q( G) i A8 } - sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
4 j& k5 E. f4 Z0 O- o* N - line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
$ M0 w& h/ s1 w2 \ - line_info.end_point[2]);
# I* P8 ~9 ~" N9 b8 r' n - UF_UI_write_listing_window(msg);
! {" H. B! w( C8 u" D; A - //get the point information
t3 q6 X& q& Z9 M) K+ ^% m - double point_info[3];( S( h* Q. L1 J$ V
- UF_CURVE_ask_point_data(point,point_info);
1 Z# I7 W- l+ ]% l" [/ x9 r5 { - sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);) s. A/ p' d& a [/ L8 s% k1 b7 C
- UF_UI_write_listing_window(msg);</p><p> //get the arc information6 f/ {5 j* @# i
- UF_CURVE_arc_t arc_info;
7 b% t) S/ h) @8 m - UF_CURVE_ask_arc_data(arc,&arc_info);
& i3 {( W; M. }2 J/ S) o4 f - 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;",
q2 j U' j4 g0 R( r - arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],! n0 D$ w. o3 n; c0 L' D+ a
- arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius7 V) f Z, b# X1 o. J
- );) v: }; K: T+ c6 ?9 ]
- UF_UI_write_listing_window(msg);8 ]2 m; }' p+ M; b9 q7 M" m- C# `6 @ v k
- // calculate the arc length0 F* v2 b; {0 V
- double arc_length;
- S1 o0 o( p1 V" U - UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);3 }# q5 h& r6 x
- sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
. |% G) B& @- ~; R1 L2 V: Q# I - UF_UI_write_listing_window(msg);& e, W) d! F6 x3 A$ Z: x" }
- }( Q% r$ R j- H/ d7 }
- </p><p> </p>
复制代码
6 _3 O' x' J9 v( M+ r. p. Q8 _: T, @ |
|