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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码- ?: B* m# S! q2 y' N( ^
  N: l" s+ U5 A  B$ ~% `% F% S
  1. <p>static void do_UGopenapi()/ n$ \8 Y3 R" s% Y) _9 Q
  2. {6 ]7 d0 y; ]. T( U+ O
  3. /*
    4 E0 D; C. u6 x! w+ d
  4. Create Curve
    + P$ T* ?9 y- D' [
  5. */) Z5 R( ]4 E+ K* w# b7 e+ f
  6. // create line0 j% A7 D! P2 K9 \
  7. UF_CURVE_line_t line_coords;
    $ w( U0 `8 m, {" d% l+ K
  8. tag_t line;
    2 D/ G4 C3 y& C- h! C
  9. line_coords.start_point[0]=0;$ \+ i; k% H6 i5 t
  10. line_coords.start_point[1]=0;2 w; g& e. o. A# A# W( p8 h
  11. line_coords.start_point[2]=0;! T& d0 }# a7 @
  12. line_coords.end_point[0]=100;
    + ~6 f- {# i! Y& r  ]2 F9 X
  13. line_coords.end_point[1]=100;1 q$ t$ X1 N* y# k2 K! I; F4 }$ w
  14. line_coords.end_point[2]=100;# F* q" x# G  \+ @$ G' J
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc6 J% I( a1 U% ~, J" q! K
  16. UF_CURVE_arc_t arc_coords;
    & j+ x# O+ i/ z& I' g4 s0 b5 F
  17. tag_t arc,marix,wcs;* U1 a- N5 r) K% z# N! _
  18. UF_CSYS_ask_wcs(&wcs);
    * C3 ~  P" |: k2 P2 m
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);
    : l5 P1 v$ v- M
  20. arc_coords.arc_center[0]=0;
    3 g9 V) d2 p* n
  21. arc_coords.arc_center[1]=0;" m7 E; _4 q: W7 ]8 `* ^0 {4 i
  22. arc_coords.arc_center[2]=0;' r8 j. X9 f1 \+ T7 T5 c
  23. arc_coords.start_angle=90*DEGRA;
    ( z) \+ V& ?) K& G1 _9 h1 U/ c  U4 J
  24. arc_coords.end_angle=270*DEGRA;
    5 b1 G2 y5 l# m! J
  25. arc_coords.radius=100;
    2 E6 J% q2 V4 j3 Y+ K
  26. arc_coords.matrix_tag=marix;
    : `8 E) E8 d' r! ]" w
  27. UF_CURVE_create_arc(&arc_coords,&arc);  @7 j: k4 w4 d+ m: [3 S
  28. // create point ! O5 u3 T" V/ o9 _
  29. double point_coords[3]={100,100,100};
    ' j" A" C* Z4 N* ?1 ~; h4 f
  30. tag_t point;
    . ~9 _$ L3 A) X5 F* s: F
  31. UF_CURVE_create_point(point_coords,&point);
    0 g# x8 a  p* k
  32. * \  y9 T. K1 B) Q2 b8 I! T
  33. // create Plane9 F# I" V" Y) w. H! H* Z, {
  34. double    origin_point[3]={100,100,100};" H3 m+ b. B8 a8 w4 X2 ?
  35. double    plane_normal[3]={1,0,0};
    " f% f; d7 G' L$ S
  36. tag_t     plane_tag;      X) I% f# g0 N4 i
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*8 H4 m' l# E* S6 L" l: ~$ C; K
  38. Get the curve information8 T! O; E# ?$ W1 @/ D+ l
  39.   */
    . t# y- t6 Q/ P# V8 g0 |; q' q
  40. UF_UI_open_listing_window();
    * w" \; ~8 q- g
  41. char msg[132];
    # A* x# Q: a: r" Z
  42. // get line information" q2 m/ k0 P7 c/ p& X* K
  43. UF_CURVE_line_t line_info;
    + u/ X" l1 \" C6 Y% h: j
  44. UF_CURVE_ask_line_data(line,&line_info);
    # T0 ?( O0 b- ~  `1 C2 u0 ^
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],# b3 i  a& I( n( r1 Y/ F2 m5 O# h
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],5 ^- w) p" y  \8 ?, N4 A
  47.   line_info.end_point[2]);) M) L; ~; k4 q" l) `
  48. UF_UI_write_listing_window(msg);9 |. ?8 v2 K1 O2 n% a
  49. //get the point information9 A  ]# b0 Q% O8 Y1 B1 E2 k
  50. double point_info[3];) J, }: {5 @7 a
  51. UF_CURVE_ask_point_data(point,point_info);
    5 _7 [1 ^% u- L& i
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    8 }( ~. E( a8 q5 I
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information
    + z( p7 I4 g! u7 L# |' r
  54. UF_CURVE_arc_t arc_info;0 C. F' M; ?+ ^6 a- ?1 g
  55. UF_CURVE_ask_arc_data(arc,&arc_info);4 k) C& J% z! a! b* [- D* l3 A) s
  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;",) a4 Q: P. P) B
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],& s# ^/ U' i0 p4 t2 b) x) I1 d" G
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius
    0 ~- h* c& B% h4 ^; J# m8 V- V5 G
  59.   );" g- l: a, q9 V. h
  60. UF_UI_write_listing_window(msg);
    ( m/ r$ z! I. G/ O- |! g1 S
  61. // calculate the arc length
    - I3 J! O6 ]6 B
  62. double arc_length;
    # m1 e9 O, N( I/ S$ V5 d1 A# d
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);! i  A7 ~( B( R
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);
    ) [( j7 ?/ l# c; d" m. n
  65. UF_UI_write_listing_window(msg);
    : E7 Q+ S# A7 |1 X
  66. }# G& {  U: q% T8 m! m
  67. </p><p> </p>
复制代码

: M' M+ i/ ?5 Q8 g
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了