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

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

[复制链接]

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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
3 m( Y/ ]: W; ~& o) B/ V0 C9 p0 M# D- m# F+ [( V6 K. u
  1. <p>static void do_UGopenapi()# ~; M8 k' U" O# {1 S' H
  2. {" p% ?7 G' Q: f9 [9 z) v* o2 s, a
  3. /*. d5 O# H$ J/ @1 J% @7 S# n! }
  4. Create Curve
    ( q% h; r$ c7 E$ U8 X# H& ~# }) D
  5. */2 j4 O" j# v6 g! R% a
  6. // create line
    4 l3 H6 B& c6 S8 {4 R
  7. UF_CURVE_line_t line_coords;
    - |  B/ r5 T4 T- F; ~# j; v
  8. tag_t line;
    9 l: t3 k, N; J1 a
  9. line_coords.start_point[0]=0;  l& Y/ ~0 l( _/ ^- \+ |
  10. line_coords.start_point[1]=0;
    & w' b7 p  {8 b# j3 m
  11. line_coords.start_point[2]=0;
      Z' g' o7 d* \  Q8 p( m# L- y
  12. line_coords.end_point[0]=100;0 W" j- }; r* i$ v6 W6 D
  13. line_coords.end_point[1]=100;
    " [) ?( G" K* A! P! Q/ M/ ]$ |
  14. line_coords.end_point[2]=100;& {1 g( R9 u5 |
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc4 b6 q. r9 h2 B4 \% d
  16. UF_CURVE_arc_t arc_coords;
    ( o6 A1 W; }! b
  17. tag_t arc,marix,wcs;% M4 Z6 f$ B: f# n( ?
  18. UF_CSYS_ask_wcs(&wcs);
    / D. n5 x' Q% Z7 E3 N: l4 P  V& `
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);
    8 a8 I2 i+ R0 Y# D) A
  20. arc_coords.arc_center[0]=0;
    ) U( n* Q9 G( q. K% t; f2 B% Q
  21. arc_coords.arc_center[1]=0;
    : _2 Y) G+ U5 A0 ]. ?
  22. arc_coords.arc_center[2]=0;
    ' F0 E, h. v  N8 O2 f; w5 |
  23. arc_coords.start_angle=90*DEGRA;9 u  r6 i' h- ^  _9 X5 B/ x( r
  24. arc_coords.end_angle=270*DEGRA;
    ( j& ]# b5 i8 ~
  25. arc_coords.radius=100;9 @- j& W1 U+ J) _3 C4 w2 z
  26. arc_coords.matrix_tag=marix;# a1 S( G5 M* j& i
  27. UF_CURVE_create_arc(&arc_coords,&arc);8 q( }' t# [, ]: ~8 m
  28. // create point ; E. ?9 Q- z- ~, P
  29. double point_coords[3]={100,100,100};) ]3 F) K# _- h  A  L1 q
  30. tag_t point;+ r- x, [- S8 T; K3 K& Q4 l
  31. UF_CURVE_create_point(point_coords,&point);$ r0 ^* I$ x) F, g! X: N" S1 v& E

  32. ; m- K1 l3 n# y  e7 E  k
  33. // create Plane' T2 k8 h7 X) \# O( P
  34. double    origin_point[3]={100,100,100};
    5 r7 j  {# b  a3 h5 ~* v5 q2 L
  35. double    plane_normal[3]={1,0,0};
    ; [/ U' W8 r8 [* S% `/ h1 s/ X
  36. tag_t     plane_tag;   
      M* P. C) X; m8 k/ w
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    : Z  R8 `) g( A, _  r4 L
  38. Get the curve information
    6 V7 u* N& C8 D
  39.   */0 b0 a( n: d! _* }% d" k1 E6 ?
  40. UF_UI_open_listing_window();
    + ~8 S$ t. S+ U  F; }8 H
  41. char msg[132];+ \' K( u. v7 P. z; b1 I, }
  42. // get line information5 l, a0 d; i! o1 ?* V
  43. UF_CURVE_line_t line_info;$ d4 \5 L  i3 F
  44. UF_CURVE_ask_line_data(line,&line_info);
    5 s$ E8 y: i, w
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],. l$ v, f9 N& k; }, Y1 W4 _1 p9 V* w
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],4 D' `0 q, l. S6 e7 |* G8 U
  47.   line_info.end_point[2]);' x  H  W: l: K8 |, c
  48. UF_UI_write_listing_window(msg);. Y4 V8 v; L. @; n
  49. //get the point information
    3 f2 {+ y6 H, ^7 a" y
  50. double point_info[3];* U. `* a% X' v9 t6 v, Z0 }( c
  51. UF_CURVE_ask_point_data(point,point_info);
    5 c2 e+ A4 H; _& y# y
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);1 L$ o1 {! u! V' t  D. r
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information
    4 C; H3 z; j( Q0 l) |0 m
  54. UF_CURVE_arc_t arc_info;; p! ^: a4 P! m5 B" s
  55. UF_CURVE_ask_arc_data(arc,&arc_info);# C/ _; W0 p* X& ]- G5 T+ O
  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! r3 v( q( c2 I
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],0 _2 E, }% i; S- x$ m$ ^
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius! Q# x) @! r/ j: _
  59.   );& \3 Q3 }% Z0 S5 Y9 r
  60. UF_UI_write_listing_window(msg);
    % s3 t' }6 S% ?3 N  s8 S2 X3 `
  61. // calculate the arc length
    ( ]/ S8 S% ?: z  M5 A7 P
  62. double arc_length;
    ) E* ^2 g7 n- e* c
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    4 S. E1 A* U7 ~- [, K
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);2 r. e4 z4 |8 t; Q* S
  65. UF_UI_write_listing_window(msg);
    ( g. v6 `, h% o2 @+ E/ |
  66. }- U3 V6 L" R/ Y( ~. x
  67. </p><p> </p>
复制代码

) }! S3 b. _4 Z  a( V; j+ `) ?  B
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了