PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码3 ~& S& n4 o1 [. ]6 s

  b5 G6 [8 \+ `/ c, z" V" k  w
  1. <p>static void do_UGopenapi()1 _0 h6 p4 ^. m+ J$ Z: L
  2. {: O3 b: n7 z. c. m9 O
  3. /*  \0 y6 A1 o0 Z/ a  n
  4. Create Curve& A& j' n5 ~5 P' E1 A, F
  5. */
    - Y: a4 \& H" n0 Q( f4 M
  6. // create line7 o" B, J/ g: V& Y' A2 B
  7. UF_CURVE_line_t line_coords;/ A7 H( W; [. A( Q
  8. tag_t line;
    1 {4 J; ]- o! Y* a. f0 C+ r+ a
  9. line_coords.start_point[0]=0;9 F* N- Y! [: a5 u% D* \6 g
  10. line_coords.start_point[1]=0;/ E! f5 N1 N0 L) L" M2 u/ h$ Z* J
  11. line_coords.start_point[2]=0;
    0 u: |( Q" ]8 }* G% `( q
  12. line_coords.end_point[0]=100;
    ; @* E2 [& a, p5 b9 b
  13. line_coords.end_point[1]=100;
    2 b0 z3 l! m1 j5 R+ R# ?
  14. line_coords.end_point[2]=100;
    . N& J) P7 k. d, V& w+ S0 Q
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
    - f( }, v' r( H# E
  16. UF_CURVE_arc_t arc_coords;  ~0 `. L9 \+ K$ m+ `
  17. tag_t arc,marix,wcs;
    * ^4 W5 ~3 o/ s0 o" g
  18. UF_CSYS_ask_wcs(&wcs);
    " @  Y& G) |. t$ @" A
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);  Z% ~, {; }3 S' X, @
  20. arc_coords.arc_center[0]=0;
    # `6 ^1 g3 ?. \; A) E% Y
  21. arc_coords.arc_center[1]=0;
    1 x: j, P; }' P6 {" p; x1 @- W4 `
  22. arc_coords.arc_center[2]=0;* ]: t7 ]# S+ R
  23. arc_coords.start_angle=90*DEGRA;
    ; l" T" X. f4 H1 N; c- O  d
  24. arc_coords.end_angle=270*DEGRA;
    : s% M8 e3 [! }$ J+ r# ^! B$ O" D
  25. arc_coords.radius=100;
    ) b1 P2 k0 `  d9 u
  26. arc_coords.matrix_tag=marix;
    9 d. S6 y4 D% q
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    $ i- F4 F6 z+ q) {6 Q
  28. // create point : b' r- X9 X- l& a! M7 `5 y
  29. double point_coords[3]={100,100,100};/ g' A. w  R$ w2 Z( k8 H
  30. tag_t point;: Y) i5 |. T, N
  31. UF_CURVE_create_point(point_coords,&point);, m( s1 @5 o+ Y& s
  32. 3 D, ^: P2 s& N$ j9 e
  33. // create Plane
    4 F: v& Z$ \8 J8 M8 @: {9 G3 J
  34. double    origin_point[3]={100,100,100};
    0 ^! _! e) H6 u" @4 j( @
  35. double    plane_normal[3]={1,0,0};# I2 ?5 t& Q# W9 r. I2 m
  36. tag_t     plane_tag;   
    " [, G: m  X0 a1 u
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    - k: {/ A' N0 |- n
  38. Get the curve information! k) i% y' }; F, N- `8 @4 o3 `2 J* _' F
  39.   */& \0 V+ ?1 W/ ?% _& M0 B2 h1 b6 I
  40. UF_UI_open_listing_window();
    ) |" e/ w1 S) H' }$ Q; }2 J" d
  41. char msg[132];
    / L8 x2 K% Y% @9 ]8 ^3 k1 `  x) k+ \5 _
  42. // get line information9 ]( P0 {9 I% E$ B0 _% ]
  43. UF_CURVE_line_t line_info;
    : Z; ~7 F3 r& q
  44. UF_CURVE_ask_line_data(line,&line_info);
    8 B0 B3 b& U; P% O- [# K2 t8 K
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],) c' y, v6 ]( H4 ~
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
    ; G# M5 O$ y. k
  47.   line_info.end_point[2]);, Z% m; ^4 a8 a$ U2 p
  48. UF_UI_write_listing_window(msg);; p/ u3 i( }1 {9 T8 J1 J
  49. //get the point information+ I9 {# Z" _& H4 r
  50. double point_info[3];
    9 r. n# C. B0 U8 P
  51. UF_CURVE_ask_point_data(point,point_info);( U5 @6 {* j/ E0 R% \
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);, s9 A1 I( D/ o6 R6 X! y
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information( R; {. x  d: d+ b. n; @9 ^) ^
  54. UF_CURVE_arc_t arc_info;1 N5 E9 k5 z8 r( H) k4 z+ q
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    ; d+ T" ?8 x; j4 @$ S
  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;",
    ) R/ o4 i/ E+ |$ N
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    3 u1 g6 A6 b! T) o( r9 Q
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius
    2 A9 i# D/ o" a1 U
  59.   );
    ) C' F! X% p' z
  60. UF_UI_write_listing_window(msg);
    * R1 d5 x' ^5 j/ ^
  61. // calculate the arc length( j- n" |% V! y1 k& D
  62. double arc_length;
      E; ~  g8 Y& b- S; u, U. s8 C
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    6 u2 s0 D* F* E5 ~0 J7 P! c; A% l
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);% i. ^2 `7 o8 y$ C5 P$ {
  65. UF_UI_write_listing_window(msg);% r# ], L4 C) K! v5 N- p. Q; B
  66. }
    0 Y& W. R! D3 z, h" ?9 O3 e
  67. </p><p> </p>
复制代码

) H9 a5 A/ X) E  Z: A4 P9 u
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了