久久久久天天天天_久久免费视频在线_久久国产成人精品国产成人亚洲_日本精品一区二区三区高清 久久

若楓后處理論壇

標(biāo)題: APT刀軌數(shù)據(jù)生成NC程序C++源代碼 [打印本頁(yè)]

作者: 若楓    時(shí)間: 2025-5-21 20:59
標(biāo)題: APT刀軌數(shù)據(jù)生成NC程序C++源代碼
APT刀軌數(shù)據(jù)生成NC程序C++源代碼,本功能僅作為技術(shù)交流研究之用,代碼,功能可能存在缺失。需自行編寫(xiě)刀軌數(shù)據(jù)的讀取與處理。以下僅為部分代碼以下為頭文件部分源代碼
  1. int  EQ_is_equal (double s, double t);. T( H8 y" O% h9 b# z3 E+ ~
  2. int  EQ_is_ge (double s, double t);* g# m5 ?% Y& ^$ v  ~  |  C( O& Z
  3. int  EQ_is_gt (double s, double t);
    1 J8 \1 {$ T. p7 J; S
  4. int  EQ_is_le (double s, double t);
    " B, I* y& _. L4 w- G$ r# X1 i: q
  5. int  EQ_is_lt (double s, double t);
    ( ?/ X0 E1 d' Q
  6. int  EQ_is_zero (double s);
    " \: k9 Q, ?; l# _) w6 x
  7. //=============================================================
    6 d& e4 l3 t9 ?2 M$ H; z
  8. double ARCTAN1 (double y, double x );
    . @+ M( j6 [' N! x% _& p9 W7 J
  9. //#=============================================================
    + S: U3 i4 S  d7 S* Z3 ~
  10. double ARCTAN2 (double y, double x );
    " z1 \( A5 i* j" |
  11. //#=============================================================
    : N( g* O$ W( v/ ]4 o, M3 p
  12. double CheckConst ( double angle, double constvar  );( b" K5 M0 v$ f) N' `+ C
  13. //#=============================================================
    1 K% J' Y! U; u8 V0 Q: Q
  14. double Check360 ( double angle );) Z, [' ~2 L+ X, W* ?8 J! w  O
  15. //#=============================================================
    . w9 x% o% z4 [6 {, F
  16. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit );, T0 i% E% y/ |$ \1 N. `
  17. //#=============================================================
復(fù)制代碼
/ ?8 c' J' ^2 Q9 o; J( O' ~1 R5 |
以下為部分源代碼,用于判斷,計(jì)算角度等
% o: K# G( D6 q$ y
  1. int  EQ_is_equal (double s, double t)
    ; p# {1 h) W0 ~* s3 t- |) u8 j
  2. 2 l  r5 y: h% T* B
  3. {. F9 A2 D# c7 h- `. e
  4.   A4 T8 f8 U( U" o3 X$ [5 o
  5.   if (fabs(s-t)<= system_tolerance)  { return(1); } else { return(0) ; }
    / E4 ~" }0 s9 u) ?2 Z
  6. " F6 h( V' u1 [9 Q8 F4 m& g: m  ?
  7. }1 L+ P# e1 y( x* ?
  8. ' \# u; D, Q/ u! [  R/ N1 p1 B
  9. /***********************************************************************/
    ; \9 g" N7 H/ K. P

  10. 1 P6 ^& s' W! h! L
  11. int  EQ_is_ge (double s, double t)
      r; p8 W. h' h# x

  12. " q7 v# K( z0 z+ P) B0 _
  13. {1 ?+ \# i8 H8 I. @. j; ^

  14. # U" c7 C# v3 w' I' `+ @
  15.   if (s > (t - system_tolerance)) { return(1); } else { return(0) ; }, l! U! s9 b' c3 x4 V. c

  16. & q, q# R! P! `9 [) P; _. d
  17. }2 p; ]8 ]- R# R/ b
  18. 5 x% i# z8 j) @4 o& C/ E2 V4 T: o7 D) b
  19. /***********************************************************************/2 E% k2 m( }# q5 L( R

  20. ( p4 o0 x1 N4 P6 Q; ?* G
  21. int  EQ_is_gt (double s, double t)
    9 ~3 i* _3 ^4 G" q9 h3 {0 ]

  22. 9 U) r& f4 n- P0 m0 B1 [
  23. {, T7 S  N% ?! E; K2 U

  24. 4 }! \& R: s3 m. g* @4 J) z5 b
  25.   if (s > (t + system_tolerance)) { return(1); } else { return(0) ; }4 e9 H6 z1 N- n
  26. 9 F  q/ g$ \1 }4 w; l2 ]3 u
  27. }: Z$ T1 \9 i1 G" m& u

  28. . u# N9 Q# r( K  W$ m3 \
  29. /***********************************************************************/
    + \  {8 l3 O1 @( i+ }! ]9 O" M

  30. 9 i9 |: h7 Q3 s. M
  31. int  EQ_is_le (double s, double t)3 M+ `+ B: `- x& t( @8 z
  32. 8 @0 e) j# R2 a2 f8 H3 q
  33. {
    # Q9 K( }1 ~& R4 u
  34. % t" |# J# Q; ?  \) ?6 l8 Q
  35.   if (s < (t + system_tolerance)) { return(1); } else { return(0) ; }
    / ]/ I. ~& Q( H: y! }- _7 M- T
  36. 9 y% s9 K/ s9 s. p  r* v$ Z  K! T
  37. }
    " n" d1 i1 p% T8 H4 @2 c

  38. - m2 [. T2 @, ]8 e
  39. /***********************************************************************/; h/ V  z/ A4 r  F5 I
  40. ( _' B% o2 q9 R, D! l1 B
  41. int  EQ_is_lt (double s, double t)# |8 y; p% O9 {, f& S

  42. - X7 p7 r/ f- r; r
  43. {
    - z- W: y; {- W

  44. : Z0 _# i9 |" ]0 ]
  45.   if (s < (t - system_tolerance)) { return(1); } else { return(0) ; }. ~# ~. h7 k! N' x" ~) O
  46. # r  h& a; D8 I
  47. }
    : h4 W$ u$ O5 R& O% E' Z' ?3 n0 E

  48. . o" q3 M, o+ Z' G# q. u
  49. /***********************************************************************/1 b  H! U1 @' b* _5 I3 Z

  50. $ u' ~, w% {# g. l& i
  51. int  EQ_is_zero (double s)5 Y% d/ s# Q. u8 t* B
  52. % j( E8 K; w/ v( Q. W5 ]; E
  53. {5 N2 a4 N0 k% |
  54. 2 }. w2 L- w7 U! P
  55.   if (fabs(s)<= system_tolerance)  { return(1); } else { return(0) ; }2 O8 K, k2 }- a
  56. 4 A+ H$ u, m6 p& }+ m" P
  57. }: @) f0 h$ Z1 f  w; {9 x8 ~( k
  58. & Q* z* T4 e) O; [. D* g9 [
  59. //=============================================================6 T+ c: E" J: ]  S" i
  60. 5 s8 b) k( y) b* s" W! T1 E. i. z
  61. double ARCTAN1 (double y, double x )* X: M! o1 C) ]6 N* d# r( ]+ m! U; g* p
  62. ! t# u8 A8 d3 I7 ^  P
  63. //#=============================================================. E- c8 G8 m6 c, e
  64. , q+ ?% s; ?7 j; |4 |/ c: C! S7 `
  65. {, F% @, p0 ]% z4 l
  66. 9 H6 m1 ], w/ m1 d0 \% i! T
  67.    double ang;0 N$ j5 a% ?7 u# T5 i
  68. - }0 g1 B# I9 ]
  69.    if (EQ_is_zero(y)) { y=0; }
    ; a8 k, e* {% G3 Y7 a7 }
  70. ! b( U0 Z% b9 @- d$ z
  71.    if (EQ_is_zero(x)) { x=0; }
    . z  L8 Q* X! t+ [2 v' D1 m* K: u

  72. + T! {) i) `0 u8 y  h' @
  73.    if (y == 0 && x == 0) { return(0); }
    - q- D: j0 q6 `; g" c
  74. % l# y1 u2 j5 b- W
  75.    ang=atan2(y,x);
    / ^$ C- j4 B6 P+ p, w7 m
  76. 1 w7 n% l. C# \! ~8 h6 W3 B
  77.    if (ang < 0 ) {
    ! e& s) P8 J' z( a
  78. * y2 ?) }0 D& s/ q4 X
  79.       return(ang + PI*2);8 C* p$ i- \7 _% x& t: |8 {8 P
  80.   L* u) b" L- ]* I  _
  81.    }% D3 K5 [5 b  h2 [

  82. 5 f: w. g  F! l
  83.    return(ang);& Q2 w9 O* T+ x3 c5 q! z5 X

  84. 4 a4 S9 o* \4 N2 Z
  85. }
    $ v& s$ L3 O/ v8 ~+ u+ }0 B

  86. " }" G, g  _( Y) P# D+ v
  87. //#=============================================================
    + A6 \8 G( m: F

  88. & l3 l% b1 G  Y
  89. double ARCTAN2 (double y, double x )
    ( e6 R+ r1 j0 s3 C
  90. ) L, H3 w8 {: o5 r
  91. //#=============================================================4 x3 F# d2 `! t0 z+ `8 _, `

  92. 1 Z7 ~5 `) Z) c4 y  T
  93. {0 `) W5 ]* b& B0 {6 W
  94. 8 {  t  B9 w4 L
  95.    double ang;- q1 q4 u" K: ]; Y4 x1 b! t1 I! ]" `
  96. ; F& N$ H5 J: I
  97.    if (EQ_is_zero(y)) {
    / o& f2 \  o8 G6 J7 h

  98. 9 d+ I6 N) O. U: k) S: _: D9 t: j5 S
  99.       if (x < 0.0) { return (PI); }
    4 J, l7 y6 Y" o5 Z
  100. 9 {* X! P, y  J8 L" _! l& q8 J
  101.       return (0.0);
    6 r* h; K4 a2 a
  102. , B) \. U7 I( m2 X2 y- \  M
  103.    }+ W5 y( `+ E; p0 E
  104. ! s% d: W/ x+ \+ }; `
  105.    if (EQ_is_zero(x)) {
    , h/ c3 ]; {3 H* l# f( `* Z6 U
  106. ! n  s, I9 ]3 Q: b5 X
  107.       if (y < 0.0) { return(PI*1.5); }! h6 I4 N/ O8 X7 j
  108. & k" [' c6 s: d
  109.       return(PI*.5);" p1 O# l! i- q

  110.   O% K$ Z! s$ M8 }" j  W
  111.    }$ r9 F3 S2 I* z
  112. , u9 N+ k) u+ R8 U; P  J- s! m
  113.    ang=atan(y/x);6 N' G7 E4 e- v9 u( _9 P% ]
  114. 0 n3 z( L, j3 E; ~
  115.    if (x > 0.0 && y < 0.0) { return(ang+PI*2.0); }
    ( z: f  Z; H1 D& G* v+ N& S+ z

  116. + m+ b" t: l, |
  117.    if (x < 0.0 && y < 0.0) { return(ang+PI); }. X) ?- M7 y3 s% k( X

  118. ! H" }0 f) G) ^' v4 ]
  119.    if (x < 0.0 && y > 0.0) { return(ang+PI); }
    2 i/ G7 E/ A9 _  I
  120. 0 D8 e* ^2 R- Z
  121.    return(ang);
    5 j, f; M9 Z# \
  122. , J2 _; j% q- J# u5 Q7 {4 w* i  o. I
  123. }  m7 E$ o. w+ l. |7 U$ g3 R2 J( }
  124. . F8 q9 j# o1 v# C3 v& I& {& d
  125. //#=============================================================9 R) D8 H6 z8 c6 n7 m: q& {

  126. + K# M& P( K( }* ~  i' t3 f
  127. double CheckConst ( double angle, double constvar  )
    % B0 D( p0 \- d5 b- U

  128. # Q" a3 b$ e7 x7 I
  129. //#=============================================================
    # R( ?$ y: \! Y2 d8 Z' n; b6 a

  130. 2 E' Q" B3 Z" x. x
  131. {) O4 {+ s# |( y: b
  132. + U4 R- l, S$ H
  133.    while (angle < -constvar) { angle+=constvar ; }
    & g+ B6 [: Q3 [% d
  134. . m8 J4 Y; O* b7 F+ x: @5 ?
  135.    while (angle >= constvar) { angle-=constvar ; }
    0 o7 @+ q! i! H

  136. ) a4 O' I) j9 R
  137.    return (angle) ;
    , C* G* c0 F9 b  D1 L! V
  138. . d5 _0 t! ^/ r1 a
  139. }4 F/ K+ h% L7 U& m0 a6 a
  140. * N& q2 g+ ~! t7 A" e7 d0 W  U
  141. //#=============================================================, Z4 D8 z- B' Y' H4 o3 T) b
  142. 4 g8 B% O+ Q; o# w8 C) j) e
  143. double Check360 ( double angle )1 c1 z. s# @( m) z9 E: A

  144. ' |+ T) d( J% z- G3 o& Y
  145. //#=============================================================$ n, a) @2 o) @9 B

  146. 3 X- M. }% Y% Y3 y6 }
  147. {
    * c, G) b3 D, C

  148. 6 y5 {. B9 H+ g
  149.    while (angle < -360.) { angle+=360. ; }
    2 d9 ]5 d- A- V8 c# Y
  150. # C' R3 B; g! Q' U
  151.    while (angle >= 360.) { angle-=360. ; }
    " J/ ?9 T3 _" @9 q/ F% V: {
  152. ' n& r+ P( a& b; w2 z" }' s0 s5 A
  153.    return (angle) ;
    % J  n- G, i" u! E, Y

  154. ( T# ]: Q+ I6 L6 s
  155. }3 }; S1 U) Q* v9 S6 `$ b

  156. $ |: `+ f6 c# ]& `  b6 U
  157. //#=============================================================8 d* C0 M5 ^; b; d( E  |4 R

  158. ! L, `' q2 v8 J8 O* K) |% k
  159. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit )5 O' T5 v; v( g  K% U
  160. % B4 `# X$ z8 k9 ?5 B5 `
  161. //#=============================================================
    , h% b) Z) s  P+ g

  162. 2 k' ?% S9 D- T: _& B
  163. {+ M! H, C0 W4 v- y# C9 ~: n$ ]

  164. . l2 ]+ t2 X. ]) k  `- m
  165.    while ((angle-kin_axis_min_limit) > 360.) { angle-=360. ; }$ x( ~+ {# j8 G2 s4 `
  166. ' {! }2 |1 p0 y- @2 y5 Q
  167.    while ((kin_axis_max_limit-angle) <= -360.) { angle+=360. ; }2 q! E0 [. S4 _+ [
  168. ( _; x& C& v  C2 Y6 I) X
  169.    return (angle) ;$ a5 M+ F5 H8 f0 l2 T, H: ?' J9 @
  170. ; |& ]% |6 @9 L* c8 D
  171. }
