PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
( w6 X- \' C* B& [0 K( \. t# w# g" w' h# s  M
  1. <p>static void do_UGopenapi()6 l3 q/ ?" P8 p' N2 h4 Q" v' D% q
  2. {, s: o- g/ O, m' @7 R  L$ C) H$ z
  3. /*
    ( {2 B1 C+ e% i! W3 C4 R* I
  4. Create Curve7 p' r& _3 a2 ^, F7 l" _
  5. */- V% z* j4 ]2 U/ ~* t
  6. // create line  Z+ Z  }- w8 F2 f# Q$ S: y1 W
  7. UF_CURVE_line_t line_coords;
    & C1 Q# C6 j* Z* W1 k2 A
  8. tag_t line;' ^" r+ v& e4 c4 t! S% D
  9. line_coords.start_point[0]=0;
    % v( j/ m/ i/ t0 \0 n
  10. line_coords.start_point[1]=0;
    ) m& ?. X: E( N' U+ s; D
  11. line_coords.start_point[2]=0;
    6 m1 F! F  l2 D9 J' c. K
  12. line_coords.end_point[0]=100;
    " u4 B3 \. V( v) E3 l5 X- N3 s
  13. line_coords.end_point[1]=100;5 Q/ a; ]# B! U9 z- G0 m
  14. line_coords.end_point[2]=100;
    % {$ X0 x: I0 H: W4 B& m, N
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
    6 G: a1 w$ b% V& z" K7 D
  16. UF_CURVE_arc_t arc_coords;! K1 p( y. c' u* d! M
  17. tag_t arc,marix,wcs;- m* m  T" I$ M( `0 ^) i* Y
  18. UF_CSYS_ask_wcs(&wcs);& X( Z0 |. K" ?9 s# {# }! E( ^# _0 W
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);9 ]; J1 o3 J) u) S
  20. arc_coords.arc_center[0]=0;
    , {$ u3 T7 \- c% I. ^- A8 _/ [
  21. arc_coords.arc_center[1]=0;" x. W; `& @$ X& ?5 F" ]! X
  22. arc_coords.arc_center[2]=0;
    $ {! y: }# i/ r/ I3 a
  23. arc_coords.start_angle=90*DEGRA;
      {2 p& X% Q" `7 ]  e  W
  24. arc_coords.end_angle=270*DEGRA;
    6 N. n2 m& {6 {- J' P
  25. arc_coords.radius=100;! }+ p% x+ D6 K6 h2 Z0 ^. L1 E
  26. arc_coords.matrix_tag=marix;- z: h- U! u4 |) R
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    " k; H( k, Y  d7 J: U
  28. // create point
    + m% r1 v0 I2 L' i
  29. double point_coords[3]={100,100,100};
    & K) \0 @# O& S: W2 K, x2 c
  30. tag_t point;" w! H, s/ r% k( x6 [6 ?
  31. UF_CURVE_create_point(point_coords,&point);* N0 U( Q2 a3 O/ n  G! N6 O

  32. 4 q/ F7 m, e" o3 k) i2 [( r' W7 u
  33. // create Plane$ M; T7 B6 v8 q  S, }6 r
  34. double    origin_point[3]={100,100,100};# X1 s: ^$ q, Q; ~2 W- i- i& q
  35. double    plane_normal[3]={1,0,0};
    . T; e! H4 M, e( Q0 D4 U
  36. tag_t     plane_tag;    7 h8 @. z7 ?; a' _1 U6 o1 P+ V; e
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    2 z" n8 O6 R1 K' a$ R: s
  38. Get the curve information0 R- z3 H8 e$ r- p5 {, {
  39.   *// j$ \$ K* V& \+ ^: W# U! d
  40. UF_UI_open_listing_window();
    ; d! ^" x' [6 O6 }9 _: o
  41. char msg[132];3 V. V7 ~8 r2 C( g6 ]+ {
  42. // get line information
    ! n) C+ [2 `. l7 v/ x0 K; m5 U) ]) L
  43. UF_CURVE_line_t line_info;8 s# v7 X* M- c4 b" d) a
  44. UF_CURVE_ask_line_data(line,&line_info);
    ; V9 c& u3 E: Y+ y
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
    ! O! _) K& a$ @' Y0 {3 k
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
    ; F( K0 U2 x* o$ u
  47.   line_info.end_point[2]);  ?8 |" [2 Y) L  k# b: |
  48. UF_UI_write_listing_window(msg);
    , R# R# M3 W0 }2 R% t
  49. //get the point information
    9 N0 i& n; J6 e* U6 j
  50. double point_info[3];
    6 _% @5 b$ K( i4 ]8 u
  51. UF_CURVE_ask_point_data(point,point_info);
    1 P+ R# U1 h! O. R! }* y7 N+ A
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);; R9 B0 n5 w" L/ B) x" C
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information
    ; B3 Y) \  Y# k- p
  54. UF_CURVE_arc_t arc_info;
    . G6 S- x0 Q% O; B% z
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    # O, P: {$ M" n
  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;",
    : }/ m' ]4 a$ O6 ?( B: V$ c7 w
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],9 [! a2 c; ^: F) `: P
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius- P, h5 x# s4 d4 L% V! V/ d: c  y; L
  59.   );9 R7 r; n+ ^  \: c4 z3 p
  60. UF_UI_write_listing_window(msg);
      ]+ a5 H$ p4 t$ z* X: q
  61. // calculate the arc length
    : M7 ]6 R$ m5 c  W1 b
  62. double arc_length;# M9 ~/ Q% r8 t* X1 n
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    ( X3 {* \. w9 [3 G
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);: ]1 V% c' x. A. ?1 Z2 i
  65. UF_UI_write_listing_window(msg);5 G5 D/ q" B& v! j
  66. }, F- G" W3 {5 _' g
  67. </p><p> </p>
复制代码

( B5 ^$ K9 @; K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了