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 2817 0

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码0 _# i  l) o7 Y# H3 Y* @
2 _2 y5 m4 E7 f, b* G' W/ B
  1. <p>static void do_UGopenapi()
    / P# [# |8 i, x0 E/ J( E  v% K. c# y1 O8 Q
  2. {" Y0 V' Y4 o1 W, h: ?6 e
  3. /*
    # v: k: o! t+ s$ Z# j
  4. Create Curve+ I! ^. C) ?3 ~6 i" T
  5. */
    % I* v- i% N" h! {
  6. // create line' U# ^; W* v: C! I8 ^
  7. UF_CURVE_line_t line_coords;% k; _( d! W( R/ x
  8. tag_t line;
    1 o  _! n2 r# z
  9. line_coords.start_point[0]=0;
    . d" d$ u9 s7 a* c
  10. line_coords.start_point[1]=0;
    3 z4 p, `; `7 b2 P9 R: n0 _
  11. line_coords.start_point[2]=0;) n: u0 W: Z9 e# A; c( E& o1 Q
  12. line_coords.end_point[0]=100;
    2 }; `4 v( m" _6 ?) W" i
  13. line_coords.end_point[1]=100;+ I! y. c) v& R
  14. line_coords.end_point[2]=100;
    * c. A' ^4 F  X, T# T* r7 b* a
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc5 y! g1 c; Q# t, b0 R3 q
  16. UF_CURVE_arc_t arc_coords;. y4 I' |2 w0 ~) h- h, Z
  17. tag_t arc,marix,wcs;
    ) d2 W9 m, X# q" d/ T( E
  18. UF_CSYS_ask_wcs(&wcs);6 a7 u" l( W$ }# G! p
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);4 L6 B4 n2 m8 m/ b9 p2 j/ E
  20. arc_coords.arc_center[0]=0;, i: H# f9 x0 R! M
  21. arc_coords.arc_center[1]=0;: B5 W" Y$ O  |7 r! q( B  [7 A( M
  22. arc_coords.arc_center[2]=0;) w1 a& x6 ~2 j; j- r- G0 G; U
  23. arc_coords.start_angle=90*DEGRA;
    7 I' {, C& F7 y. I: d: k, T
  24. arc_coords.end_angle=270*DEGRA;
    5 W$ B, l) V0 N0 w- R: E& u6 g
  25. arc_coords.radius=100;
    # h- K5 K; T, @9 F0 f; d
  26. arc_coords.matrix_tag=marix;8 }- P/ a' z4 {; i
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    - n  y+ [$ J" x& w+ h
  28. // create point + `+ u% n! O5 w* n
  29. double point_coords[3]={100,100,100};
    0 P6 x' j% ^  h% Q+ H
  30. tag_t point;
    " @3 G, O, h+ J+ g
  31. UF_CURVE_create_point(point_coords,&point);0 ]2 C0 o8 G; H9 s  t
  32. 6 T& @/ n8 j# }( y' v+ m
  33. // create Plane
    % ^4 p9 f+ Q! ?" W; u
  34. double    origin_point[3]={100,100,100};
    * E" R4 V6 H% p  h+ I
  35. double    plane_normal[3]={1,0,0};4 I3 J2 o/ G& h; q: `
  36. tag_t     plane_tag;    % \+ L9 ~1 s% A- _, u* B+ O
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*0 b3 K6 y: @/ w4 ~1 \: v: i4 G
  38. Get the curve information& X( \' y) E5 B4 n# q) U' O, s# B
  39.   */3 H) \, X# ]4 h
  40. UF_UI_open_listing_window();- |  f! _+ Y! [( [
  41. char msg[132];
    * C; z5 `" d% V8 E$ v) j
  42. // get line information/ r& O  m) m' p! q) K# k
  43. UF_CURVE_line_t line_info;
    : t/ l1 i* f7 r- p
  44. UF_CURVE_ask_line_data(line,&line_info);
    ( }( C" M, a) U( ^2 O7 r/ C
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
    0 M+ B: j' B4 z3 M
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],& U  t2 ]- ?- j6 M
  47.   line_info.end_point[2]);& V/ X4 C6 i6 {
  48. UF_UI_write_listing_window(msg);) [  {5 s" [0 ~/ H, y/ a& \7 d
  49. //get the point information
      c5 s, c9 Z5 J5 S
  50. double point_info[3];
    , ^1 d4 m/ R+ Q) F) N, [
  51. UF_CURVE_ask_point_data(point,point_info);  u3 m/ Z" z7 I, E3 c: o
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);' g% A+ O3 w( i8 B( D' H
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information7 i4 i$ c/ |) K6 c9 E
  54. UF_CURVE_arc_t arc_info;
    & E( o0 N& X) v2 B# r7 n3 `
  55. UF_CURVE_ask_arc_data(arc,&arc_info);3 |4 G- j8 K) E: w  i
  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;",
    2 {1 a; l. ]9 Y% G
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],$ D4 y3 I  f! L* F
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius
    " t$ \' L# P, ~6 E2 V4 Z
  59.   );) b+ Y" l) [, _7 J5 `9 ?. P& {! p  G
  60. UF_UI_write_listing_window(msg);: W- H1 N: \. {6 a: d4 U
  61. // calculate the arc length
    1 C$ M" b2 Q3 o: f  T
  62. double arc_length;
    ( V( v; s' P& |
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    ; l2 T# l9 ?. t2 B
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);' R3 e, I- ]/ \- d9 H
  65. UF_UI_write_listing_window(msg);, v4 I% G0 S+ N4 u
  66. }' L( k2 {0 ^3 |
  67. </p><p> </p>
复制代码
. Z: r% r9 R! e7 u! T2 Q* W2 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二次开发专题模块培训报名开始啦

    我知道了