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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
4 U+ J& A) M1 X" F" C) J1 P3 ^: @1 B" S* r1 e$ {( |) d3 D* ^
  1. <p>static void do_UGopenapi()5 L! A8 R# {( N* y8 O
  2. {
    3 Y5 \: U6 z0 U
  3. /*
    ) [$ q0 C, U; b, i& ]
  4. Create Curve( i( Y4 p0 ^# U4 ~* e3 i
  5. */9 y6 w' E' a% S; q2 W8 r2 Q
  6. // create line
    , U6 R( i) ^3 b0 B: R
  7. UF_CURVE_line_t line_coords;
    & k  ^4 K; W! H! k  T& u
  8. tag_t line;
    / |% a) @2 V# f# `; O6 u
  9. line_coords.start_point[0]=0;' y+ b4 V2 H8 H- Y+ _, o5 r3 ~# P
  10. line_coords.start_point[1]=0;
    5 k8 w2 Z" `; Q1 P# ^7 A: f4 l
  11. line_coords.start_point[2]=0;% z5 U# A) u5 ~- Q7 [( C2 n+ ?( j
  12. line_coords.end_point[0]=100;
    * Q- }. B9 y0 W
  13. line_coords.end_point[1]=100;! Z9 g; F; T( s9 |2 o6 l
  14. line_coords.end_point[2]=100;
    3 v' J$ D% z% {; p6 b: ]7 Q
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc. U2 Y6 Z% c1 C
  16. UF_CURVE_arc_t arc_coords;6 L# g7 V4 q0 E
  17. tag_t arc,marix,wcs;
    , V  H$ d( Q% u7 M4 l1 P, H! z5 [
  18. UF_CSYS_ask_wcs(&wcs);  _; q" S/ q$ x2 V' f
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);
    3 Z5 U! p4 q9 m
  20. arc_coords.arc_center[0]=0;% b2 u6 l0 |; T% b! Q
  21. arc_coords.arc_center[1]=0;
    8 |7 Y) t6 x0 R( R: |5 D
  22. arc_coords.arc_center[2]=0;
    9 J$ C; @* c/ L$ Q* x6 h2 g
  23. arc_coords.start_angle=90*DEGRA;2 u5 N+ P: Z2 S
  24. arc_coords.end_angle=270*DEGRA;+ I% c3 f6 D, t
  25. arc_coords.radius=100;
    8 q( h: G3 J% \
  26. arc_coords.matrix_tag=marix;5 ^$ W+ i' T# a) Y/ ~
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    ) u) C3 Q3 f2 U5 [
  28. // create point ' j' \# }+ J& v' w+ Q9 C' f' h( y
  29. double point_coords[3]={100,100,100};; W, ~! S$ w9 q8 @
  30. tag_t point;
    2 }1 ?5 L6 s, Z/ P. N
  31. UF_CURVE_create_point(point_coords,&point);7 h5 }$ z3 L2 z% H4 k
  32. - F8 c( C7 C7 T/ M+ N
  33. // create Plane# ~  j/ X/ Y( i, i
  34. double    origin_point[3]={100,100,100};. C8 `; G) a) I3 @3 w
  35. double    plane_normal[3]={1,0,0};& q  s$ r7 c! K- o
  36. tag_t     plane_tag;    : `( x7 a0 `& Q5 M% ]) H- a9 t: O0 E6 i
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    ( |% @% `5 y7 [) F
  38. Get the curve information" c- V+ I6 y! J) g
  39.   */; a0 E1 s2 |3 N6 S4 r+ f3 E! ^* M
  40. UF_UI_open_listing_window();
    - Y' K9 h9 x, x8 j  H. u1 K
  41. char msg[132];
    & u; |4 [% E/ a+ |8 Y: c* s  S
  42. // get line information' E2 i* J5 c3 Y9 K
  43. UF_CURVE_line_t line_info;
    ( H% k$ {- r4 @
  44. UF_CURVE_ask_line_data(line,&line_info);- ~- O$ T4 L( ~  n' O! p
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
    ( a" p8 Y9 ]: C. k  j
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
    # Y( Z- S, s' d
  47.   line_info.end_point[2]);/ X- ^0 e& }; C! a( |, E$ h
  48. UF_UI_write_listing_window(msg);! P3 ~3 I9 O6 D2 b6 U6 ]2 R
  49. //get the point information
    ; i" P9 o* b% d3 i+ |& f( \3 J  r
  50. double point_info[3];; t9 y$ s6 T; ^, A! m% J
  51. UF_CURVE_ask_point_data(point,point_info);# ?' D1 R( N3 z, S# s
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);% S+ R' Y' c( {1 g: L
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information
    $ n9 S3 s/ N  ?) A) |
  54. UF_CURVE_arc_t arc_info;0 a8 |/ [3 e# w* D) a! C1 H
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    7 o; u8 E) b! k* l& r
  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;",
    " U! ]$ q; x& t8 @8 E5 T, e. K" s
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],( c( a, c7 Q7 t6 }- ]* V
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius
    , `8 Z3 q* ~! Z# T
  59.   );. @8 f7 Q7 Y1 t5 N% Y. A
  60. UF_UI_write_listing_window(msg);8 O! M' P' v& u2 Y( k, r: v- T
  61. // calculate the arc length
    - ?" q' c% D' W% x) o
  62. double arc_length;
    / d5 u6 O7 K4 B) ]
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    1 k) e' H0 m$ K$ o$ _, }4 P
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);- m, L' d: {6 n4 M
  65. UF_UI_write_listing_window(msg);
    7 k" ^1 E6 `" w4 E3 y: \
  66. }1 A! G! i6 m) |. ?: J% g
  67. </p><p> </p>
复制代码
% ~# ]: Y$ `4 p. W1 ^6 J: X8 J8 o
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了