PLM之家PLMHome-工业软件与AI结合践行者

[二次开发源码] NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码

[复制链接]

2013-11-27 15:21:12 3088 0

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

admin 楼主

2013-11-27 15:21:12

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

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

x
NX 二次开发中创建曲线命令及获取点,线,圆弧信息源码5 r7 ^; ^* w) M* x

; l; T3 D! K9 l! e
  1. <p>static void do_UGopenapi()+ ~! j- ^+ Z2 B% |7 q; a
  2. {6 Y1 B0 k" a: ?4 x
  3. /*& O0 [$ p4 W& ]4 |7 I
  4. Create Curve
    ; ~+ Y# t! l& v. E% X* M
  5. */
    $ g6 J; R8 P; L
  6. // create line
    - p+ A' q" Z3 h* r! S% @, m+ Y
  7. UF_CURVE_line_t line_coords;) [, A; R1 y/ [5 }
  8. tag_t line;+ K  y- g) }% h- m7 S- M
  9. line_coords.start_point[0]=0;
    ! O  W1 V9 Q5 S" ?6 O; F
  10. line_coords.start_point[1]=0;
    ; J- @' g5 ?4 }& ]
  11. line_coords.start_point[2]=0;
    ) z/ U4 ?( l$ a' X& ?
  12. line_coords.end_point[0]=100;
    ; i; `( c7 \$ e- g: }) g
  13. line_coords.end_point[1]=100;' Y# q) e) m) @4 I9 n! s! m
  14. line_coords.end_point[2]=100;  A( w  S" l. h! D5 E" x
  15. UF_CURVE_create_line(&line_coords,&line);</p><p> //create arc% j( p% b) I% ~- g; K. i
  16. UF_CURVE_arc_t arc_coords;
    . n& N5 ?( O; V1 c
  17. tag_t arc,marix,wcs;
    & ?- D% s- M, d0 Q3 V* O5 a
  18. UF_CSYS_ask_wcs(&wcs);
    9 v! p4 d; Q" l8 O+ N* D2 D
  19. UF_CSYS_ask_matrix_of_object(wcs,&marix);0 ~8 v: x/ I1 s3 g! u2 M0 |# S
  20. arc_coords.arc_center[0]=0;' t) L8 z/ l5 r; V. r
  21. arc_coords.arc_center[1]=0;% ]8 V+ J$ U0 B- f9 z' Y
  22. arc_coords.arc_center[2]=0;4 n, S3 u' o' ^' T
  23. arc_coords.start_angle=90*DEGRA;/ o+ z: w* l$ x$ y+ F" `, m
  24. arc_coords.end_angle=270*DEGRA;8 `1 q( [, f) I" u* t/ S( {
  25. arc_coords.radius=100;
    4 [; \( [2 g4 a. F5 g5 \
  26. arc_coords.matrix_tag=marix;/ ?/ N: L1 E) s0 J
  27. UF_CURVE_create_arc(&arc_coords,&arc);6 X! D& P- i; I! H
  28. // create point
    ! @9 g6 }3 e) g% R# _1 M3 ]
  29. double point_coords[3]={100,100,100};
    & ]# P2 L) X1 ]/ f6 }$ H( x
  30. tag_t point;7 c1 P) l% r+ z- D: g7 y( O
  31. UF_CURVE_create_point(point_coords,&point);' w6 k$ ~5 P/ G5 S5 \, m, }* }

  32. % g8 x0 _$ N$ ~5 n% P$ \
  33. // create Plane+ b0 w% M3 g! z( x: Y4 h
  34. double    origin_point[3]={100,100,100};) V$ J) S; U2 s5 p
  35. double    plane_normal[3]={1,0,0};$ G) {' U) K& J9 C3 X
  36. tag_t     plane_tag;   
    + T, C2 k0 b7 p3 g% i
  37. UF_MODL_create_plane(origin_point,plane_normal,&plane_tag);</p><p> /*
    . K( o; Z5 P7 g) i8 u
  38. Get the curve information4 n5 H0 Z$ N: v/ ?! W  ^
  39.   */2 A5 w; B2 Q) Q1 M" ?6 m$ e( l
  40. UF_UI_open_listing_window();1 ~" L# n8 B/ R( e1 L
  41. char msg[132];6 j/ ^% l* Q6 ]- M; o
  42. // get line information' b7 F5 b. M. D) }0 v# K. i# a
  43. UF_CURVE_line_t line_info;" C1 L  I! `$ G2 K; L
  44. UF_CURVE_ask_line_data(line,&line_info);
      N% Z8 T) y$ g# b9 K2 S
  45. sprintf(msg,"line coords:\n\t%lf,%lf,%lf;\n\t%lf,%lf,%lf",line_info.start_point[0],6 Q) C, W; _+ r# J) t* w
  46.   line_info.start_point[1],line_info.start_point[2],line_info.end_point[0],line_info.end_point[1],: y2 i1 O" k9 p4 `6 u
  47.   line_info.end_point[2]);$ X# V: j; C3 ^% W% \9 c. `# b/ _
  48. UF_UI_write_listing_window(msg);
    9 ^! A- N  _, k7 D, |
  49. //get the point information4 n& ?# E1 J+ r  {! i$ ]  y8 t
  50. double point_info[3];. F  }! q+ |, p& I' x% ?
  51. UF_CURVE_ask_point_data(point,point_info);
    ! t; B" u$ K0 @2 R" }
  52. sprintf(msg,"\npoint coords:\n\t%lf,%lf,%lf",point_info[0],point_info[1],point_info[2]);
    + s( B& K4 D+ ?+ ~+ T/ w
  53. UF_UI_write_listing_window(msg);</p><p> //get the arc information
    - f- i3 f" G) n' V
  54. UF_CURVE_arc_t arc_info;
    . o2 s: L. K# C+ `% U
  55. UF_CURVE_ask_arc_data(arc,&arc_info);% V& ?, b# O1 }! s9 O9 R3 G# K
  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;",
    ) }5 ?0 X, t* [1 n) z; O
  57.   arc_info.arc_center[0],arc_info.arc_center[1],arc_info.arc_center[2],; S; t7 Q$ T$ O/ h8 R9 c
  58.   arc_info.start_angle*RADEG,arc_info.end_angle*RADEG,arc_info.radius  t* `( ]1 b% _0 Q' U* Y9 t9 P
  59.   );
    ! v: H* ~+ [! Z' G: X& Q! G
  60. UF_UI_write_listing_window(msg);
    + t/ j/ u. o  ?$ o
  61. // calculate the arc length
    , @! ~( [! ~4 N1 f: C, j! k
  62. double arc_length;+ a" _4 u3 u7 e% r
  63. UF_CURVE_ask_arc_length(arc,0,1,UF_MODL_UNITS_PART,&arc_length);
    " Z) D; ^: Q3 K& e' S* h
  64. sprintf(msg,"\nArc Length:\n\t%lf",arc_length);$ K3 z  N% |' ?" _, u
  65. UF_UI_write_listing_window(msg);- q  s7 W, y! _0 K# _" W
  66. }$ R# ~, ~6 S: q& P/ E8 v
  67. </p><p> </p>
复制代码

( W6 b) ^5 K6 M& ?7 o
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了