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

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

[复制链接]

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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码, M0 x9 R" g2 P6 S$ r) Z7 c

! n5 T" |1 G  J3 G  w/ B
  1. <p>static void do_UGopenapi()
    : `4 V, b. g. u& E
  2. {1 i! Z3 \5 Q" \0 `! v3 Y6 Q$ `6 d
  3. /*5 |/ r  |2 q+ _" J' u% x, s
  4. Create Curve
    * ^+ H5 V- J# ]3 u& O
  5. */) x5 c- n0 @$ k' u0 q
  6. // create line
    . X( x+ i# Z, k( w+ u! j
  7. UF_CURVE_line_t line_coords;
    % U3 C$ W- J1 @& M6 \) \; T0 ~7 ^
  8. tag_t line;
    / u3 v+ X- A$ l; s. x, f
  9. line_coords.start_point[0]=0;
    & W8 ?' q4 k" ?' l- C
  10. line_coords.start_point[1]=0;  _: r! W% }5 g0 {
  11. line_coords.start_point[2]=0;
    9 G- T. g0 v3 i8 V
  12. line_coords.end_point[0]=100;
    , d6 z! j! a( r2 j. l  I
  13. line_coords.end_point[1]=100;
    0 f, Y- N1 T! A% U9 L
  14. line_coords.end_point[2]=100;
    ( {% d! \/ O9 y  J2 D
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc! ]' i, s3 W) X# S9 d. E0 W
  16. UF_CURVE_arc_t arc_coords;
    : }7 C8 z% g1 b( g
  17. tag_t arc,marix,wcs;
    8 w, c0 h5 j8 X) u5 u6 G9 V* c" O
  18. UF_CSYS_ask_wcs(&wcs);
    5 K: s$ u0 i' N( G
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);; J4 l( C+ o- J4 W4 z2 q
  20. arc_coords.arc_center[0]=0;  b+ M) n7 Q. D  F
  21. arc_coords.arc_center[1]=0;
    4 ^& l6 ?0 X5 I' E
  22. arc_coords.arc_center[2]=0;" X3 a, D: w7 |" H
  23. arc_coords.start_angle=90*DEGRA;
    * k$ j4 ?1 ~0 V& C% [
  24. arc_coords.end_angle=270*DEGRA;7 `: W4 q0 i- ^% T1 W% a
  25. arc_coords.radius=100;1 {( G  U0 j+ l# D) P, ^$ g. o
  26. arc_coords.matrix_tag=marix;
    * Z6 B% w$ Y- L. g' [5 v
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    0 X' {4 W* Z# Q% T) e- U
  28. // create point
    $ ~& ]% l' C2 e6 B' [, @. ]* K& ?
  29. double point_coords[3]={100,100,100};
    9 H  w" X" ?& I5 K+ I( ]6 l
  30. tag_t point;
    1 \& t- Q6 {, w) g
  31. UF_CURVE_create_point(point_coords,&point);% U  A! U# ~0 y

  32. 7 x" ~; v- @% o! c* }/ X
  33. // create Plane. f: E& y: X% h8 Q$ u7 s6 N
  34. double    origin_point[3]={100,100,100};4 n) M( @/ D, k. u
  35. double    plane_normal[3]={1,0,0};3 \0 F! q3 t: s8 A
  36. tag_t     plane_tag;    & u, E4 ]/ N2 I6 N3 L
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    2 K3 }. }- P" C' V/ G5 V! M1 t
  38. Get the curve information
    : G( M$ p: v3 Y" i
  39.   */7 A# W" c. R  B- G5 H
  40. UF_UI_open_listing_window();
    ! J$ n- R9 N# m- i
  41. char msg[132];
    8 D7 j3 M: F7 o" r3 _  m
  42. // get line information6 {/ }- l- {+ X  \
  43. UF_CURVE_line_t line_info;
    , x0 D* `3 L( @+ ^6 N
  44. UF_CURVE_ask_line_data(line,&line_info);
    & z- v+ L' l1 B( K$ r
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
    7 L, p) o( `( f, ]- T, q5 J) [9 b# }
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
    : F3 t2 w9 u3 \
  47.   line_info.end_point[2]);
    5 d7 U1 V% j1 c
  48. UF_UI_write_listing_window(msg);
    9 J2 ~5 w: t, V" f
  49. //get the point information
    , ~2 [4 @7 L% ^4 C
  50. double point_info[3];
      }5 `, K* t' A0 k0 V
  51. UF_CURVE_ask_point_data(point,point_info);( w$ i% ^( g# @( A3 r/ b
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    & {) n2 `9 K" \' e" z. Z
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information
    9 ~- _+ j  B3 g' t. I
  54. UF_CURVE_arc_t arc_info;
    9 s- u' }9 q* O" Z6 d' _0 p
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    3 v5 E; V; ^; Z& q7 I
  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;",
    3 w4 F- H- G& l4 C/ w& d+ n
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    3 j/ ?& o3 }" a* S
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius' m) T% U) B) e
  59.   );
    - k# F8 K9 B& N" p2 M
  60. UF_UI_write_listing_window(msg);% A. H9 a4 n( N
  61. // calculate the arc length' B) R  B2 i2 \
  62. double arc_length;# {5 K+ J8 G+ n7 Q- @
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    - `8 O$ j& j/ o, ?3 ]* k
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    ( P" S" d$ s# X; I( v- u
  65. UF_UI_write_listing_window(msg);5 n, K$ Z# H, P, X3 S8 g1 v
  66. }9 y+ g) e+ X; i: r3 g
  67. </p><p> </p>
复制代码
; v- M1 l. `6 q$ M) F+ b
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了