查看: 3204|回复: 0

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

[复制链接]

4

主题

3

回帖

48

积分

管理员

积分
48
发表于 2013-11-27 15:21:12 | 显示全部楼层 |阅读模式

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

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

×
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码- {* ?3 o4 w. m
+ Z# j4 G; u8 q
  1. <p>static void do_UGopenapi()0 F! i% v; k- b: U7 M
  2. {
    ( y  }4 J, C$ ]. i( N7 L
  3. /*# M- r* x/ ]0 X5 r7 c( }9 k
  4. Create Curve
    ; H  C% l  g! N
  5. */8 d5 z* ^- X% q! ]* r- v
  6. // create line
    0 m" W9 M: j5 H( L* {1 D! J
  7. UF_CURVE_line_t line_coords;% U: `% I6 p# n0 m9 `/ T/ @8 v' W
  8. tag_t line;
    & u2 ^4 p0 [/ t" }0 W
  9. line_coords.start_point[0]=0;
      P# H# ]( F# F* {* e  \+ e
  10. line_coords.start_point[1]=0;
    # y7 [1 s+ S6 U5 p* h
  11. line_coords.start_point[2]=0;
    4 }8 f' H5 t: s# H" ?4 h1 q, ]! h
  12. line_coords.end_point[0]=100;
    # E( F- x. n# A+ z
  13. line_coords.end_point[1]=100;% M7 Q% x2 a' `* m, o; M
  14. line_coords.end_point[2]=100;
    ; B7 ~$ }- t  y' d# W% B
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
    / G+ _8 Z* R% ]/ y1 P
  16. UF_CURVE_arc_t arc_coords;% X  ?5 a7 n7 K# p
  17. tag_t arc,marix,wcs;( `- e& u8 Z/ \3 \* G2 F- S& P
  18. UF_CSYS_ask_wcs(&wcs);! }& J2 Q( E( G# b4 ~
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);: g+ x4 I) m, g$ a6 O& Z
  20. arc_coords.arc_center[0]=0;
    / {6 w* Q' }. H7 p, _
  21. arc_coords.arc_center[1]=0;
    5 i2 h7 s' t* h
  22. arc_coords.arc_center[2]=0;
    : W) k1 R( q( X5 Q
  23. arc_coords.start_angle=90*DEGRA;
    / d7 n2 Y9 \( x9 u7 H; D/ R
  24. arc_coords.end_angle=270*DEGRA;
    6 l6 }+ N( A8 @+ u0 Q' C7 c5 C" _
  25. arc_coords.radius=100;2 S7 o. H  r: o5 P
  26. arc_coords.matrix_tag=marix;$ }+ m& F; j8 w  a
  27. UF_CURVE_create_arc(&arc_coords,&arc);4 v! w$ z2 d/ L
  28. // create point
    7 B. p+ G' x6 [9 b6 Z9 C. `
  29. double point_coords[3]={100,100,100};/ ~# \; B0 d& L. z( D
  30. tag_t point;
    ( t/ m* v" C% \
  31. UF_CURVE_create_point(point_coords,&point);
    3 B' G7 B' Z; z

  32. 6 a/ c5 _6 E+ G$ G! t
  33. // create Plane
      K. x0 g9 [. ]) B* f; K+ W
  34. double    origin_point[3]={100,100,100};6 ^# E% x" _9 }4 N4 `2 l" d
  35. double    plane_normal[3]={1,0,0};
    ' m5 y+ ^  I$ z  f) i
  36. tag_t     plane_tag;   
    ( H: S% g: d3 O. `: ~
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    - x8 w7 D' ^8 i# b9 m0 v
  38. Get the curve information! v& k% s) W1 @) ~2 L+ {
  39.   */
    6 ~# x0 `' K. d2 j2 q5 a: }' B
  40. UF_UI_open_listing_window();
    % w2 p2 M, J+ _% V
  41. char msg[132];9 ?" U# O+ P/ M. f9 z; h+ ^
  42. // get line information
    % z6 K! d- i7 G* g9 @7 c4 m. N  v0 T
  43. UF_CURVE_line_t line_info;6 ]5 x! h9 `& l5 Q
  44. UF_CURVE_ask_line_data(line,&line_info);: r. g, w* ?; G* t7 @
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],* j1 Y; c( }' A+ r& S# Z
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],% u$ |2 r$ M1 _; T% v. M1 {4 R
  47.   line_info.end_point[2]);) I# h8 Q6 y2 Z* d8 B
  48. UF_UI_write_listing_window(msg);0 ]% T: m9 z; U3 O# O
  49. //get the point information
    % f* c  ~4 p4 \& `0 ?
  50. double point_info[3];0 l  @9 k' M. E9 T8 S
  51. UF_CURVE_ask_point_data(point,point_info);
    ! r. _( F- Y% g3 _6 z6 ^" C) s; B. ^
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    , r  k1 s2 A! R; p' i1 C
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information
    4 s( C; L4 C) _4 A
  54. UF_CURVE_arc_t arc_info;, S% a' f3 F4 l1 _) G; a; A  i# L
  55. UF_CURVE_ask_arc_data(arc,&arc_info);$ v) z1 ]0 i5 O' f" d
  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;",
    & f- a! w% N; B3 b. I! O: |- W
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    ) X. ~5 I, [( s# a
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius" q- h7 V: @) M. H: G
  59.   );( e6 i; y' h0 {: T  ]/ I
  60. UF_UI_write_listing_window(msg);0 f  [5 ~$ D8 e- Y
  61. // calculate the arc length+ d8 d% @& N$ J
  62. double arc_length;% r# l2 N: w( F% Y
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    6 d) z8 @/ l& x8 X$ u0 v0 g
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    3 i- s6 V9 E3 @7 ]0 V1 A2 `3 c+ Q
  65. UF_UI_write_listing_window(msg);
    ' b! V# v% f$ I( i( w4 o# V
  66. }
    4 t8 a; j2 l, C+ p& s$ |
  67. </p><p> </p>
复制代码

6 \0 ?" l% }! @8 R5 t* B. Z. ~2 R$ R
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部