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

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

[复制链接]

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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码) ^5 d# q) v; J( {  k) v; m4 F
. \( z  p# X% p1 V. k, l/ Q# [' |8 e
  1. <p>static void do_UGopenapi()) K; y" {% d& j4 d! Y
  2. {
    1 C' o: R+ z2 o$ v/ W! n+ l
  3. /*& z) H$ v3 V+ w& |/ e: {
  4. Create Curve
    ! z  e" j# \# F- `# ^
  5. */3 [0 Z$ O* C/ A9 ?+ D1 i2 b. m3 i
  6. // create line
      p6 |- V" e' {4 S* u6 C& k
  7. UF_CURVE_line_t line_coords;7 o/ j7 d5 _, q& ]
  8. tag_t line;1 G! d1 g+ @; [! a
  9. line_coords.start_point[0]=0;
    # C' _5 K" {4 J" P" n( K  A
  10. line_coords.start_point[1]=0;: j7 s2 g- H) K$ D# K6 E
  11. line_coords.start_point[2]=0;
      C, F, m% Z) X$ D! P" {3 Z
  12. line_coords.end_point[0]=100;  R$ Y0 Q" ^$ {9 z
  13. line_coords.end_point[1]=100;; A) g- i" ~% F5 K& V2 g9 x4 C
  14. line_coords.end_point[2]=100;
    , }& V4 G' y. H* J
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
    + ^+ w. N* w7 O) A% M5 @$ n! r4 Q
  16. UF_CURVE_arc_t arc_coords;
    : m* }) ]8 t- s  S% m8 C* \/ R  `5 U
  17. tag_t arc,marix,wcs;+ X7 T: \! f) z- ?" n/ l( s* h
  18. UF_CSYS_ask_wcs(&wcs);
    7 L+ A# ]0 ]1 {0 M# a
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);; p/ L; `+ Z5 m- x% A
  20. arc_coords.arc_center[0]=0;
    ; L1 e9 W9 C" X: @
  21. arc_coords.arc_center[1]=0;" s: y+ A2 ?: T7 a+ ?$ o: ^
  22. arc_coords.arc_center[2]=0;: o9 L- n; E7 P( o5 f+ x
  23. arc_coords.start_angle=90*DEGRA;
    * D& _( H: _! c: G2 W; V+ o
  24. arc_coords.end_angle=270*DEGRA;
    3 H# Q3 C; c% T* F
  25. arc_coords.radius=100;; ~( ^! k& `# ?' W% P3 d: n/ n
  26. arc_coords.matrix_tag=marix;
    , z1 r+ L, n3 `+ a
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    ' _- p7 C$ m8 l: O% B  u
  28. // create point 9 ?& z' v" Y# ?% Q: [* t; t
  29. double point_coords[3]={100,100,100};
    ! J0 Y( ~+ |  V4 j6 z4 g
  30. tag_t point;
    . h9 v: P" F8 u& n+ [) m5 U
  31. UF_CURVE_create_point(point_coords,&point);
    : t5 |# x% \- x  N# J
  32. ; U* e+ i& b' W( ?& C
  33. // create Plane
    ; C1 j7 W% _1 `- b: X3 Q' H2 v
  34. double    origin_point[3]={100,100,100};
    1 N  R0 j1 ~& _0 X& |. h
  35. double    plane_normal[3]={1,0,0};
    # U6 t) T2 Y; F& Z5 n3 t) k' |
  36. tag_t     plane_tag;    7 Q- J8 x- ^; P! u. Q* }  e2 s
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*  a$ g5 b0 r7 c7 v# A$ v) d
  38. Get the curve information% r0 G5 [# f2 H: ~' ~8 l
  39.   */
    # S: u; p# O! Y. v. C0 Q
  40. UF_UI_open_listing_window();
    * s3 R: k& D3 Z, T7 a' P+ E
  41. char msg[132];; r8 B3 r, l4 V2 _" T$ t
  42. // get line information4 z! S" x& w: v- K7 t: y
  43. UF_CURVE_line_t line_info;
    . Q: c4 e2 x7 M' [3 y
  44. UF_CURVE_ask_line_data(line,&line_info);2 K' j$ T% Z" y- D  j
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
    7 K5 K/ l% k8 }6 V1 v6 n  K9 u( U# `
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],; }3 C1 x9 |0 U: ~) p: V' h# s
  47.   line_info.end_point[2]);- P/ r. `- P  W# I0 W: e# z" J  ^1 J' B
  48. UF_UI_write_listing_window(msg);  v( K6 m5 G4 X9 S
  49. //get the point information, [' H; `% ~$ K  s8 g
  50. double point_info[3];% ]! y' l! v* P+ w
  51. UF_CURVE_ask_point_data(point,point_info);  \3 u- O/ a4 X& I# r
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);; r; V! A+ p' L5 U5 q8 Q3 o
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information" v' z5 c- q$ P+ n
  54. UF_CURVE_arc_t arc_info;, o; V7 g% e7 G! ?- \* F! Y
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    2 H1 l+ x: ^. p2 ^6 n6 |$ }5 W
  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;",) ?( n3 k: E, A1 y4 e
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],* F8 W1 E; a2 k7 K
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius9 {  p- K4 F4 o: U! h
  59.   );- G: ^7 v& L1 @' L
  60. UF_UI_write_listing_window(msg);
    8 M. \; k$ w$ |2 C( u
  61. // calculate the arc length
      ^, v. s1 }+ L' M
  62. double arc_length;' H. }; D* e3 ^3 h2 d' A) H6 \
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    # h% h/ e, n' }2 q9 @
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);$ q8 b5 W4 C: O; O( F' f) y
  65. UF_UI_write_listing_window(msg);, ^% P0 S1 O% v4 H
  66. }
    $ o+ l4 g2 B8 L) ]& t  N" P
  67. </p><p> </p>
复制代码
1 F0 X6 ?  {9 J7 j  W
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了