復(fù)制代碼

# F. x; w, |2 d* u- N以下為搖籃5軸計(jì)算過(guò)程代碼
" x" z1 Y2 H* H1 D6 ~
  1. i=sin(ang_rad[1]);  j=0.0;  k=cos(ang_rad[1]);5 W+ g( N( x# ?
  2. $ i  S$ E0 Z2 d. H; s% u( J& v$ o
  3.          j=0.; B1=0.; B0=0.;
    # ], ]9 b& H: _6 e: d

  4. 7 `: G/ Z6 C; q
  5.           if (EQ_is_ge(i,0.)) {
    & J; d( D' U! A' e
  6. 5 l0 {4 U9 S, r9 v' Y
  7.              if (EQ_is_gt(k,0.)) { B0=acos(k); B1=B0; } else { B0=acos(k); B1=B0; }' F8 p2 n- }  [

  8. 1 O3 u! V) T$ U( P6 a7 Z
  9.           }
    7 F! n4 a6 Y# H, Q

  10. % a# c1 ?" t+ I/ v3 D
  11.           if (EQ_is_lt(i,0.)) {' u% e% g( D; |8 f
  12. ( D8 Y2 y3 J( T
  13.              if (EQ_is_lt(k,0.)) {
    9 K' d/ [0 m. y& ]) C8 H3 K

  14.   L' I3 M3 W) `; b4 i4 v
  15.                 B0=atan(i/k); B1=B0+PI ;
    , F. |8 n# P0 @! l4 l( y/ O$ J

  16. : _9 X9 o- C* g5 S
  17.              } else {0 Z! h: a; m  z4 [8 N+ V* d
  18. 4 {( s3 b' H9 M1 {
  19.               if (EQ_is_zero(k)) { B0=-PI/2. ; } else { B0=atan(i/k); }3 E+ I- c8 N0 {9 D. u! L, l
  20. $ x* |+ H3 i( d0 n# L7 f: V+ P
  21.               B1=2.*PI+B0 ;9 ^- K7 \% b4 @$ t% ~
  22. & ^' q3 B" Q2 [. |" B- M
  23.              }
    # k3 W) ?, |- [

  24. 1 c- Z- @0 z+ |8 ]" f. g% z
  25.           }
    . q% k! O8 _0 k) s, _  a# W

  26. 1 r' h, u8 K$ {/ i9 f
  27.           if (EQ_is_ge(B1,0.)) B0=1.; else B0=-1. ;  |* v3 A/ ~2 Z. O7 E
  28. 3 E% F' s: y3 K
  29.           B2=(-1.)*B0*(2*PI-fabs(B1));/ Q5 d2 d6 D6 J( E) `% @8 `

  30.   s/ o' }, L' i0 g) O- A
  31.           ang_rad[0]=0.; ang_rad[1]=B1; ang_rad[2]=0.;. o; V( b4 G; }! l. K
  32. $ K1 V) H. d1 f
  33.           ang_rad[3]=0.; ang_rad[4]=B2; ang_rad[5]=0.;
復(fù)制代碼
. K9 o/ P  f- U; F
通過(guò)輸出的NC程序,反向輸出的刀軌數(shù)據(jù)與原始刀軌文件對(duì)比,其數(shù)據(jù)結(jié)果一致。
7 H5 R6 K4 ^' A
: ]. R! Y  V) Z  `) g( B5 F' B (, 下載次數(shù): 258) / x) A2 T8 P/ Q& I+ \- ?* c: r
測(cè)試結(jié)果:
4 I0 F( J' L3 T" B (, 下載次數(shù): 244)
+ ^- h" h5 t3 Z# C5 M) v# ]5 Q: F; m+ L6 G, c; ?0 j1 o0 W
反向測(cè)試結(jié)果 (, 下載次數(shù): 243)
, U& w1 g7 C0 B
作者: yucammayco    時(shí)間: 2025-6-3 18:53
謝謝分享
作者: 云與海的故事    時(shí)間: 2025-10-15 08:41
謝謝分享
作者: qms88888    時(shí)間: 2025-10-15 12:52
感謝樓主的分享




歡迎光臨 若楓后處理論壇 (http://www.connorswebguide.com/) Powered by Discuz! X3.5
主站蜘蛛池模板: 久久九九免费视频| 日韩精品综合在线| 久章草在线视频| 国产日韩欧美在线看| 日本在线观看天堂男亚洲| 国产成人免费av| 国产欧美精品在线| 欧美专区中文字幕| 欧美大片欧美激情性色a∨久久| caoporn国产精品免费公开| 日韩中文字幕在线免费观看| 日韩欧美亚洲在线| 欧美亚洲激情在线| 久久亚洲免费| 久久久久久久久91| 国产又粗又长又爽视频| 日韩在线视频线视频免费网站| 亚洲一区不卡在线| 亚洲欧美久久234| 日韩成人手机在线| 欧美日韩精品中文字幕一区二区 | 白嫩少妇丰满一区二区| av在线播放亚洲| 中文精品无码中文字幕无码专区| 在线精品亚洲一区二区| 无码人妻aⅴ一区二区三区日本| 日韩人妻一区二区三区蜜桃视频| 日本精品久久久久久久久久| 欧美乱妇高清无乱码| 欧美激情一级精品国产| 国产区亚洲区欧美区| 国产乱子夫妻xx黑人xyx真爽| 国产午夜精品一区| 国产又粗又爽又黄的视频| www.午夜精品| 国产成人综合精品| 日本在线播放不卡| 国产欧美日韩最新| 午夜精品视频在线观看一区二区 | 欧美在线一区二区三区四| 久久久久久艹|