亚洲精品自拍偷拍_欧美八区_天堂中文资源在线_99热超碰在线_伊人亚洲精品_日本中文在线

若楓后處理論壇

標題: APT刀軌數據生成NC程序C++源代碼 [打印本頁]

作者: 若楓    時間: 2025-5-21 20:59
標題: APT刀軌數據生成NC程序C++源代碼
APT刀軌數據生成NC程序C++源代碼,本功能僅作為技術交流研究之用,代碼,功能可能存在缺失。需自行編寫刀軌數據的讀取與處理。以下僅為部分代碼以下為頭文件部分源代碼
  1. int  EQ_is_equal (double s, double t);9 _, v0 ^9 z; T9 r; O
  2. int  EQ_is_ge (double s, double t);5 [/ h, \6 F2 S
  3. int  EQ_is_gt (double s, double t);5 f7 U7 B# g8 z' q$ {
  4. int  EQ_is_le (double s, double t);! X4 L" D% F8 l. ?  ?% S
  5. int  EQ_is_lt (double s, double t);
    7 T' h0 A8 `6 @& F
  6. int  EQ_is_zero (double s);+ u) f, Y5 b# d- K- j
  7. //=============================================================
    8 I* L( w: C( r2 G. {( M
  8. double ARCTAN1 (double y, double x );7 Y$ k) P! q6 u0 T! q
  9. //#=============================================================1 d$ Q9 C; o5 i9 F3 D+ ?' @
  10. double ARCTAN2 (double y, double x );, G3 G, Z9 Z( w0 K
  11. //#=============================================================( @9 \2 g+ b" x/ J) u. q
  12. double CheckConst ( double angle, double constvar  );
    & ^$ f2 V0 E" H" y2 w# |7 q5 U
  13. //#=============================================================$ g* V/ e) @" Y4 K# ^
  14. double Check360 ( double angle );
    ! g$ D/ S( J. f, t7 M; t
  15. //#=============================================================. ]& ?- D  f4 ~1 `. B
  16. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit );
    5 K8 L9 d- V. w+ g" e5 z# Z& P8 E4 y
  17. //#=============================================================
復制代碼

2 d  i. u7 z/ q4 q- R2 t以下為部分源代碼,用于判斷,計算角度等
" Z3 M" \: O$ u# S, y
  1. int  EQ_is_equal (double s, double t)8 _, G" e: k( ~7 g) O& x- V

  2. 3 N, H5 v; E  _! Z0 q& e$ M6 N! V% ]
  3. {( L6 T, ^: {' m1 Z$ x
  4. 4 X* p$ k/ T+ G8 _6 V  C
  5.   if (fabs(s-t)<= system_tolerance)  { return(1); } else { return(0) ; }
    # t1 l3 {* X" S: i
  6. 5 c, B: f1 j( j. I# T
  7. }. |6 q# Y4 \4 {
  8. * h4 c* }6 S( S5 y1 S: h) d/ v
  9. /***********************************************************************/
    ' g1 T" [1 M: h$ E9 k; J8 @
  10. 4 F+ m/ D" j6 U5 c  j& ]
  11. int  EQ_is_ge (double s, double t)
    7 I3 o) d* M8 a! F: ]& D

  12. : Z/ D: ^3 T; F' ]1 d1 W
  13. {5 w2 k5 K  k' N' h0 `# i; H

  14. ) x  D1 I% A) v3 }2 A0 y/ m
  15.   if (s > (t - system_tolerance)) { return(1); } else { return(0) ; }: y5 |# G; }" Z' J

  16. 2 A7 W  }" b( Z! n  W5 J9 V. Y
  17. }
      j2 ?) e  X5 |7 s
  18. 4 }% E, M2 H4 w$ C
  19. /***********************************************************************/
    2 w7 u) `' K% i2 i
  20. ; F# w" \; k9 d# W2 J+ z
  21. int  EQ_is_gt (double s, double t)
    # o+ ]5 y! r9 d+ M- r3 u+ j+ B

  22. : T2 F7 b9 k# S6 q: |
  23. {
    $ g* S* [4 d5 E, X, p4 L) N
  24. - |$ l: J; N, ]. g% s2 ~) B& \9 Q
  25.   if (s > (t + system_tolerance)) { return(1); } else { return(0) ; }
    ! W+ d/ A. O: }9 i

  26. ' H5 j$ \$ P% a& j& _% m& M
  27. }/ ~3 c: X( M. Z
  28. 4 e. [% N/ e6 R; _4 w$ _) I
  29. /***********************************************************************/
    7 T2 f. V- t9 s9 _8 w! A
  30. ! G" }& _$ m* d9 C9 Z9 S
  31. int  EQ_is_le (double s, double t)1 m6 z+ J6 a; ~7 ~. m6 K2 I( Q

  32. 5 N8 {5 K6 l2 o" }* d$ {9 R
  33. {& d" i* D) |$ S4 S$ n4 _1 P  q

  34. * h9 U8 N% O3 ~) i; F
  35.   if (s < (t + system_tolerance)) { return(1); } else { return(0) ; }
    7 D5 K3 L% I, e) X/ k
  36. & n& {) m2 j' E  a
  37. }
    * J* _  l1 n' I1 U$ G
  38. 6 t" ~; n1 |0 y+ b1 h1 B
  39. /***********************************************************************/
    # n7 S( l% @$ d$ L8 n; D
  40. 9 t& ~* c, l# m' P- W7 `
  41. int  EQ_is_lt (double s, double t)# i. B6 n6 v. z  z) k$ a0 C0 w$ V7 P
  42. % ]3 J, v. u. L0 K
  43. {
    . A! i* f& U" T: R/ }

  44. " F9 s7 x7 b4 j$ p" c
  45.   if (s < (t - system_tolerance)) { return(1); } else { return(0) ; }
    ) H# j% `7 H/ l* W2 J

  46. ) Z0 Q/ o# f5 t
  47. }1 f- W- B# R1 L, C9 l1 x/ r% Z* @
  48.   N+ r, f' ]2 V# p  q1 g# q
  49. /***********************************************************************/2 @; x" C- P; V" w& ~
  50. $ O  I) k& [( }! c$ m7 z/ v
  51. int  EQ_is_zero (double s)
    % v7 e$ _! m% _

  52. % m$ k8 n0 t* D# f2 g
  53. {
    & ]/ d# H$ B) B1 d
  54. 3 ~4 }; h6 K2 |. N+ `- z
  55.   if (fabs(s)<= system_tolerance)  { return(1); } else { return(0) ; }
    5 z" X& n( a+ y6 H# H0 r2 h# Y* ^$ [

  56. 7 W1 {. M* ~7 C; i( K9 W/ k% _2 c
  57. }" s* d1 V- Z6 w. V6 I

  58. 4 \. T+ b' [4 X: \% \$ {% Q9 H
  59. //=============================================================
    0 ]3 ~0 S' i( X' B" g) ^, k# H: U' G
  60. 7 a. Z* Y6 }& ?: D. @
  61. double ARCTAN1 (double y, double x )
    & Y. p5 ~5 v4 p9 B
  62. # z" r' W' Z' A
  63. //#=============================================================8 h% ]0 [# t2 P: f
  64. - M! r  }. {; e
  65. {" O- c6 U" i9 w$ \
  66. % ^; R6 X- g/ y5 A! {
  67.    double ang;  G- k5 D5 h, w1 o4 _. r( `: [
  68. # l) O8 f6 a- k& l6 T
  69.    if (EQ_is_zero(y)) { y=0; }, `( E9 m- y% W  ~
  70. 9 d: D+ i+ f: O: z# t9 ]
  71.    if (EQ_is_zero(x)) { x=0; }) L  z) t6 y  q% E# E4 L& l0 u- a
  72. * w" J2 N/ x, @4 n) [
  73.    if (y == 0 && x == 0) { return(0); }* R8 d2 p, [8 ^1 `# H: L* z
  74. 6 O& p$ w, @1 {1 {
  75.    ang=atan2(y,x);
    1 o3 @  E9 a5 \! e! Z0 e" f4 b

  76. 6 {. ^6 ?/ |/ j8 O7 o$ W# S: n4 }" \
  77.    if (ang < 0 ) {
    $ v" g/ S. O8 @
  78. % i* \8 @* u# x5 ?9 P
  79.       return(ang + PI*2);9 M" Z% H2 {5 P$ J; U4 [7 |
  80. / o' t4 R  X7 V& B
  81.    }
    6 v5 r" i! P, N9 ~. e5 K  Q
  82. 8 h% t1 r% U' m& [; D; M
  83.    return(ang);
    0 m7 D7 D' `( q

  84. / @1 r3 }; e) u5 K- S( g
  85. }& F5 A# h: y1 R; U2 p
  86.   x) A: e2 c+ x6 T
  87. //#=============================================================; y7 Q. L7 T  ?1 o% X5 }
  88. 6 S: o. F1 v3 i9 `$ C% @  l$ F
  89. double ARCTAN2 (double y, double x )
    0 C) }5 q/ m' g  c: Z, t

  90.   y% v+ i7 ~% J4 `
  91. //#=============================================================5 }" C( J, H7 Q& W6 K2 e- D
  92. " u" E: H8 I7 L8 S4 r' o, k4 g
  93. {
    * Y* [3 v- J* Y, f) c
  94. 2 u  t; |) ~1 v+ }8 i) K
  95.    double ang;
    + k8 C+ Y- T2 b% X* w( E7 _* }

  96. ! P! `* ]9 v( @6 n: q: C- y
  97.    if (EQ_is_zero(y)) {  R  T  }+ h3 o# m7 i2 Z6 r( O9 o
  98. : k2 _. U: \% W9 O) T0 m
  99.       if (x < 0.0) { return (PI); }
    7 F8 I! M! l+ a( s
  100. 8 u6 S2 B; i' e- h. n3 j
  101.       return (0.0);
    # q' \; h6 s7 Z% e2 m  E
  102. # L$ Z5 @# i8 f1 n9 T- w- P% [
  103.    }" }/ D1 K% H6 m0 w

  104. ! r; C' o, u  T9 S/ Z; m+ l
  105.    if (EQ_is_zero(x)) {7 \  n1 I. s2 R% ~: U! W5 W
  106. ; r+ v. v6 _' A0 S
  107.       if (y < 0.0) { return(PI*1.5); }, ?% E% S& {9 _1 a' s

  108. . `& }, V4 ~2 d- x0 Y
  109.       return(PI*.5);
      o) S  w: W" l  i: P4 ~3 i- H$ u

  110. $ R+ K, f! ~1 }0 l
  111.    }
    5 _4 E3 j3 Y" h* t* E
  112. , a" t$ ^9 F; l# H4 _) J
  113.    ang=atan(y/x);: B1 s- D  }6 T: l, a. n
  114. ) K) t6 V* W& I
  115.    if (x > 0.0 && y < 0.0) { return(ang+PI*2.0); }3 b3 c$ @: L" m0 ?

  116. / ]+ ^9 q3 ~7 i7 T% _7 k# r' u
  117.    if (x < 0.0 && y < 0.0) { return(ang+PI); }9 x+ n! n$ m3 U2 _) j& V) _& T
  118. . L1 t4 A3 R( k
  119.    if (x < 0.0 && y > 0.0) { return(ang+PI); }# |* A! g0 ?- i2 o, x
  120. 7 \) V: J5 I; k
  121.    return(ang);5 L; S1 R( L& A! K1 G# c4 ]
  122. 1 q% d, F: O& N4 ~7 o+ |. A
  123. }. j, }# r% ^# `0 [( r( i

  124. ' l7 r9 `; D# @2 v
  125. //#=============================================================
      I3 A  ~% v2 Q8 V1 m) ?
  126. + w( y8 i4 p' f, U% y- |" j
  127. double CheckConst ( double angle, double constvar  )3 W4 t0 H; D* G2 {/ b

  128. ) I: u' D8 `# i$ [5 C! z+ W
  129. //#=============================================================
    , L/ V  F. g; w7 o5 [0 P' J+ [: l

  130. ( a) `. A" I- L( f2 S# B
  131. {8 ?6 t% G1 J; b9 r9 n* N
  132.   ^: h9 K0 a* H
  133.    while (angle < -constvar) { angle+=constvar ; }
    # T5 T2 g* {9 }
  134. 1 b+ G4 {5 C: a( N5 S( U
  135.    while (angle >= constvar) { angle-=constvar ; }0 X6 J9 g, L( J; Z+ _( ?- Q

  136. * W, Q* W8 g! b
  137.    return (angle) ;# a+ f  _  f7 ]1 R! w# M0 m4 l) {9 r

  138. 5 H8 D+ ?& v3 j; u  i+ {$ X
  139. }  I# ]/ x* L/ ^* i% u" p! \% }& f
  140. # i. L0 {* @& s# E+ L* A
  141. //#=============================================================
    ; q2 I2 K5 f5 c* C

  142. 3 o6 l: i/ S5 q9 a3 n, @  Z
  143. double Check360 ( double angle )
    7 ], a) t, I& H
  144. ) E9 U3 M$ z" i2 z" `! F
  145. //#=============================================================3 T, ^) L# p$ t2 `" u1 T
  146. ; G4 [# O/ A4 Z( x9 U1 k
  147. {. ]; R, r% d' g8 `
  148. ! z2 t2 q$ V9 u) I! x0 Q/ {
  149.    while (angle < -360.) { angle+=360. ; }, V' J6 y+ n1 T7 l9 c: O. m

  150. # K. c( t- v" [/ _3 k/ }4 {/ V5 z
  151.    while (angle >= 360.) { angle-=360. ; }! F* }- u) A* Z4 V

  152. : ^' c, r1 f2 n
  153.    return (angle) ;! U5 @8 q; {2 q5 ^' z
  154. 5 I2 B( W0 O1 i6 i* k
  155. }& P5 r& c7 x# z
  156. 3 f0 O! f% D: C4 `( ^
  157. //#=============================================================
    * x4 ~! b+ l  u8 A* ^/ H8 U# K2 \
  158. $ Q2 P' D* N' U) i' D6 G+ H" C8 I
  159. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit )9 K: G, u0 S! y6 U( F
  160. 5 s% Z8 ]- D1 L+ O8 f
  161. //#=============================================================
    4 p9 M: D1 X) u1 b" M
  162. 1 h, u# r1 N, D
  163. {
    " y! z) {: ?# M' N) `4 I& W2 \
  164. ( t$ I3 m! P1 n% t, C
  165.    while ((angle-kin_axis_min_limit) > 360.) { angle-=360. ; }
    ' H5 ]8 e! ]0 n7 t

  166.   |2 a% }, `* n6 N0 i
  167.    while ((kin_axis_max_limit-angle) <= -360.) { angle+=360. ; }, v) g% n% R- W! h5 E

  168. & |6 t  c6 s( H7 @9 w; M
  169.    return (angle) ;. z. n; x. Q4 {! |9 W' o& L! }4 M5 y

  170. ) q! Y% |/ r. `9 k) t# `
  171. }
