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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
& p3 \, c2 E; O& X4 e* o5 q; N, {' x8 T% i% w
  1. <p>static void do_UGopenapi()2 c& z- ~+ E% q, c: H5 z' s
  2. {% Y1 w! A* M* C
  3. /*
    1 j8 W" ^4 E9 X) [7 j% z' i
  4. Create Curve. [, O, X3 D/ U% S* \5 ?* I
  5. */5 u: e: W0 A2 t+ u- d- w
  6. // create line% i, @/ m" u2 m1 L! [. r- o# j- \6 W& }
  7. UF_CURVE_line_t line_coords;. h: Z) J; W) R7 e4 g
  8. tag_t line;$ s/ m3 W2 _( z9 j0 D: L
  9. line_coords.start_point[0]=0;
    : ?/ t" i/ W+ @( m! Q" G8 n( A
  10. line_coords.start_point[1]=0;4 `9 j" a0 i! V8 O
  11. line_coords.start_point[2]=0;9 W. ]/ j4 x9 ?2 g
  12. line_coords.end_point[0]=100;
    $ G3 `+ g3 |' D; y  I* k% `3 D
  13. line_coords.end_point[1]=100;/ f# J3 y; Y$ \( U5 f2 k
  14. line_coords.end_point[2]=100;. L5 c/ ~5 x9 g8 R8 A, l
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc' R% z3 ]% f4 b  \. y1 O2 q9 q4 A
  16. UF_CURVE_arc_t arc_coords;3 J$ V9 z) N+ r1 B3 h1 ~
  17. tag_t arc,marix,wcs;: T0 N( w0 M1 {. E1 w* [. p: K
  18. UF_CSYS_ask_wcs(&wcs);  E# R9 L% p' R4 [* ?+ G) _
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);
    ! ?7 P# e4 X- G# c- w
  20. arc_coords.arc_center[0]=0;7 J$ ]8 e7 k; O7 [5 u$ x1 I2 e
  21. arc_coords.arc_center[1]=0;
    " v, H) j+ R' S
  22. arc_coords.arc_center[2]=0;% _1 D* ~; a+ s  G0 C4 E. F: Q- r7 T
  23. arc_coords.start_angle=90*DEGRA;) H& e6 h+ d! a) ]) r
  24. arc_coords.end_angle=270*DEGRA;3 R) w) _/ S- D! h
  25. arc_coords.radius=100;
    & |/ g5 u5 v# g- _2 @! X& K
  26. arc_coords.matrix_tag=marix;- d& _+ c, z! \/ K2 @6 t
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    ) h8 a  h3 g1 m# h; v
  28. // create point ( y$ k2 M9 P; H
  29. double point_coords[3]={100,100,100};: k1 ?9 I; F; L: ?( @8 O
  30. tag_t point;7 ~; Y& k2 r6 ?( B9 u8 ?4 o
  31. UF_CURVE_create_point(point_coords,&point);* f" P- M* [( L) k7 C9 Z  g
  32. ' P! @6 B; i; f6 O+ d
  33. // create Plane
    + d* G5 A  C2 b
  34. double    origin_point[3]={100,100,100};
    - x4 ]! g4 C6 N" p+ @* I
  35. double    plane_normal[3]={1,0,0};1 I% j7 h! m6 H& s  j; h9 w" a
  36. tag_t     plane_tag;   
    : _9 J5 j2 m1 w5 T. N
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    , {, o$ g: N6 t/ ~' _
  38. Get the curve information! w3 Y0 T- b9 x  P( q
  39.   */, ^  J3 \) o# y
  40. UF_UI_open_listing_window();! b/ l7 r: e: R+ r' y0 X
  41. char msg[132];4 e! b& w/ \3 y1 e
  42. // get line information( [( C: b  s& Y9 v7 O9 X3 c
  43. UF_CURVE_line_t line_info;
    , |7 ~  u) Q2 g. `
  44. UF_CURVE_ask_line_data(line,&line_info);
    0 _+ J+ k/ t7 O7 d
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
    . _. X' c) z- t! a$ v$ E  `" b; K
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
    5 T7 n3 C/ G4 A( }, i/ W- B
  47.   line_info.end_point[2]);
    / m! l. k7 ~9 |. z8 V& y' j
  48. UF_UI_write_listing_window(msg);
    , F( y$ B6 ?8 V
  49. //get the point information9 y( I' G( H9 o) J/ W! M
  50. double point_info[3];
    , }% C: a1 \/ [  E6 X
  51. UF_CURVE_ask_point_data(point,point_info);
    : u: \: }5 e- i- S
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    : K# \! J" z" f8 r) M
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information, R8 {) l7 ], m2 p
  54. UF_CURVE_arc_t arc_info;% o5 ~* M1 S3 y3 J4 u
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    ' v' Y6 P, l4 {% O, v% 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;",4 Y6 b% K  B; i( O6 ?! R
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
      y( [  D& R8 X' r# i# {
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius5 h0 F$ m$ d/ {8 ?+ H) O
  59.   );5 Z: K! {; O9 k1 ^) {/ c
  60. UF_UI_write_listing_window(msg);
    % E7 v* n$ Y  T6 P1 @5 E
  61. // calculate the arc length9 ]) q& q1 n0 Q& v
  62. double arc_length;
    & S/ K% n1 {8 {  t' s8 }+ W, i# I
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);, {6 N7 ?* |# X2 E
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    ) q' e+ c8 }" ?5 F
  65. UF_UI_write_listing_window(msg);
    + `6 H0 _. K/ v3 G
  66. }
    " m9 z8 e( s; i4 N) q" A
  67. </p><p> </p>
复制代码

' d$ @9 v) b2 K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了