PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
( k2 S! Q1 W. L% z/ N* @9 ?: p2 K+ V
  1. <p>static void do_UGopenapi()5 G* u; h8 Y5 u" h  z1 x8 h
  2. {
    . k0 J+ A2 D7 z/ M
  3. /*
    6 x( c& J1 Z$ Q# u8 C4 O
  4. Create Curve
    , b: H, W3 ^8 @# z9 u( V
  5. */+ ]% F, Q& t6 B3 k0 m" R
  6. // create line
    8 A7 I- O+ y9 {& _8 ]
  7. UF_CURVE_line_t line_coords;
    1 U2 w. E- M  D! S/ Q% I' ]% t
  8. tag_t line;8 n: {5 N6 {! G" u; D& X4 C
  9. line_coords.start_point[0]=0;
    ) T3 n$ i  d# Q9 K: Z
  10. line_coords.start_point[1]=0;
    " }) F" [+ n7 a: p6 S% H
  11. line_coords.start_point[2]=0;/ Q+ p0 F( a0 P5 E; v8 \
  12. line_coords.end_point[0]=100;
    * L* ^+ O+ U5 u' g7 s
  13. line_coords.end_point[1]=100;% I0 L- ~& V; ?( _% P8 E
  14. line_coords.end_point[2]=100;6 N: @  u6 H( r; v: m% @: ]  e) H
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc- i* |) J. l5 |0 r0 q
  16. UF_CURVE_arc_t arc_coords;
    * W: o% V2 }4 K9 ?
  17. tag_t arc,marix,wcs;
    7 e  ^& o% ~7 S( Z- C0 P
  18. UF_CSYS_ask_wcs(&wcs);
    / @2 @9 b# v& M1 Y" E3 ~
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);
    # Y7 A. \+ R4 ^6 _/ H
  20. arc_coords.arc_center[0]=0;
    2 k5 H# @) e/ R& Z4 r" Q# ]) O
  21. arc_coords.arc_center[1]=0;
    / P2 F  A' B& n$ Y  ?' s% L- R! J
  22. arc_coords.arc_center[2]=0;
    . J" H/ V( C  m
  23. arc_coords.start_angle=90*DEGRA;; D3 e" j2 P8 ?
  24. arc_coords.end_angle=270*DEGRA;! _4 O8 H7 A3 W
  25. arc_coords.radius=100;# Q+ B4 |3 f3 u/ w* Q
  26. arc_coords.matrix_tag=marix;
    & e+ V& N4 \( V
  27. UF_CURVE_create_arc(&arc_coords,&arc);: M8 t  t& i* a  H. R6 s
  28. // create point # I) B9 R9 C* y0 A, a' `
  29. double point_coords[3]={100,100,100};
    1 t& [, t  ?  z$ e: L& L
  30. tag_t point;) G6 ^) g, j) `3 X0 x
  31. UF_CURVE_create_point(point_coords,&point);
    + r! s0 k2 D6 Q, B
  32. 1 e+ n( `* r: X$ g
  33. // create Plane0 ~/ u! o( Z# j  k
  34. double    origin_point[3]={100,100,100};
    * V2 v. B# p2 p) c& N
  35. double    plane_normal[3]={1,0,0};
    2 ], `5 z' C7 |; Q
  36. tag_t     plane_tag;    : F" n& h1 P: r& |3 _' J; L' V
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    - [2 v2 r9 [0 V0 l/ y+ r
  38. Get the curve information2 N8 y) H" X5 L8 B9 ^0 L. `
  39.   */
    . o2 J  E' u! R' X) @* e) B
  40. UF_UI_open_listing_window();
    ) N  e4 N9 x* f& x4 Q9 [# Q6 M: S
  41. char msg[132];# j7 E* n" m. u
  42. // get line information. u$ R) G( [: B
  43. UF_CURVE_line_t line_info;5 x# l+ |- i3 [
  44. UF_CURVE_ask_line_data(line,&line_info);
    8 o! @4 Z$ T! u7 ~& e
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],! l( v! z5 ]4 ]% y4 z
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],& F1 Y* w, `/ M$ g! L; M% q
  47.   line_info.end_point[2]);
    % _* o- m7 o$ R, j& V' F: w
  48. UF_UI_write_listing_window(msg);. b) ]8 c, t: a! ^8 n; f( ^0 f
  49. //get the point information
    % ?- N& a7 ]3 Y2 X5 o
  50. double point_info[3];" d& i! x$ H$ B7 A& d
  51. UF_CURVE_ask_point_data(point,point_info);
    5 y. j0 J$ Y- }
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);, @* h3 m* j& u6 S$ J1 m: C
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information& d# M( X) y1 j' u3 N! [: J
  54. UF_CURVE_arc_t arc_info;
    $ G0 G' V  u# H  I
  55. UF_CURVE_ask_arc_data(arc,&arc_info);- B* D& v) j' a. O9 @
  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;",# ?- O1 z$ P  @4 p6 F$ n
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    : J: b- L' l$ E. z
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius4 N0 P( w* ~3 y/ B
  59.   );
    % l$ m, g: E# `) a& B
  60. UF_UI_write_listing_window(msg);
    # u4 a) f. g, z( i/ z+ M# ~
  61. // calculate the arc length& [8 v3 w0 f( T7 n5 q# }
  62. double arc_length;
    * P3 e; h7 ~. c- |
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    6 i4 t" Y) V3 |
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    * u1 w7 z. j3 T( Z  C- Y! [- C4 x
  65. UF_UI_write_listing_window(msg);$ q2 {4 x% x& _9 v* U
  66. }
    , e4 x" s' ~/ A2 b0 `( ^
  67. </p><p> </p>
复制代码
. P2 B3 k% A2 I# F( m3 v7 `' _+ E
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了