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

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

[复制链接]

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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
8 j8 y( V4 m" ]; f; P4 e0 {7 ^& T, \2 r  _* k! ?
  1. <p>static void do_UGopenapi()% j4 N' [+ D6 r4 @. Q1 }
  2. {0 c: h5 m  b+ I" I8 g6 V  u& d
  3. /*
    3 P; k+ w! f: V" K8 V. A3 P- N
  4. Create Curve
      u/ F: o% E/ A+ F+ n4 [$ M/ l
  5. */4 O* R- ]1 ~% m$ ~
  6. // create line
      R8 D, n* m7 M1 Q; G
  7. UF_CURVE_line_t line_coords;+ S( F1 ^; ~% O) C
  8. tag_t line;% X$ [  @; [$ f% u# G
  9. line_coords.start_point[0]=0;
    " Q' Q2 p! B" S; a! l
  10. line_coords.start_point[1]=0;( G4 m. N  x) Y4 L% `; J( \
  11. line_coords.start_point[2]=0;9 z/ l& I2 {; U# A3 C
  12. line_coords.end_point[0]=100;
    . L. H1 j, @8 \; W6 ]5 H
  13. line_coords.end_point[1]=100;( b0 ?1 U. k! j/ U# ]. ~
  14. line_coords.end_point[2]=100;3 |7 h* M& `9 P9 C: d: m) z
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc* j, I9 ?7 s- c. i
  16. UF_CURVE_arc_t arc_coords;- _) W# P- E6 @3 I5 W$ I
  17. tag_t arc,marix,wcs;
    8 \/ m: F! ?. K+ ]0 W& m* e4 W
  18. UF_CSYS_ask_wcs(&wcs);8 T; W9 F5 v* G
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);% p4 _, ]  y' ^2 m- [. `% z, N
  20. arc_coords.arc_center[0]=0;
    / V4 L, [: c& V+ ]  p* W
  21. arc_coords.arc_center[1]=0;
    2 ]" R& b2 {- C0 G9 N
  22. arc_coords.arc_center[2]=0;
    5 f+ r# z/ g" \" N6 s; p  n
  23. arc_coords.start_angle=90*DEGRA;" a7 |$ d2 Z) y4 @9 @0 [
  24. arc_coords.end_angle=270*DEGRA;6 }0 _+ M/ W. k  {
  25. arc_coords.radius=100;8 {5 Z$ n1 u4 @, t5 z
  26. arc_coords.matrix_tag=marix;
    # @6 W8 Y& }9 x" b
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    ( \2 N8 v! t2 I7 F* ]6 B
  28. // create point ' n2 q& [$ J6 I" M7 \# U/ e
  29. double point_coords[3]={100,100,100};
    % v! ~8 z5 o6 N
  30. tag_t point;
    " M+ @8 }4 j1 A+ `* K( q, ~
  31. UF_CURVE_create_point(point_coords,&point);& i2 K8 P6 a$ T+ W8 S
  32. 4 E5 F  k% S0 i* O5 m+ j
  33. // create Plane
    6 Q( M$ G5 r/ q) y( z& k9 \: [9 {
  34. double    origin_point[3]={100,100,100};
    ' ~3 ?. Q- b& b  B, h
  35. double    plane_normal[3]={1,0,0};! v, M+ t* ]# D3 P% m
  36. tag_t     plane_tag;    " y/ C% Y: t6 G" v8 }
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*: ^8 L: L: `) b+ C8 t& @5 b
  38. Get the curve information5 W1 c6 t6 j& K# `( N" C# I
  39.   */
    8 \8 h8 ?, `% ]7 r5 ?
  40. UF_UI_open_listing_window();, S; d; s( X- k2 ^' Q
  41. char msg[132];1 ~1 n4 j6 K! ~3 Z  M0 Z
  42. // get line information
    * J7 q# u) g9 D! F8 E6 t! q+ L
  43. UF_CURVE_line_t line_info;
    $ R" s; k$ _$ b
  44. UF_CURVE_ask_line_data(line,&line_info);
    6 S! Y) f1 Q* G& K4 A
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],6 [7 F6 i: A5 t) n
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
    4 M$ ^: H( k  `; u) }1 ?9 P. @
  47.   line_info.end_point[2]);! z% ^! M9 v: _1 f5 c- C" e
  48. UF_UI_write_listing_window(msg);0 \" j  z2 j  l9 ^$ D# b( _7 D
  49. //get the point information; b3 m! P9 [) [4 M/ n
  50. double point_info[3];
    7 e* m$ O  ?8 ?0 j+ ^1 q5 z
  51. UF_CURVE_ask_point_data(point,point_info);: @5 k4 f8 Y' t. q1 P1 {; a4 q
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    & i% |* {' M$ O5 r# P: F
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information5 L' M8 @' ^5 j, J2 m
  54. UF_CURVE_arc_t arc_info;3 X' k5 h& U) R1 @9 d7 A
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    2 P# K/ U5 f& S9 P( [
  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;",
    7 G5 l# L* ^9 N9 I! k
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    % P9 ]# ]) S9 q1 C+ `
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius
    2 w# s. W4 d1 X% m  M8 l  Z
  59.   );& y: Z: \; B8 @. c0 y  E
  60. UF_UI_write_listing_window(msg);5 C# I# ]9 J$ F  W1 }' Q" Q
  61. // calculate the arc length! d& i* l+ K7 O5 ], d& l
  62. double arc_length;
      B1 t# N0 M. j
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);$ v) F  N7 O; l9 B. I. r3 E
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);. ?( X7 F, E7 b2 k3 U+ i
  65. UF_UI_write_listing_window(msg);
    / V: U3 Y6 |/ B' Q3 p$ [
  66. }8 }3 p- f# n" P( f8 R# e+ h; c2 W$ N
  67. </p><p> </p>
复制代码

7 J; X" n' R; C- 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二次开发专题模块培训报名开始啦

    我知道了