PLM之家PLMHome-工业软件与AI结合践行者

[二次开发源码] NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码

[复制链接]

2013-11-27 15:21:12 3087 0

admin 发表于 2013-11-27 15:21:12 |阅读模式

admin 楼主

2013-11-27 15:21:12

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码, o  p, q% s  e

3 j+ p- G6 @8 S. {" ]; {9 W( g
  1. <p>static void do_UGopenapi()
    - X: J, z2 c: R
  2. {$ s# u3 y) o# @! g/ k& S4 W2 P
  3. /*
    * ~$ Z) v4 j  i# }+ u
  4. Create Curve
    6 f9 B+ F- F5 Q1 z
  5. */
    . O  d1 z+ \$ C. G
  6. // create line
    ( n/ h: G4 d/ V2 J& B$ J
  7. UF_CURVE_line_t line_coords;
    ' S* [2 u5 P) Z* W7 l0 a
  8. tag_t line;& ~. _9 x% l# _# g8 n5 o6 g! w
  9. line_coords.start_point[0]=0;, v/ \/ ~+ }9 l1 V
  10. line_coords.start_point[1]=0;
    ) _. i/ q7 q) G5 U, k* S
  11. line_coords.start_point[2]=0;- e) ~; ^3 G& g% n
  12. line_coords.end_point[0]=100;0 `6 f; S! Y1 Y" A  N  @
  13. line_coords.end_point[1]=100;" i" |: T; V: x: t1 I
  14. line_coords.end_point[2]=100;: O5 x0 i) g/ |4 v2 J9 F
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
    3 I( r$ `  L! Z  O8 r
  16. UF_CURVE_arc_t arc_coords;
    * R% {, R2 N: W1 {* E
  17. tag_t arc,marix,wcs;
    ! K7 C+ Z- @3 p& \+ S& I
  18. UF_CSYS_ask_wcs(&wcs);  I7 {* B: u7 \. f  Z' R; o# z
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);2 [3 H( H. }3 V$ |. n1 l' f) [
  20. arc_coords.arc_center[0]=0;. H, s6 m$ V2 F+ U+ ^5 F) N5 i
  21. arc_coords.arc_center[1]=0;
    8 {2 |8 T" d$ t" s9 l+ X
  22. arc_coords.arc_center[2]=0;
    4 R8 \9 z) J+ ]
  23. arc_coords.start_angle=90*DEGRA;& G2 ]1 U" v) d! t( t; \
  24. arc_coords.end_angle=270*DEGRA;0 k2 T; |- R: K( \# ~2 s
  25. arc_coords.radius=100;
    . z" Z' H3 ]" ?) K9 ~
  26. arc_coords.matrix_tag=marix;% u, z8 z2 j4 }, ~3 S% J9 M
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    ' e. @# W4 U) p  w( C3 p5 C; K8 x
  28. // create point 9 s  `( G9 Z, Q2 l
  29. double point_coords[3]={100,100,100};
    2 w9 p( C9 y; {. f$ Z  w
  30. tag_t point;
    & g& L$ q7 P5 c& q
  31. UF_CURVE_create_point(point_coords,&point);' J9 X, m6 T( f1 i# q7 h" C& q6 B
  32. ! i; r% g/ J* Y% F- O
  33. // create Plane! g( i; ^$ s+ k& \7 H; S! V/ m( \: N
  34. double    origin_point[3]={100,100,100};
    ) N% a6 y# C3 I0 x* t
  35. double    plane_normal[3]={1,0,0};
    $ L: j) X. ]$ b9 v( ^
  36. tag_t     plane_tag;   
    + [3 ?; Q1 N, |! e- V$ k! U5 R% _
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*6 Z- ?  D! [8 x" @1 g
  38. Get the curve information
    ; b' a* I5 y6 n$ I( Q# v/ A+ l
  39.   */
    ' V) j# @+ D, o- k  ~3 c! x4 v
  40. UF_UI_open_listing_window();# S* t( X/ l$ Z
  41. char msg[132];
    . e; \0 h' _8 O& k1 Y- r
  42. // get line information; P1 [& r5 {6 {
  43. UF_CURVE_line_t line_info;6 c  P9 v* j( Q6 N1 ]
  44. UF_CURVE_ask_line_data(line,&line_info);: M: p  L& m" f- q; O# h
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],& Z+ a; w' P& p" y% P5 p% S$ q$ E
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],$ {* j" R7 t- n& V" p1 U8 Q* @9 q6 I
  47.   line_info.end_point[2]);( V$ M/ x: R$ X0 i1 Q- A
  48. UF_UI_write_listing_window(msg);9 ~+ Z! o; Y- j8 d& v2 }& P
  49. //get the point information
    - N3 {; p! g! [, f+ ^
  50. double point_info[3];
    ! S  m& [- J8 n( c2 \% N
  51. UF_CURVE_ask_point_data(point,point_info);
    / p! W' Q) [4 o" Y2 \2 B
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);: s4 v  x8 y7 R; e6 u
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information" c* {& z+ V5 D8 I+ n
  54. UF_CURVE_arc_t arc_info;6 f. e) P  e7 J2 y
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    / R# N, }4 r# x9 l
  56. 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;",
    9 I# h$ a1 I. _' |( \2 B
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],+ |( x; `% n0 N
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius0 N% z0 S" O, _% f" I5 B- e
  59.   );0 K7 y3 e* H+ B  @$ R
  60. UF_UI_write_listing_window(msg);( A: e6 Z5 ^. y& [6 E+ r
  61. // calculate the arc length
    . J: M7 x* w" k5 t# B7 p
  62. double arc_length;$ H$ n0 Y, o/ z7 i. }9 x' @
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
      [) O9 V5 h( L5 j9 |: s+ N0 D$ q) d
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    ' x, V/ ^8 P$ L% d2 F6 J8 g! r* w
  65. UF_UI_write_listing_window(msg);4 x  |) k+ O7 i7 _' Z
  66. }
    . @( J4 L5 R, K" Y) V
  67. </p><p> </p>
复制代码
+ b% ~1 o! I$ C  _2 Q5 [
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了