PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

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

[复制链接]

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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
8 a1 y6 K8 N( N' z/ N( K
0 d& U1 P) d3 U& p2 |& ~$ x) q
  1. <p>static void do_UGopenapi()
    / B# E2 q" W4 c! L8 j- T7 a
  2. {6 e$ \" K& ^  q6 }( E6 M# u
  3. /*
    & v: }! p: a+ B3 B3 O
  4. Create Curve
    6 f" J. h. P. F2 d
  5. */1 `+ |+ M8 i1 D
  6. // create line
    + r2 {7 b  x8 O5 x0 B% }. e; B
  7. UF_CURVE_line_t line_coords;" X- B! {3 |. d( i- D
  8. tag_t line;* T: s6 r; r+ ]
  9. line_coords.start_point[0]=0;
    : o: [) K% o7 Y2 H7 V+ K
  10. line_coords.start_point[1]=0;8 F" I- d3 t  `7 e
  11. line_coords.start_point[2]=0;) U3 o& |% K6 K% K( N- U
  12. line_coords.end_point[0]=100;# q9 [" G0 V3 [& g1 E; ?
  13. line_coords.end_point[1]=100;" t$ p9 u3 r* ^6 P; I: V. _6 s
  14. line_coords.end_point[2]=100;
    - f! [3 N7 D* M1 g
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
    8 m% f9 _+ c4 u( Z- h# [
  16. UF_CURVE_arc_t arc_coords;$ m( [7 L0 V( R" r
  17. tag_t arc,marix,wcs;
    9 ^$ P: U; N' d; n4 L
  18. UF_CSYS_ask_wcs(&wcs);: ^1 B! t# ?4 m" e9 [$ I- T
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);
    ' [8 ~$ `: d( c% a, O' J7 T
  20. arc_coords.arc_center[0]=0;, ]: d) R! X: R. H: _
  21. arc_coords.arc_center[1]=0;2 l! o$ p; [: l
  22. arc_coords.arc_center[2]=0;6 {) S" |7 W1 T+ S( @$ n- O) j  c
  23. arc_coords.start_angle=90*DEGRA;
    4 @5 t. g/ T0 _% h! ~; T
  24. arc_coords.end_angle=270*DEGRA;
    * s5 F3 W; A) V- c
  25. arc_coords.radius=100;% T( @' r' J& r# j; R, l1 \2 R
  26. arc_coords.matrix_tag=marix;' K; H! Q* c8 z3 F1 d
  27. UF_CURVE_create_arc(&arc_coords,&arc);6 a( g4 o0 o/ A1 o+ i9 @3 w( k. }" i
  28. // create point 5 r9 E  O. V: [
  29. double point_coords[3]={100,100,100};
    + h+ F5 v+ I% n. J. ]
  30. tag_t point;: @8 {6 O/ D( ~( ^4 `3 V
  31. UF_CURVE_create_point(point_coords,&point);! B8 |" G/ T4 a# @. h& u: |
  32. , R! _2 a7 r1 d3 C# R8 s: f
  33. // create Plane8 L0 \  q) x$ S
  34. double    origin_point[3]={100,100,100};0 f# o1 A0 ?1 Q9 r
  35. double    plane_normal[3]={1,0,0};
    ; ?. G& j# T( H! N6 ~5 W
  36. tag_t     plane_tag;   
    & j. G6 b2 c$ `3 w
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*' V0 A* ^: p5 R+ z) u
  38. Get the curve information
    7 F/ j- G+ e" ^  u
  39.   */3 z% p4 g- }6 @$ _1 [0 z. E) r
  40. UF_UI_open_listing_window();
    9 _! X8 n: |9 m  H3 ~2 K- r
  41. char msg[132];
    8 L3 h" l1 _2 H3 N6 g4 W9 z9 Q
  42. // get line information. D  F1 A: ~1 m  F- D' y$ S4 \; _
  43. UF_CURVE_line_t line_info;
    " |+ O5 |) f4 ?+ ]6 i0 x
  44. UF_CURVE_ask_line_data(line,&line_info);$ V5 Q% o, o' Z3 Z" X( [, l& d- B6 m
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],; L1 H* j4 c* i4 w5 l, c
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],- v+ P1 ^' R- {+ [$ I* ?$ W
  47.   line_info.end_point[2]);
    ! |0 ?9 R- ^4 O- v9 f8 ^
  48. UF_UI_write_listing_window(msg);, R/ j, F" A' K- y* q8 m( b
  49. //get the point information
    " j/ @: d  y) q+ x* d* o
  50. double point_info[3];1 b- M; [  T' K, y/ s
  51. UF_CURVE_ask_point_data(point,point_info);% K9 H" p6 ~  Z; X2 W) |6 B% _
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    5 {% C9 r0 }& ?) t/ h
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information
    5 Z% b0 R* [4 \/ j, q2 c" N
  54. UF_CURVE_arc_t arc_info;  Z0 m, X% X2 s
  55. UF_CURVE_ask_arc_data(arc,&arc_info);. ~! c8 D% u5 g1 b. [! u
  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;",- v/ `" a- M9 }& l3 [7 `0 O
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    0 U8 l- M. a$ H- w# Z1 V" h$ I7 K
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius
    & H* i! f1 @; t: S/ l
  59.   );
    ) T" A5 k9 |9 I* a0 C
  60. UF_UI_write_listing_window(msg);
    1 W/ S: ]' ]/ S5 O9 i" X# R
  61. // calculate the arc length
    " h" I: @: Q$ G* a3 \. p
  62. double arc_length;
    0 {7 W, s! }9 i& t" ?4 M+ g
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
      _* u5 j6 E: A7 X
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    6 ^4 C& q$ `" q" o4 x. H
  65. UF_UI_write_listing_window(msg);+ K# ]! C  M& T; A, Q3 g  e
  66. }
    : B! v" d) W# P6 W
  67. </p><p> </p>
复制代码
& ^/ C# E! `  r5 h! j
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了