復制代碼

; o. b+ L3 N& `6 z2 u4 ~; c+ P以下為搖籃5軸計算過程代碼
& Z1 D: }) [8 y2 K& N# G7 r; N  P( ]
  1. i=sin(ang_rad[1]);  j=0.0;  k=cos(ang_rad[1]);, l; n0 T* M; c# w% p0 z
  2. 1 z, T2 @% z( }* I# E; x2 P$ _
  3.          j=0.; B1=0.; B0=0.;
    8 u4 y. i3 h2 l9 ~3 D% d" _
  4. . a8 i  @8 Q8 a- U
  5.           if (EQ_is_ge(i,0.)) {* x; {# M/ I3 M" y

  6. % x8 I$ n: U1 F8 S
  7.              if (EQ_is_gt(k,0.)) { B0=acos(k); B1=B0; } else { B0=acos(k); B1=B0; }
    % u6 _) ~0 g/ `7 P3 a
  8. " ^9 o& p& s& G, X2 A. N$ t6 V
  9.           }
    , Y' r! s* f  }7 R' R$ @

  10. ! Q: g) h6 R% T  K2 d0 ~
  11.           if (EQ_is_lt(i,0.)) {2 o% j# f5 P7 @" t" N

  12.   v( c$ {; ]$ x! u% b/ t
  13.              if (EQ_is_lt(k,0.)) {
    ) |7 @; y) {/ I* b# j6 ]

  14. ) ^6 ]( Y' w" h* o8 h
  15.                 B0=atan(i/k); B1=B0+PI ;1 y6 {$ v  I- U
  16. ) I' k+ u2 C" m5 a- Q- k8 i
  17.              } else {" ~  q  y1 G8 G+ J9 s/ o" D8 r

  18. 6 c) c0 l0 `' h2 Z3 I  X
  19.               if (EQ_is_zero(k)) { B0=-PI/2. ; } else { B0=atan(i/k); }+ \, Z$ Y' Y0 v8 j! ~

  20. $ s# w" h; g; g2 G
  21.               B1=2.*PI+B0 ;  S7 J- N# B) f; G7 L* P  s" X

  22. " k: Z+ d8 |  F& I
  23.              }
    $ W2 Z* b$ Q  Y8 P' s6 m) q: K5 a
  24. - L  w* m8 ?2 D: u. E
  25.           }" J/ Q$ O* a. s* K& H
  26. 0 j4 j' q: ?4 d7 e9 m6 {
  27.           if (EQ_is_ge(B1,0.)) B0=1.; else B0=-1. ;" K' D3 l8 u7 q! J4 @9 L5 B, H
  28. 9 \+ B! M( y8 U& k' C, q
  29.           B2=(-1.)*B0*(2*PI-fabs(B1));
    ( k/ l7 r  W# G  j
  30. & ]- e, [2 d( Z; J( s' c
  31.           ang_rad[0]=0.; ang_rad[1]=B1; ang_rad[2]=0.;
    # F1 a7 E6 T2 V5 Y
  32. ) }, d: H% n8 a" Q) ^# r
  33.           ang_rad[3]=0.; ang_rad[4]=B2; ang_rad[5]=0.;
復制代碼
8 [1 ]% A/ i# j" f
通過輸出的NC程序,反向輸出的刀軌數據與原始刀軌文件對比,其數據結果一致。
% `; d8 c, V2 \6 p; e5 t3 |5 _6 e- X1 ~2 M1 C5 o5 J- q2 _
(, 下載次數: 113)
# [& ]5 B# Z8 r測試結果:
. N* o; N9 t: K- G (, 下載次數: 107)
9 ]3 r( _9 h. W8 E5 Y
1 |$ X+ J  j$ l. X' M4 h( Z反向測試結果 (, 下載次數: 115)
' d2 H- V4 w* V8 n+ F3 i, z
作者: yucammayco    時間: 2025-6-3 18:53
謝謝分享
作者: 云與海的故事    時間: 2025-10-15 08:41
謝謝分享
作者: qms88888    時間: 2025-10-15 12:52
感謝樓主的分享




歡迎光臨 若楓后處理論壇 (http://m.886378.cn/) Powered by Discuz! X3.5
主站蜘蛛池模板: 国产精品99久久久久久www | 色丁香久久 | 久久久成人免费视频 | 日韩精品1 | 国产日韩视频在线观看 | 欧美成人免费观看 | 欧美日韩精品国产 | 国产黄大片 | xxxx操 | 亚洲免费福利 | 一区二区三区在线免费观看视频 | 久久在线看 | 一二三四国产精品 | 免费av在线 | 五月婷婷六月天 | 国产午夜网站 | 久久久影视 | 免费欧美一级 | www.日韩av.com| 黄色w站 | 免费的av网址 | 亚洲激情自拍 | 成人aaaa| 午夜精品免费视频 | 爱爱视频网站免费 | 亚洲视频99 | 丁香九月激情 | 欧美激情网 | 在线观看免费黄视频 | 国产欧美网站 | jizz在线免费观看 | 欧美日韩后 | 青青视频二区 | 久久理伦 | 国产第一页在线播放 | 国产精品成人免费精品自在线观看 | 久久伊人99 | 久久精品在线播放 | 欧美国产在线视频 | 岛国久久久 | 久久黄色一级视频 |