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

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码
: `" Q! j& v# P# O) r/ z7 S
9 d% g" R' |; U) R  k# f
  1. <p>static void do_UGopenapi()1 _* H( e8 d6 s1 B$ z2 {
  2. {
    ; G: z; I" k7 b. X9 f# J
  3. /*1 Y5 O$ ?; a1 I, K- N
  4. Create Curve
    & ?0 h' V+ y. w) X0 ^6 C! R
  5. */
    & b$ n+ n) F; A6 p  D
  6. // create line
    - g) U8 h$ S+ f% H* D! j
  7. UF_CURVE_line_t line_coords;
    & E& o/ ^/ \" D
  8. tag_t line;' d& U( m% ?% E9 k" W! k
  9. line_coords.start_point[0]=0;
    # \+ ]0 K! v; w
  10. line_coords.start_point[1]=0;
    * j: W* w+ H% W% I! I( Q. R  x: ~
  11. line_coords.start_point[2]=0;5 A% X5 q7 o% m5 @0 W8 P7 ^1 z
  12. line_coords.end_point[0]=100;4 w! D3 I) u. x( Z
  13. line_coords.end_point[1]=100;
    7 u9 g, n3 H( z7 F6 q5 a" l; W4 E7 ~
  14. line_coords.end_point[2]=100;
    , ]  D9 t4 V5 A1 \4 Y& |/ f% C
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc& v' I: P, k" }( `
  16. UF_CURVE_arc_t arc_coords;
    + ]( C# V4 \: c. T$ Y
  17. tag_t arc,marix,wcs;
    0 |% R4 S: M& I, o8 w8 d- _9 y# d
  18. UF_CSYS_ask_wcs(&wcs);
    1 z7 k4 ?1 S* C/ U: U! }
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);0 x( e/ f2 c4 K. m+ b$ R6 L9 l$ r1 y( C; b
  20. arc_coords.arc_center[0]=0;
    + N6 I( [1 x! X& N- Q) m& E8 C! D
  21. arc_coords.arc_center[1]=0;7 L1 g" J. s$ L* s8 m' z
  22. arc_coords.arc_center[2]=0;; W+ q5 n* l' k8 U5 D4 E- J
  23. arc_coords.start_angle=90*DEGRA;
    ( S" L& D; t" ]# g
  24. arc_coords.end_angle=270*DEGRA;
    3 x' d; Q: d5 q3 \/ g
  25. arc_coords.radius=100;
    ( Y- g1 {& K; E  f& N
  26. arc_coords.matrix_tag=marix;
    5 w/ Z1 B; @2 ]! n) S( X3 J
  27. UF_CURVE_create_arc(&arc_coords,&arc);
    # S2 b7 T+ l& F- \6 _; G4 ]
  28. // create point
    6 e8 r1 F4 k# J, Y4 K1 b
  29. double point_coords[3]={100,100,100};
    # R. n- B1 l& i' Y
  30. tag_t point;
    " k, ~- X7 |6 c0 r: [) g/ ~
  31. UF_CURVE_create_point(point_coords,&point);
    5 l* x6 J4 ]: Z$ R$ Q7 p8 e
  32. 8 P: C; o* l5 y- F# \/ p
  33. // create Plane
    & Z; B6 p4 v* e
  34. double    origin_point[3]={100,100,100};
    7 J0 W' p4 }& z" G' y; m) ]
  35. double    plane_normal[3]={1,0,0};
    ( Q' `" d& e; H$ W) a
  36. tag_t     plane_tag;    6 j% V* o! M9 M! G4 F. d
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    : S" Z# R! C; t4 {+ A& Y  O) C
  38. Get the curve information4 b+ q5 G2 A$ b2 C. @
  39.   */, p+ \7 s8 L6 r8 O+ g; X
  40. UF_UI_open_listing_window();
    ! z0 Q+ J: Z& f0 O+ x0 w
  41. char msg[132];
    4 k& N" U8 Y/ C( R  @
  42. // get line information3 [( p' i) O* b0 A( d" d, `" ~
  43. UF_CURVE_line_t line_info;
    8 v4 W! o" @& ]) I5 X
  44. UF_CURVE_ask_line_data(line,&line_info);
    / D) [( X+ w0 u4 t6 ?) g5 x4 B
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],
    ! B3 E, F! V5 `, y1 z# S
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],
    ) L& q# R9 {: x# A  [  ?( x
  47.   line_info.end_point[2]);
    , M+ z$ o# [* H# O! Y5 {# E
  48. UF_UI_write_listing_window(msg);" I" J. Y6 X6 Y1 N; ?1 k
  49. //get the point information
    * ?( i+ A! G9 z/ v; R* N
  50. double point_info[3];
    ' B# m+ v' T0 F! y( [
  51. UF_CURVE_ask_point_data(point,point_info);
    + ]) G4 H5 |2 _; a% W9 Q
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);' s' f6 G" @- q( V, _! b) j
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information* ^4 c, {( b% {  c) R1 ]
  54. UF_CURVE_arc_t arc_info;( M6 a8 B; W2 j3 f! p# M+ [
  55. UF_CURVE_ask_arc_data(arc,&arc_info);
    ; R3 t& Y% ?' J
  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;",, G% u( U6 n7 {
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],+ ^2 z% g' D' F' f. Q1 q  k8 p
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius4 ~2 j+ ^% m/ G1 j+ q
  59.   );5 k5 r* W! G7 |- p  Q8 K3 V
  60. UF_UI_write_listing_window(msg);* j  q% P$ O" R8 I: V9 ?/ X
  61. // calculate the arc length7 m: {: p5 J" Y8 A7 P! U7 O
  62. double arc_length;
    ! J9 {( A9 L9 m% t4 B4 g
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);/ a* i, m0 H3 q2 N; |2 U
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);. ]4 L& I- c' u; v' m6 b
  65. UF_UI_write_listing_window(msg);
    ! E, c4 Z7 B$ c  _: R& v4 g# d
  66. }
    ! h" X& G/ c! ^, k4 x. m; o% D4 r1 Q
  67. </p><p> </p>
复制代码
+ H- u* g! [  I4 h7 G9 T1 |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了