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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
9 ?( z7 ~$ Q) d# a5 z
' u% s" h! Y% a0 y% I
  1. <p>static void do_UGopenapi()
    ( V( Q/ m0 _, P
  2. {% `2 T& l1 U1 `3 i7 N4 c
  3. /*
    / a) C# K( x% [1 K! c
  4. Create Curve/ h* l' ]& x- L
  5. */
    ! D& k- m4 _' _, a+ E) i% X
  6. // create line
    2 O; |$ h# V3 l& L8 y0 V
  7. UF_CURVE_line_t line_coords;- _- Y) W4 v5 p
  8. tag_t line;7 Z" L: R% R0 F" c: A+ ~  z8 C- M
  9. line_coords.start_point[0]=0;
    * E$ a+ s' w2 }
  10. line_coords.start_point[1]=0;
    2 a4 K. C* I$ x6 \. {2 f/ B/ H8 P' V8 m
  11. line_coords.start_point[2]=0;9 U4 |1 c0 x7 m  f) @
  12. line_coords.end_point[0]=100;
    9 G, b# V, k1 W" s
  13. line_coords.end_point[1]=100;
      F' ~( @2 v! p! N" T; s
  14. line_coords.end_point[2]=100;
    : ^4 L; [# {% C3 F6 ~
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
    4 O. t( O" ?8 V3 a( ?
  16. UF_CURVE_arc_t arc_coords;( a. g; Y" j' P9 E
  17. tag_t arc,marix,wcs;2 d# ~9 \# `2 `$ }2 s) W9 e
  18. UF_CSYS_ask_wcs(&wcs);$ K3 t' w' ]7 o
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);
    : P* s& X, t& c
  20. arc_coords.arc_center[0]=0;' o) n# ~- G  n& V: E- P6 |
  21. arc_coords.arc_center[1]=0;
    ( n( X* q/ v: H3 \! r
  22. arc_coords.arc_center[2]=0;
    . M9 M+ j9 P3 {+ t- f" U" H) d
  23. arc_coords.start_angle=90*DEGRA;
    * a* @0 B9 O. k! Z# F  J
  24. arc_coords.end_angle=270*DEGRA;
    ! u# n/ q/ o. N  _% M1 b
  25. arc_coords.radius=100;& P$ H" h! Q* q8 v' {; j2 d/ m" n3 e
  26. arc_coords.matrix_tag=marix;
    ; z( J7 u( f3 ?2 r0 V; N8 S6 U! B
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    - @1 t0 P! [; Q
  28. // create point % U& E; o/ h' F: r0 l
  29. double point_coords[3]={100,100,100};0 H" m( [3 w! W
  30. tag_t point;/ a7 |3 h5 @* [4 P4 h
  31. UF_CURVE_create_point(point_coords,&point);5 \- l, @3 I, x2 k: M1 K
  32. 5 C# M7 @$ F; g8 {
  33. // create Plane
    ; A, \( ?! J" Q! r5 V
  34. double    origin_point[3]={100,100,100};
    6 l$ Q" y. z  f, s5 f) G
  35. double    plane_normal[3]={1,0,0};
      B) H+ K& |; E: b3 ]) w) g7 y
  36. tag_t     plane_tag;    # f" l! r) j: D) n0 P# V6 l3 ~
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    - E/ T5 }0 k9 u# v3 i5 A
  38. Get the curve information
    2 ^( w) N9 X& ]7 U" v
  39.   */
    6 U! N! e  x3 y9 m' U
  40. UF_UI_open_listing_window();! l$ C" k( i5 g# \9 o1 Y& O! H
  41. char msg[132];
    : c7 U$ ~2 a9 Y0 ]
  42. // get line information
    + n) \' n7 x# a" A  L- N  @
  43. UF_CURVE_line_t line_info;
    6 B' z% \4 z: e
  44. UF_CURVE_ask_line_data(line,&line_info);6 N( W/ X" N2 w5 h, J% ]; o
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],  P4 [( F& s- y$ W9 n8 F
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
    8 H0 @! K- f. T7 t3 y7 `( z4 X
  47.   line_info.end_point[2]);
    : ]0 k; q7 ]0 r: X: V  F4 F
  48. UF_UI_write_listing_window(msg);
    6 G" U6 E$ u  M! H- `/ M
  49. //get the point information
    9 f+ }7 z( T$ c& d3 }: W: ^
  50. double point_info[3];6 b. U, u4 K5 i4 ?' l* ?3 i; Z
  51. UF_CURVE_ask_point_data(point,point_info);& a$ L/ R; E4 l
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    - x$ u" Z! z2 x+ @+ P! a0 T" A( B
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information  Y# P' v+ g+ W3 |" |3 O
  54. UF_CURVE_arc_t arc_info;
    + L" B& h5 C9 Y! D. [4 W) v7 ]9 V
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    : q& n9 B6 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;",
    4 X8 e: G9 o* a  n+ Y+ `
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    5 \: ]' h- u( }: j+ ^4 [4 U
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius( U3 N8 I+ j2 {; r- |
  59.   );1 K$ _- k/ i4 e1 Q) `1 p5 z$ V1 `9 r" k
  60. UF_UI_write_listing_window(msg);
    ; p/ O7 [( n& ~$ F
  61. // calculate the arc length
    ( o& f, U. [) w7 J
  62. double arc_length;
    ) T2 |# V) U& f- z: P6 G2 h
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    4 \/ P5 Q" |9 ]$ r, O8 K, J
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);1 v" z3 u3 S( z
  65. UF_UI_write_listing_window(msg);' K3 W: E: x# u
  66. }
    ! j9 s0 c: o5 u+ p
  67. </p><p> </p>
复制代码

, B: t$ I$ e9 s8 e$ A* J( _% Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了