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

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

[复制链接]

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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
. P- B+ _, W& Z, H9 j. X8 ~) h* C. G/ u6 Y
  1. <p>static void do_UGopenapi()
    9 d1 F6 b" b3 Y/ X; c: Y: W
  2. {
    3 k+ G3 E: w7 H9 `# |3 N
  3. /*  x" Z% l" m5 ~: D4 R
  4. Create Curve( m$ a! p1 v* u9 `5 b$ [
  5. */6 v- I9 k) M) \- r& I) n. k
  6. // create line0 T) L6 C/ N/ Z
  7. UF_CURVE_line_t line_coords;
    , \; q( w- v# E/ B* ^
  8. tag_t line;
    5 p* Q5 Z0 k" B0 }
  9. line_coords.start_point[0]=0;# r/ L4 s1 i# k+ E6 H/ P
  10. line_coords.start_point[1]=0;1 e+ c# e/ ]5 S' N! P; Z( E
  11. line_coords.start_point[2]=0;- E; P0 L1 V8 y5 U
  12. line_coords.end_point[0]=100;: K2 b, e; H2 s" X/ r6 s
  13. line_coords.end_point[1]=100;7 l" r' H6 r( a% ]
  14. line_coords.end_point[2]=100;
    6 _8 R: I/ g; q5 s: _
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc" A/ Q4 P1 a5 g. v, `
  16. UF_CURVE_arc_t arc_coords;
    ' C$ }# Z) U7 c6 a1 r; P$ |
  17. tag_t arc,marix,wcs;
    0 E2 \/ h* j( \: e# |
  18. UF_CSYS_ask_wcs(&wcs);# ]3 `1 e- @0 {& b, m
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);  _! }/ E; o; I1 I& _
  20. arc_coords.arc_center[0]=0;+ {, R2 i/ z' _8 d
  21. arc_coords.arc_center[1]=0;* }/ g$ W3 Z4 ^5 D9 {& r
  22. arc_coords.arc_center[2]=0;# ~5 ?) |5 }1 s) F
  23. arc_coords.start_angle=90*DEGRA;. s: m7 Z0 E& R; q. [1 M0 w
  24. arc_coords.end_angle=270*DEGRA;! O. u; t: o- @  b$ H
  25. arc_coords.radius=100;# A) Q3 H  J0 a9 T, f) I# B
  26. arc_coords.matrix_tag=marix;
    & u8 |; C& I6 j: L2 a* v
  27. UF_CURVE_create_arc(&arc_coords,&arc);6 {' ?6 T" G9 {, B3 d' g# M) ~
  28. // create point - w0 m6 H) o# ^# `4 y( ^& r
  29. double point_coords[3]={100,100,100};- j, v+ T. C; h7 |9 m& V2 U
  30. tag_t point;
    * M8 i9 u2 ]/ C/ Z
  31. UF_CURVE_create_point(point_coords,&point);5 C$ B7 n/ ]6 y& G
  32. ; W6 l) C7 W3 W% F9 x9 Z1 ?
  33. // create Plane
    0 ^6 m; s; i( ]
  34. double    origin_point[3]={100,100,100};" S4 Y5 z9 m5 t3 ]- w8 f
  35. double    plane_normal[3]={1,0,0};/ a8 Q7 d6 e6 r4 X6 S
  36. tag_t     plane_tag;   
    " t  b0 F' }" l* J6 N2 B8 L
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*: `1 Y, T* Z; W
  38. Get the curve information5 a. L# @+ Z$ n, T. U: `
  39.   */
    4 h/ Q, W6 h3 u; `% A' U% [
  40. UF_UI_open_listing_window();3 _* v' }( j2 K& T3 ?
  41. char msg[132];; b2 K/ D7 ~8 c7 H
  42. // get line information
    ; d5 G$ J) u& X2 X$ p% f
  43. UF_CURVE_line_t line_info;& X2 E  M+ W5 q  B
  44. UF_CURVE_ask_line_data(line,&line_info);! u6 `3 M  ~& {3 n: V  m
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],7 ]+ c1 b9 \$ ]$ m- N+ o
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],) R1 i$ y  r, o7 h# q# i% |
  47.   line_info.end_point[2]);0 w" G+ h+ z2 P4 ~' q
  48. UF_UI_write_listing_window(msg);
    4 S9 `2 r6 j, Z* R
  49. //get the point information
    3 _7 i% w. o) F/ {% |7 X# x
  50. double point_info[3];
    + p! ?2 Z1 E0 J4 p$ M& K
  51. UF_CURVE_ask_point_data(point,point_info);
    - p7 ]# r; O( T& W. {/ y- I# b
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    2 g/ R( F' Q7 y( C* ^
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information+ L* y1 E( x' @' r& j
  54. UF_CURVE_arc_t arc_info;, a+ U! Z! n6 h1 w
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    + p) u2 O! a5 P* I' 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;",
    # H7 D$ J! q7 U9 k5 q" B. c
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],, E% v( B% b  v% ^/ s$ O/ G  J
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius: ~* F' ?; N# ]" W/ F$ q
  59.   );
    : G$ Z' {6 T$ C
  60. UF_UI_write_listing_window(msg);
    & z  o9 b. y3 d- e/ V
  61. // calculate the arc length1 S5 s1 F: D9 X4 e4 k* i; L* ~: i$ A, y
  62. double arc_length;' Q- \! F! h: d; l% E! z
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);( s% `8 T2 J0 E! y
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    ' P, V8 l; ?- z- r
  65. UF_UI_write_listing_window(msg);
    + J( C3 Y+ g: E- |% N
  66. }# }0 Q/ G' u6 F! K
  67. </p><p> </p>
复制代码

8 _" T( T; J% v* x! M
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了