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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码0 ^# b, ~1 l$ G- Y+ y* l

' i" N6 m- V5 C! C4 ]( w
  1. <p>static void do_UGopenapi()2 T- p& [+ c- N" C2 D
  2. {
    ' X0 Y. ^$ |9 ?0 v" k
  3. /*7 n+ H2 n$ n9 f; C# L; G6 e
  4. Create Curve
    ! m4 `/ H0 N# s1 |5 \. I. f
  5. */" i' a- y# A- V4 }7 M$ _, e2 X$ q; o
  6. // create line
    # ?+ G) F  X; U* c7 ^
  7. UF_CURVE_line_t line_coords;: r: u3 |" t2 X' f, C6 f
  8. tag_t line;! j2 H/ L0 ~0 O+ K$ r, t% `  B4 M, h
  9. line_coords.start_point[0]=0;: ~8 ^# F  V0 j; S
  10. line_coords.start_point[1]=0;" I1 l0 ]6 }/ n
  11. line_coords.start_point[2]=0;
    / ?0 ^. c' s& D$ Q- |3 Y) U, K
  12. line_coords.end_point[0]=100;* [$ u% A# e; Z" c; C
  13. line_coords.end_point[1]=100;
    ' `4 i. n; |: B; W" ^8 O
  14. line_coords.end_point[2]=100;
    " g" z) O  @3 `0 y
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
    . h* o2 O  ^# Z0 G! q" f
  16. UF_CURVE_arc_t arc_coords;% O+ ~; H( I* `* ~$ S" \; c
  17. tag_t arc,marix,wcs;& g5 a9 B8 b+ I+ Q$ ~
  18. UF_CSYS_ask_wcs(&wcs);& [& A; v' B/ s2 L8 c7 L, H
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);; A; N5 n; Q4 ], j0 `* Z
  20. arc_coords.arc_center[0]=0;. l* p2 G4 f3 m
  21. arc_coords.arc_center[1]=0;0 @" X- D) G/ B6 f
  22. arc_coords.arc_center[2]=0;* m$ D% E- ~$ U* _/ N
  23. arc_coords.start_angle=90*DEGRA;
    8 S5 P4 ?; n, @& }
  24. arc_coords.end_angle=270*DEGRA;; R* H( B5 }) J# q
  25. arc_coords.radius=100;
    / {/ e. g% z7 z8 _+ E5 U
  26. arc_coords.matrix_tag=marix;) A, x' x' Z6 o" G
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    0 |: T; ^  t5 [, s( b* u7 m. Q4 \0 E1 [7 Q
  28. // create point
    ' `" V: v2 ^* u  m0 S
  29. double point_coords[3]={100,100,100};
    ! U; R. l- e) Q+ `2 `2 A$ p
  30. tag_t point;
    9 o( d+ W/ L9 ?+ ?! q
  31. UF_CURVE_create_point(point_coords,&point);' _' N, A5 p3 D2 e1 b7 C/ C% B
  32. % c) o- C" h& i! V
  33. // create Plane
    1 V# @; e' ~# S7 u. C
  34. double    origin_point[3]={100,100,100};
    $ R. d# J9 v; Z1 H9 M
  35. double    plane_normal[3]={1,0,0};
    7 \0 s% ^1 {' ]- o
  36. tag_t     plane_tag;   
    7 C' r+ @6 R2 ?2 u& M" C  m
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    / E9 @$ V0 S3 [: S
  38. Get the curve information% O3 Q1 U" K1 e
  39.   */
    - a4 A1 s8 R) ~! x( h
  40. UF_UI_open_listing_window();- M" ?" v3 [6 Y* z4 c1 a* Y# h" E* z
  41. char msg[132];
    # L( t% o! \4 Q7 j0 r
  42. // get line information3 |+ E$ e. t- w
  43. UF_CURVE_line_t line_info;
    * H9 z! s$ |( l7 ]7 Y/ O
  44. UF_CURVE_ask_line_data(line,&line_info);, ?, _' t& P. q0 @
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],& j" o+ R9 D8 `0 |
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
    ( t/ u. R% t# t  H3 F) `  z
  47.   line_info.end_point[2]);3 S# h$ F9 U" V. N6 i2 `
  48. UF_UI_write_listing_window(msg);
    1 |4 m0 u1 ?/ a4 P8 I. f
  49. //get the point information
    ( L( O  a; H1 [  Y. {
  50. double point_info[3];# o4 p% I1 k9 ~0 e9 I8 J
  51. UF_CURVE_ask_point_data(point,point_info);1 G; [) ~8 Z0 e; `: o
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);6 g: F; K# [0 m- p
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information
      G% }2 z! K1 N- \
  54. UF_CURVE_arc_t arc_info;
    % Y1 c5 V$ G( R4 X  r
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    ' N1 Q: C+ |! G9 D  i3 U! o
  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;",; I1 c+ R  S- A. u1 ?* }5 V2 @
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    : S" m: I5 B5 q* s( F* v( v3 f0 J
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius
    " a. W2 n( `' z5 `0 A% b* K
  59.   );
    % N, h5 N9 w. C
  60. UF_UI_write_listing_window(msg);, h9 o5 t/ a  e$ g2 E# C/ L
  61. // calculate the arc length
    , J8 v; Z+ s6 `% _, _$ D1 F) p
  62. double arc_length;* ]" [4 T0 p! `6 I* }9 G: T. O+ z' R
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);! \4 _  o9 L6 z0 B4 q
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    4 m; u. r5 z6 m! G: h4 D# N) Q1 V
  65. UF_UI_write_listing_window(msg);7 `* g1 {3 U0 y; X; Y0 Y: O% F
  66. }
    & z: d1 I+ `8 }
  67. </p><p> </p>
复制代码
; d+ v+ c( L4 n% R6 E, x
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了