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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码1 \# k5 R8 P, Z. R
5 L( Q; c) y: ], Z! p
  1. <p>static void do_UGopenapi(): ?, K! u- P7 }+ m  `0 v
  2. {! T; d6 E3 z3 T* L! Q) Z
  3. /*
    7 F6 L3 r8 A' j2 X
  4. Create Curve* T2 V/ R6 N4 l  \# Z0 ~, }1 w- B
  5. */- o1 ?2 m; o8 ]  U, ~
  6. // create line! c) C. k$ b/ F  T& a0 E/ T" C& w, L( e
  7. UF_CURVE_line_t line_coords;6 ]. ~' K' @* l. H
  8. tag_t line;' L* s0 q2 ]% z( w7 H! Z+ E
  9. line_coords.start_point[0]=0;
    % \1 `) J+ }1 }4 D
  10. line_coords.start_point[1]=0;, P4 p0 _6 j: P  `: z8 j
  11. line_coords.start_point[2]=0;, i, c0 \. z7 ~3 v0 q. l6 V
  12. line_coords.end_point[0]=100;, E" W  M* x0 W( L6 ]5 q
  13. line_coords.end_point[1]=100;0 L0 ]$ K8 d( j7 r2 n. v. J0 K
  14. line_coords.end_point[2]=100;
    ) a* R' g' t& J; F( H0 E
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
    3 p$ o- p' h6 h
  16. UF_CURVE_arc_t arc_coords;+ ^0 c7 z7 n! t- J% j
  17. tag_t arc,marix,wcs;% Q" S3 h$ S( ^3 R) B9 [
  18. UF_CSYS_ask_wcs(&wcs);; h! L/ e  E9 y% c
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);2 C6 ]1 N; ]# D4 ^& c" x3 V
  20. arc_coords.arc_center[0]=0;
    $ ~$ K) F+ w# n. |; K) b
  21. arc_coords.arc_center[1]=0;
    - N8 e' H' _; j3 V
  22. arc_coords.arc_center[2]=0;
    7 ?  e$ b6 k1 r  r( N
  23. arc_coords.start_angle=90*DEGRA;# b; c' \/ N) M0 t& u* o3 m
  24. arc_coords.end_angle=270*DEGRA;
    0 ?% g& X, m! Z6 B
  25. arc_coords.radius=100;' O. M8 P6 E2 p0 c0 }/ i5 X  ^
  26. arc_coords.matrix_tag=marix;3 F  \# F6 D' J* Q6 _% J+ x4 t
  27. UF_CURVE_create_arc(&arc_coords,&arc);/ n! ?2 C1 s1 J+ w  Q) W7 C/ J
  28. // create point
    2 {/ y* V( M, F% c3 U8 B4 ^+ `. w
  29. double point_coords[3]={100,100,100};
    + ?  V/ Z* J' n1 ^" @4 Y" {5 U
  30. tag_t point;
    + l4 h8 ^, u& k; y* m8 ~1 d
  31. UF_CURVE_create_point(point_coords,&point);
    + ?" ]5 d/ B" c  s  O0 C1 L

  32. 0 S* h; ?% [8 w8 W
  33. // create Plane" E2 N0 e: E3 o/ f# Z$ B" l2 G) u
  34. double    origin_point[3]={100,100,100};
    8 f3 o) c2 w$ Q3 m
  35. double    plane_normal[3]={1,0,0};, j1 }: }9 e6 _; S2 J
  36. tag_t     plane_tag;   
      Q$ S2 _* l+ L4 V3 V. [
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    : c, c# H* x# c8 ~! L" J
  38. Get the curve information
    " Y7 b" F& n, K! \3 {% u
  39.   */
    3 d2 L8 g) }# n
  40. UF_UI_open_listing_window();+ r9 ]0 a4 m4 X; B+ a& {5 ^& B* \
  41. char msg[132];- i  K, _, i* }" W9 O# M
  42. // get line information
    $ A/ b+ u# O- u+ V4 L+ s3 }$ f
  43. UF_CURVE_line_t line_info;! d3 C+ a! y2 ]1 t- _. m  a
  44. UF_CURVE_ask_line_data(line,&line_info);
    4 h# X8 W8 l$ O! w3 N: r: K
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
    * c/ T$ M* l1 `* c" t& `9 b
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],2 I' m! \- C8 q/ u4 g5 y) ?
  47.   line_info.end_point[2]);
    # R, u" K( `: K0 U& s
  48. UF_UI_write_listing_window(msg);
    $ q; T5 r5 o$ Y9 s/ b5 H. E
  49. //get the point information
    5 x" m; d9 d2 _% {  N9 l
  50. double point_info[3];
    ( ]+ x! O1 n+ u; U8 f( |/ i0 @
  51. UF_CURVE_ask_point_data(point,point_info);; Q6 E! I' c4 `/ p& t8 X6 {
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    - d) C+ e/ R- ?  S& y
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information* ^9 |. I1 [2 c1 h4 N
  54. UF_CURVE_arc_t arc_info;
    2 M+ W' c/ B) n- I7 Q" {
  55. UF_CURVE_ask_arc_data(arc,&arc_info);! x5 y6 Y- W& ?- Q# h, 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;",
      \3 z$ i* S( C3 U5 a8 i: ^* m
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],
    : R( Z4 R; c' x( @
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius
    , O: h7 W# ?! w+ l
  59.   );+ k" R, Q1 S) U' a5 ?; L
  60. UF_UI_write_listing_window(msg);" t* |4 T8 m, t+ i$ s% }1 E, g3 `
  61. // calculate the arc length: {3 H+ }1 m/ {4 q0 N- a
  62. double arc_length;4 c. ^7 k4 F8 x2 |) o
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);6 w+ P7 Z$ I! H& Z. m
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);- w5 B6 V6 ^+ \* B6 v( U1 k
  65. UF_UI_write_listing_window(msg);3 }( b5 H9 K3 [$ Q
  66. }5 d/ x9 W6 k0 v0 [
  67. </p><p> </p>
复制代码
% C2 S% r$ S) L# i6 U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了