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

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

[复制链接]

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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
. R# o! n, `8 V2 K
9 L" ]2 f/ J# k; E
  1. <p>static void do_UGopenapi()
    5 [( ~2 S; T% A" m
  2. {4 S0 I6 E4 T6 \: q5 N1 f& X
  3. /*
    2 ?( a8 A' O  |# I5 ~0 \* g
  4. Create Curve0 O- a2 [! I1 j: m0 `, m( i
  5. */$ Q* ]2 p9 S+ N- A) _, m
  6. // create line
    2 N: ^' {# B/ f8 G
  7. UF_CURVE_line_t line_coords;2 C0 W/ U$ b: e2 ]2 f- |1 T( P
  8. tag_t line;7 r* X9 N, G' W; {( _5 R% H$ r9 q
  9. line_coords.start_point[0]=0;# _8 R' `6 ?7 g/ J3 I: p
  10. line_coords.start_point[1]=0;
    2 a0 _4 v' y9 D! M' F2 J
  11. line_coords.start_point[2]=0;" c+ ^" `$ n8 J/ e
  12. line_coords.end_point[0]=100;
    5 K& _, O8 S* V1 q2 t2 z3 R: a
  13. line_coords.end_point[1]=100;2 ^$ W+ F9 ]' }* `  ]
  14. line_coords.end_point[2]=100;2 a- \' M& z. S' P. W
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc- w+ [) x' p+ G! v
  16. UF_CURVE_arc_t arc_coords;
    ( {! ]: y  q) T# i5 I- X6 a. Z8 [
  17. tag_t arc,marix,wcs;
    # s& o9 l, `6 C! W3 P+ m
  18. UF_CSYS_ask_wcs(&wcs);0 K( m8 |3 U3 q3 U
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);1 E2 J- Z% q! Z& [" Z9 x
  20. arc_coords.arc_center[0]=0;
    % N6 i. \( t4 ]7 r& `- N( N8 c' G
  21. arc_coords.arc_center[1]=0;
    ( w* M& d; }9 t+ V+ a' H, B* |  ^
  22. arc_coords.arc_center[2]=0;
    # e2 N) {9 l% P0 H$ J& Y- c( B) _
  23. arc_coords.start_angle=90*DEGRA;
    2 ]9 V; ~4 k$ D4 z/ k, ?! {
  24. arc_coords.end_angle=270*DEGRA;
    ' J/ e( z6 t4 t; Y
  25. arc_coords.radius=100;
      x' P9 }/ |" r+ T) c/ Z  N& l
  26. arc_coords.matrix_tag=marix;
    + D9 d# o  K3 j. ?, K
  27. UF_CURVE_create_arc(&arc_coords,&arc);# J2 U5 U. y* g) x- f
  28. // create point
      ~) ^1 C1 A5 c/ c3 S' U9 @
  29. double point_coords[3]={100,100,100};* c; E! v; t- k, u$ X
  30. tag_t point;
    9 B) Q' z. o  _: C! w( d
  31. UF_CURVE_create_point(point_coords,&point);
    ( p% [0 d( L, C0 r3 X

  32. & A. R8 T) S: f2 O/ n4 e0 [
  33. // create Plane
    * ]% a( j7 Z' \5 Y+ N
  34. double    origin_point[3]={100,100,100};$ W. i9 f5 m, G
  35. double    plane_normal[3]={1,0,0};) o$ P, O- c& ?1 j- i
  36. tag_t     plane_tag;    7 i* w2 \6 D5 y# q
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    9 o# ?: I* K7 H9 I( L) ?+ |
  38. Get the curve information
    : t2 P2 j0 C$ l- o% [
  39.   */
    7 G  r2 o* Y7 @2 p
  40. UF_UI_open_listing_window();
    4 y  f# m7 |& J. }% v4 o3 j
  41. char msg[132];
    % Q7 H# G: x- {% O( r7 x% ^
  42. // get line information4 K1 _9 i: A( r8 R2 T- C3 O7 W
  43. UF_CURVE_line_t line_info;
    7 g$ ?! l) l7 ^& B8 z# J, v
  44. UF_CURVE_ask_line_data(line,&line_info);2 A# _, \0 j7 [; D) P- |9 {
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
    / M8 T  E& M5 K; y
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],% }' ^9 \( F: T( \7 s8 f/ h
  47.   line_info.end_point[2]);
    8 `# l* Q! {$ V7 \! b5 e
  48. UF_UI_write_listing_window(msg);: ^- y' N& Z0 y7 L5 q) c
  49. //get the point information
    3 ^6 _* k# E# w' k
  50. double point_info[3];6 [' i2 G0 D4 j5 s8 ?! r" i
  51. UF_CURVE_ask_point_data(point,point_info);
    ' A! i  ?' a; z7 q* b1 U$ M
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    6 X" [1 Q4 }- U" V( B6 f. ^) a9 h
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information" G/ m' p' i! n/ h; z4 `( u
  54. UF_CURVE_arc_t arc_info;+ y. i7 [+ G) S- `& v4 V# ?
  55. UF_CURVE_ask_arc_data(arc,&arc_info);2 F, F3 ^/ j7 `' A$ L
  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;",) i* F9 b  X3 A/ O
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    3 m: s: L. O) V( B
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius
    $ s+ R( D8 Z5 V6 `+ A
  59.   );
    2 K, W/ J7 u- R( \+ b
  60. UF_UI_write_listing_window(msg);( o9 Z7 }+ C. c8 D* Y
  61. // calculate the arc length( j' `" T0 q4 H" ^* [$ S5 R
  62. double arc_length;; j( ?4 I0 A' f4 M* }
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);. R% ~4 o4 ]1 L( ?" |
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    % |4 _  c; R! y% |/ ?! e1 T" ^* F% _7 p
  65. UF_UI_write_listing_window(msg);
    - C% T8 v6 F6 S9 d- o& R, z
  66. }
    6 I; ?8 s/ y( D
  67. </p><p> </p>
复制代码

4 k" k1 v* y1 |% h
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了