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

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

[复制链接]

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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
  n# O$ w8 i3 i" }- a% }" u7 u8 \- ]+ W' `- I$ \. V- C; i- m
  1. <p>static void do_UGopenapi()
      ]* O; `; |( {+ U
  2. {$ L" E+ _0 W- w1 D# Z* K
  3. /*
    $ W8 ^7 ]3 R) s7 h5 f- w+ d& l
  4. Create Curve* g! ?6 _. `+ i: L
  5. */
      ?% z+ W9 ]  O! L  Q$ R& X
  6. // create line1 l% b: _6 W$ Q& Q+ F
  7. UF_CURVE_line_t line_coords;
    ) n; H- Q/ H8 H" H1 ~; C
  8. tag_t line;
    . Z2 H3 n1 r8 Y8 O4 s: S3 W3 \
  9. line_coords.start_point[0]=0;  F9 e% H- l! f
  10. line_coords.start_point[1]=0;
    , P* G$ e; ~0 X
  11. line_coords.start_point[2]=0;
    % \. C" m: e9 s# q( l( h5 J
  12. line_coords.end_point[0]=100;8 H4 e/ m  B* k0 a( ^
  13. line_coords.end_point[1]=100;" D  h+ o* }3 Q9 c# V( J2 p
  14. line_coords.end_point[2]=100;! S- \; c6 O' x; @
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
    " A, \3 q5 a& h0 n2 U
  16. UF_CURVE_arc_t arc_coords;
    / ~/ b3 v$ j( B5 n, _% w
  17. tag_t arc,marix,wcs;2 C' P7 t+ y' t2 O
  18. UF_CSYS_ask_wcs(&wcs);/ Z% _/ i6 z% b, d7 T
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);
    - D5 A1 n! x. B1 r' o6 m) Z
  20. arc_coords.arc_center[0]=0;# F$ ^: N8 \. |! u
  21. arc_coords.arc_center[1]=0;
    8 ]9 L0 h3 z' n, H0 z# N0 x' e
  22. arc_coords.arc_center[2]=0;! I% x# z- L5 E3 I: X
  23. arc_coords.start_angle=90*DEGRA;, o; i5 V0 Y# z
  24. arc_coords.end_angle=270*DEGRA;
    : Y6 p" h/ u& j$ v
  25. arc_coords.radius=100;9 Z! p, ]" J# _' _% Z
  26. arc_coords.matrix_tag=marix;& d! o1 v$ A. H, P1 t
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    . y5 n! K& e7 h7 E' n$ B
  28. // create point . w. L! n! @5 P; {9 I6 E& R% A
  29. double point_coords[3]={100,100,100};
    $ z. S$ Z' w: F7 c1 A1 N
  30. tag_t point;1 Q! \$ s0 Y* s' ^- v3 Q5 g6 s
  31. UF_CURVE_create_point(point_coords,&point);
    : @8 s9 Z) ?4 q* [9 Z. p& i

  32. 7 b( n/ S* J7 W2 b
  33. // create Plane
    2 L% _7 G) f# J2 _2 e
  34. double    origin_point[3]={100,100,100};
    0 X8 I; n2 ?2 `. @3 D
  35. double    plane_normal[3]={1,0,0};" M' V' o/ \9 S9 z
  36. tag_t     plane_tag;    ; i' h8 H  U7 n/ t9 l6 p" G9 Q
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*0 r/ r9 ~! K: X; u2 U! b( |
  38. Get the curve information% V/ [; ?3 T- {- w( Q& \: E
  39.   */
    . P, U& c  z/ z$ S8 x- `0 W  K
  40. UF_UI_open_listing_window();4 x! d' Q+ S; y1 Y& h! k4 O
  41. char msg[132];
    " m$ t- U- h6 M! g- k0 y+ M
  42. // get line information+ k$ l( V% V& L% z. l
  43. UF_CURVE_line_t line_info;% Y, c/ u  _! c
  44. UF_CURVE_ask_line_data(line,&line_info);8 ^5 F0 X6 y7 y+ j
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],: M1 O! V. n6 V6 b6 M
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],- R3 W. h+ b8 m/ k; T5 Z
  47.   line_info.end_point[2]);
    1 p$ Z# s' V7 L, p( X6 D0 j
  48. UF_UI_write_listing_window(msg);3 U. X6 ^+ O3 Y
  49. //get the point information7 T) a/ ]# u. k' {: A1 ~& `* S
  50. double point_info[3];6 H* ?) f; r; v& _
  51. UF_CURVE_ask_point_data(point,point_info);2 j+ v% v; k( \3 x" {7 c3 f
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    * {* t" I4 W9 q" S  A. D0 I$ y) t
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information4 }1 [  J, i2 ~
  54. UF_CURVE_arc_t arc_info;" D5 a- J: A* \1 f5 Z. D2 d
  55. UF_CURVE_ask_arc_data(arc,&arc_info);7 f7 o) I& F& Z
  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;",# K2 D6 S9 n" O, e% k
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    4 N+ Y% m6 y; |3 F' }- M$ b1 q
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius4 T) L. g9 Y5 ]2 I$ E- y
  59.   );
    6 Q  D1 \& N7 b- X8 `; K  F
  60. UF_UI_write_listing_window(msg);
    ! c) H% ]1 w2 N* q
  61. // calculate the arc length2 ^6 T4 ^; N# H' U# V, S7 A
  62. double arc_length;
    * V7 Z* R* f" B8 q6 N
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    ! Q6 B8 t- @3 [& u' C2 U8 l
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    " C' [& {& R- a" _
  65. UF_UI_write_listing_window(msg);
    + A% ?( S7 i; ~# w9 w, l
  66. }
    ) }3 ~& Z9 ^: d: a
  67. </p><p> </p>
复制代码
/ J8 S5 b  B$ J) B' y( Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了