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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码! O  q$ ~$ o# }6 |, r9 [" o
3 C, Y5 V! I( Y/ X( V5 E
  1. <p>static void do_UGopenapi()  F# p2 [5 w- B3 g# p
  2. {
    : q  z& y& C9 H! ]
  3. /*+ _" v' a: J! d+ n% t
  4. Create Curve
    7 D  ^  x+ t& Z# o
  5. */
    - P3 a4 P% J1 z2 R3 y; ]
  6. // create line2 c; k  [! k, T
  7. UF_CURVE_line_t line_coords;
    6 c3 [' C, Q! j' Q) d3 N
  8. tag_t line;. t( E5 N# G9 k
  9. line_coords.start_point[0]=0;; }7 z8 I/ C9 t6 t, E% ^
  10. line_coords.start_point[1]=0;$ r4 Y0 }7 a& u, K( Y$ m4 Q0 m, ^
  11. line_coords.start_point[2]=0;. X; V4 Q0 [- `3 W7 @) T: n
  12. line_coords.end_point[0]=100;
    $ Y( x8 Y( Z2 Y, B7 ?
  13. line_coords.end_point[1]=100;1 C) c4 J0 k% X# V
  14. line_coords.end_point[2]=100;3 |! i3 ^# b" o# _
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc
    * U2 u' D5 {  {# |) Q1 m
  16. UF_CURVE_arc_t arc_coords;. _* g$ b" ~. R  n1 P  M3 w
  17. tag_t arc,marix,wcs;
    4 E, z0 L: ^2 J% M5 f4 w" p* s
  18. UF_CSYS_ask_wcs(&wcs);! y+ a, o% M, {2 U0 m  [4 C
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);
    4 m5 E  n( x4 B7 K) ]
  20. arc_coords.arc_center[0]=0;
    2 U5 J$ j# I1 n/ ^& |6 W
  21. arc_coords.arc_center[1]=0;
    2 i. T+ C2 l7 b# X! t
  22. arc_coords.arc_center[2]=0;/ G" e: H& ?" X9 G; B7 l
  23. arc_coords.start_angle=90*DEGRA;: |( V# i4 L+ k7 Z+ t- Z3 i/ N* o
  24. arc_coords.end_angle=270*DEGRA;. `! ]& J: r# L/ U- d( Y2 P- _
  25. arc_coords.radius=100;
    ; K9 d4 C, S1 A  S- h
  26. arc_coords.matrix_tag=marix;
    8 q1 @0 B; [; Y( g% i  ?
  27. UF_CURVE_create_arc(&arc_coords,&arc);
      o$ e4 p0 B! s4 G7 E0 C
  28. // create point
    ' ~# ]: J- H/ B) T
  29. double point_coords[3]={100,100,100};
    ) A' g9 Z7 z  y+ {. S5 g% p6 p
  30. tag_t point;
    0 D4 C: V5 D- C2 V; x! E+ X
  31. UF_CURVE_create_point(point_coords,&point);
    % k8 E+ q# L, H
  32. 8 u! Y; U0 e+ h. d
  33. // create Plane
    ; B6 E; x% _- G2 c6 }7 @. l+ D( ?
  34. double    origin_point[3]={100,100,100};6 c. V' b( M! b3 Y  R7 o/ ]; j) D- e
  35. double    plane_normal[3]={1,0,0};; k. I  P9 V9 \. `6 I7 E' s2 k
  36. tag_t     plane_tag;    1 h0 P& o7 \% K/ M: K5 B
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    4 T) \) D6 k# c" m- L
  38. Get the curve information
    1 D! y+ v  J% O5 B. y
  39.   */* b& M) {, s0 s
  40. UF_UI_open_listing_window();7 n& p% s3 q9 f# M& v
  41. char msg[132];
    ) e3 r; E6 ~+ X6 w7 Y
  42. // get line information
    : A; G" f& }! o4 i( b, O; c( ~
  43. UF_CURVE_line_t line_info;
    6 Z0 e4 r& n  V
  44. UF_CURVE_ask_line_data(line,&line_info);
    $ P9 G& y$ |2 G6 _+ A" t0 Z5 e
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
    3 i1 @$ f) B" K5 X4 u% M. X$ z
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
    7 @' |" H9 S% a! g
  47.   line_info.end_point[2]);
    1 q* L* Y) x  v( t' e
  48. UF_UI_write_listing_window(msg);: h1 M% J& L: ]% v' @
  49. //get the point information5 V5 F5 h9 t, \) M
  50. double point_info[3];( |' E2 p6 c1 c
  51. UF_CURVE_ask_point_data(point,point_info);
    ( K" G* Z" k$ f# \7 M
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);% a; a5 v0 B- P* ?
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information$ w; A/ C2 X8 D1 O# x; e3 }; o
  54. UF_CURVE_arc_t arc_info;
    ) b9 X- I2 g) Y
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    5 Q7 [, E# U1 [* k. d* {" @* y
  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;",9 C% E* I& \# x' S0 t. `
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],2 L1 m* @: `; M% l+ L# |2 d9 K5 o
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius8 Y2 ?' r- ]- s6 U' O
  59.   );  t$ `% s6 K- A" A
  60. UF_UI_write_listing_window(msg);2 v2 A- J4 }6 D+ x0 r# @& I1 I
  61. // calculate the arc length4 v) W4 @% _( Q0 K* u+ E% N' Y
  62. double arc_length;1 [3 M) C' h0 o0 u
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);8 l! ]* k* I- y1 W: }: Q( I0 X
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    9 J% w0 e; h; t) ]2 i! W
  65. UF_UI_write_listing_window(msg);+ F0 V; r7 @% Z) A1 [' e1 }
  66. }
    9 @+ `* `, B1 b9 s, g6 A- c
  67. </p><p> </p>
复制代码
( B' `2 \; {$ Z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了