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

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

[复制链接]

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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
& n  f6 f1 r+ u% h6 o4 Y; h
6 F0 b; k- Z( O$ w% |
  1. <p>static void do_UGopenapi()% s- g: F& d9 n7 ]; C5 I( N
  2. {" g% z' i. U3 O- [6 i
  3. /*
    " W2 z5 q7 O  g6 V3 b8 n' x8 `
  4. Create Curve
    % Q1 B0 W& p5 y6 O7 I. k
  5. */4 m# K7 L$ S# q" l1 L
  6. // create line0 g3 _* E, v! E1 ]' F$ t: T6 o! C7 [6 |
  7. UF_CURVE_line_t line_coords;3 N  D" E# a" c/ n& q
  8. tag_t line;
      ^1 v2 N2 D* L/ Z- }
  9. line_coords.start_point[0]=0;
    # K1 g; ]1 L) o$ |' v- b# Z
  10. line_coords.start_point[1]=0;
    % B# X' e+ ?8 |: X5 q
  11. line_coords.start_point[2]=0;
    7 d8 ?+ _8 h' ~8 p7 X/ @" h$ _
  12. line_coords.end_point[0]=100;
    : [+ S8 ?: w* j
  13. line_coords.end_point[1]=100;
    3 |% \  j8 [7 j& @2 ^7 U
  14. line_coords.end_point[2]=100;
    " s( [! z' n$ V; H/ h# j( T
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc* b" h" L. s' k) F  ]6 Q; a
  16. UF_CURVE_arc_t arc_coords;
    + L: C# M, J; L$ X; \# e1 W
  17. tag_t arc,marix,wcs;
    ' S/ U6 L  r0 r' F/ V
  18. UF_CSYS_ask_wcs(&wcs);# V+ d% \/ m7 h% P' l6 e! ~
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);
    . H# H* }9 P; N  v9 u  F
  20. arc_coords.arc_center[0]=0;
    ! \  g2 A0 f. j+ |% k. k
  21. arc_coords.arc_center[1]=0;5 u# o" U( O+ }4 g% m2 L0 y5 X: \
  22. arc_coords.arc_center[2]=0;
    . q& B1 g* R, F" y7 Q
  23. arc_coords.start_angle=90*DEGRA;4 M5 L/ n- i) e, y
  24. arc_coords.end_angle=270*DEGRA;8 L, F3 d8 _# F& [0 \. A3 v: u
  25. arc_coords.radius=100;: k  g  o, c( M( j1 ]1 x2 c, O/ v. C
  26. arc_coords.matrix_tag=marix;$ w0 o% w& S% ]
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    9 p4 L+ v8 Y! M, m4 W
  28. // create point
    : P; [4 u5 f, L; y3 T
  29. double point_coords[3]={100,100,100};
    6 b/ Q9 |0 w; }' c
  30. tag_t point;3 ]; n: n! B3 W9 i; X
  31. UF_CURVE_create_point(point_coords,&point);4 Z5 ^/ Q# Y* s: i* K

  32. - \/ n4 |* x% B5 `
  33. // create Plane
    ' a0 G- n# R. r! q& ~9 ?! T
  34. double    origin_point[3]={100,100,100};4 ~/ z" l7 M7 p( ^" w! s
  35. double    plane_normal[3]={1,0,0};
    " c6 U. N4 `5 d; m$ a
  36. tag_t     plane_tag;    6 n: b$ k  B. G. i
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*# P$ s2 s  Q1 l' L0 }+ y+ `2 @* ], Q7 [
  38. Get the curve information
    0 {: m8 I+ c7 c+ p3 R" o: j
  39.   */) B: K; |. M, Z9 v
  40. UF_UI_open_listing_window();
    * L3 U- r+ k1 o7 z
  41. char msg[132];, x8 K& E- ]" G8 F4 B  a( n
  42. // get line information- `7 c6 _* w- O' T% ~* n, V5 a1 F, j" Y
  43. UF_CURVE_line_t line_info;$ d8 |/ Y7 w! e
  44. UF_CURVE_ask_line_data(line,&line_info);
    4 Y: V+ z# r% a" Z5 X% k
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
    . a7 }% d: _+ _& I" b' m' D1 K5 Y
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
    % h8 p5 B' M" d! k
  47.   line_info.end_point[2]);
    6 Q$ E( Q( s  o6 Y- p! n
  48. UF_UI_write_listing_window(msg);- Z! n+ W) l7 s5 M
  49. //get the point information+ d8 C$ h1 S! h- M0 K# @" p8 s
  50. double point_info[3];
    ! N2 A3 f% j8 ^1 l5 C' P
  51. UF_CURVE_ask_point_data(point,point_info);
    - A1 m, b2 M- s4 h
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    ! ?6 k6 i, D  G0 B
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information  m8 z' @% p1 B$ v% q) m
  54. UF_CURVE_arc_t arc_info;7 y5 j; K! `; u4 F& F% S" X
  55. UF_CURVE_ask_arc_data(arc,&arc_info);0 o9 J8 K! G7 z) S' c/ X( U
  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;",% W- O# J* ^, V$ y* e+ o
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    7 y2 T  x9 |% x2 c& R% ]
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius
    0 g7 ?2 N# |) T) a7 z! M
  59.   );" h) U! E2 F$ j* h
  60. UF_UI_write_listing_window(msg);, E0 H# O" e; s+ i. {
  61. // calculate the arc length
    ' ]( W! ~1 H9 _
  62. double arc_length;% x" O" D5 d7 z; \) l+ [. W
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);% g% J) b( [% y6 p2 J3 h
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    & p9 _8 q' R$ I7 o! d
  65. UF_UI_write_listing_window(msg);
    1 o6 G: f! j: _! H+ e% i. u
  66. }
    , N3 P# `+ V6 i8 g  ^: l1 x
  67. </p><p> </p>
复制代码
0 z0 Y/ A8 N  y& y+ ~$ n) f
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了