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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

查看: 6705|回復: 3

[原創] APT刀軌數據生成NC程序C++源代碼

[復制鏈接]

432

主題

5755

回帖

901萬

積分

管理員

積分
9014165
樓主
發表于 2025-5-21 20:59:21 | 只看該作者 |倒序瀏覽 |閱讀模式

馬上注冊,結交更多好友,享用更多功能,讓你輕松玩轉社區

您需要 登錄 才可以下載或查看,沒有賬號?立即注冊

×
APT刀軌數據生成NC程序C++源代碼,本功能僅作為技術交流研究之用,代碼,功能可能存在缺失。需自行編寫刀軌數據的讀取與處理。以下僅為部分代碼以下為頭文件部分源代碼
  1. int  EQ_is_equal (double s, double t);: t* L9 z5 ]1 B( C/ s) C- F
  2. int  EQ_is_ge (double s, double t);
    / u. m; i4 C4 D: e3 U
  3. int  EQ_is_gt (double s, double t);& G' r1 U+ J& _% t2 Y
  4. int  EQ_is_le (double s, double t);
    ( g1 `3 \4 V9 _' z
  5. int  EQ_is_lt (double s, double t);
    & V4 Q: ?0 n' k5 `
  6. int  EQ_is_zero (double s);. U# D- }+ G9 X' V, G
  7. //=============================================================4 r! Z; |+ v& `
  8. double ARCTAN1 (double y, double x );6 `- B% T9 h! s4 G: m4 ^. N6 z* ^
  9. //#=============================================================/ C3 D3 A  g, T4 J' `# r2 o
  10. double ARCTAN2 (double y, double x );5 a4 c! S+ ?7 ]7 \# q
  11. //#=============================================================6 O0 |# ^* L4 n  J. y4 P- `- C
  12. double CheckConst ( double angle, double constvar  );
    % ]3 u: m9 g' N' o% \
  13. //#=============================================================0 c; Q+ i! D6 L& R8 q$ H
  14. double Check360 ( double angle );" @4 W# c8 D+ Q4 l7 Y2 ]
  15. //#=============================================================
    0 b7 \2 H/ q9 }. C7 j% h
  16. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit );
    $ O1 d: f+ c' q$ G. @
  17. //#=============================================================
復制代碼

& \' m( ~# u0 t9 m/ k以下為部分源代碼,用于判斷,計算角度等( t' t# [. C( z! [0 [) d, M
  1. int  EQ_is_equal (double s, double t)
    9 D8 n; @0 J6 T

  2. / g& o$ d" U0 q7 v
  3. {
    ( \; g8 n9 H4 q8 X* \1 q

  4. ' r$ L9 L2 [% n
  5.   if (fabs(s-t)<= system_tolerance)  { return(1); } else { return(0) ; }
    5 g3 g$ [+ o- L7 C/ E; N: e4 O" S

  6. ' U1 s5 r0 l' g0 x1 }( |* K
  7. }
    1 ^, {( p) s1 q8 C/ h
  8. 6 b# \/ b& |) l. \
  9. /***********************************************************************/, ~* T- F: m) n& ~/ h
  10. ! o/ Q% d; x% S, x; E$ ~7 S
  11. int  EQ_is_ge (double s, double t)! e0 N6 X& _7 z) {3 k6 u

  12. ( s% u2 }. K# d0 C& E
  13. {
    " X5 v: e7 i1 p- Q: W) V
  14. 4 p4 B2 k/ M8 B0 i
  15.   if (s > (t - system_tolerance)) { return(1); } else { return(0) ; }4 \/ A) X# {9 A/ R1 }2 P

  16. + M$ X: D  S" r+ A8 E# L2 r! ]1 x! D
  17. }/ {1 ?+ K9 G& I& O: A2 ~$ a) j

  18. 4 B: y" R) ]+ W# S) n' {3 M, {
  19. /***********************************************************************/2 X+ a6 R' C$ j

  20. , {5 d5 n/ y: u8 |5 z* r
  21. int  EQ_is_gt (double s, double t)
    9 t5 q: P" j! C% v1 g/ V7 a3 @
  22. 1 k% P* B+ M3 ]7 Z* V
  23. {
    9 e( o! K8 C  X6 F, _0 m3 w' N% @# r

  24. 2 o/ _  U7 G! }8 O" f* ^- x! [
  25.   if (s > (t + system_tolerance)) { return(1); } else { return(0) ; }
    & d# W+ N' e' f8 S( `! B! B

  26.   s% V$ o# V! ?& g' d+ O
  27. }
    2 x3 S+ o: e( ~2 B2 b

  28. 5 S/ {. x* q: }* i# S
  29. /***********************************************************************/
    % b: [1 |$ b# J' O  o

  30. 2 d1 }7 q5 g* d- q8 Y0 E! o
  31. int  EQ_is_le (double s, double t)
    2 J5 h! c6 `" [* W

  32. # Y1 V2 f/ ^- c1 O
  33. {
    ' A# z2 h' T, d# g
  34.   h$ q0 K/ |' q6 ~
  35.   if (s < (t + system_tolerance)) { return(1); } else { return(0) ; }& r; L9 v4 k2 Y: S; i' X
  36. 4 h; Z  j% V! K3 _
  37. }" C  f& U6 @3 |* V! ^! j1 ]

  38. ) M& R0 n# U# M5 U
  39. /***********************************************************************/
    : ~( F1 \! Y. y5 @

  40. 8 Y# y2 n7 H, j5 q6 E" Z- e* @) l
  41. int  EQ_is_lt (double s, double t)" w4 e# ^" ]* N9 I
  42. ; R; Z% B5 h/ k0 g& Q! L
  43. {
    1 ^6 e# a9 _0 |7 @

  44. * f8 R: @' q6 P* a$ R: _, u
  45.   if (s < (t - system_tolerance)) { return(1); } else { return(0) ; }5 ~3 O5 M5 ~$ D, r
  46. ; w" p2 f% o& ?  i& P/ |
  47. }
    - M5 `6 w2 |7 u# t
  48. 1 g3 f9 d' N) X, j: V7 q
  49. /***********************************************************************/
    ; }( E7 K0 g7 r6 O) r
  50. 8 q: }# x" g& {6 u- G- t/ j
  51. int  EQ_is_zero (double s)
    0 U' g( M: k* w+ ^2 |

  52. 0 \# }6 O) [! t  |( f) @4 U: w; d
  53. {4 m& V4 s- l9 z6 e2 {  D

  54. 2 D: q4 u- g1 b# g9 H# ]
  55.   if (fabs(s)<= system_tolerance)  { return(1); } else { return(0) ; }
      [( |4 {$ N: G
  56. * ]8 ~4 G- Z( X7 d* o
  57. }
    ( l! C* d  P) @, [
  58. 4 z" y9 Y3 R- E. A
  59. //=============================================================% D# T! P* B' J( i

  60. ; K1 ~8 V& {" N  T- j! x; m
  61. double ARCTAN1 (double y, double x )) N" W% R# |2 O

  62. 1 z  _- Y+ l' ^. `
  63. //#=============================================================
    * a. r" j3 f; b+ A6 J

  64. ) u; [. b; W4 M* d
  65. {+ b+ m# J% _* h3 {( M, _7 t0 B
  66. 7 S$ o" e; \9 h
  67.    double ang;
    3 x$ s* Y! F8 C: U3 G4 C0 W
  68. * r6 b1 V6 _9 [  f8 ~
  69.    if (EQ_is_zero(y)) { y=0; }
    8 `2 K. G$ p( S4 l
  70. ! x& t( A1 q$ s  y# F( Z# X
  71.    if (EQ_is_zero(x)) { x=0; }
    ! J7 f6 o" [# {- \# }5 @
  72. ( k! X  q" e/ T# `) s: m- H
  73.    if (y == 0 && x == 0) { return(0); }
    9 T; j. c+ z- m! S

  74. # w& M* S- V, I8 g3 L
  75.    ang=atan2(y,x);
    , j0 w/ M7 @$ S4 y8 V8 b

  76. + d8 J$ C: L4 u5 U% T! H
  77.    if (ang < 0 ) {
    * e) q  b& D0 V/ ^% I

  78.   S1 I7 v9 y" v4 B( b2 L! f
  79.       return(ang + PI*2);  [* m; Z$ ~+ O7 W4 |- x

  80. 2 H) y$ l' m& E0 K+ \
  81.    }
    ) {9 k4 W; _, ^6 R9 l$ Z1 R1 K4 t
  82. 7 j' p1 W* f& {" u4 J0 H# c+ R
  83.    return(ang);9 z# s& P" W" [) V

  84. ' n  t) R9 S1 {( o, [1 c& S! R
  85. }
    4 |& k1 j, x) ]$ {5 e1 I* p$ s

  86. 2 ?3 f: `, c/ K3 i2 i1 l
  87. //#=============================================================' l6 y4 h  P' N& L
  88. / z3 x0 y& c3 f3 _- U' ?, ~
  89. double ARCTAN2 (double y, double x )2 P- _" w5 K% f; J# a
  90. - _6 `( @& u8 R" R! V
  91. //#=============================================================
    0 V- I4 H6 ~- O) ?. G( W0 S
  92. ) |+ r' X9 p9 D4 p1 l
  93. {
    . s! o" q5 x$ g

  94. / f7 F) ~! ?3 O% X
  95.    double ang;0 }0 [( o" j9 \( |  x" ]* V* h

  96. 8 x% D3 z( u! ]. p8 b' B
  97.    if (EQ_is_zero(y)) {; i! x* q9 p6 z. y, I

  98. 6 g- r4 L' P/ }) N  l- r8 F
  99.       if (x < 0.0) { return (PI); }
    , x4 s# j- u3 C4 \
  100. ' j! @! y* m( _
  101.       return (0.0);! o& U" S# u- p2 d# }- H

  102. / i! H- w# \( T  L7 O! M' G' ~6 B  S
  103.    }
    6 K0 [& T. E4 i) j+ y0 v

  104. 9 t1 L$ o7 Q! F* F+ a2 ]/ S
  105.    if (EQ_is_zero(x)) {
    2 Z6 q# E; x1 @& L% }7 f, }) |
  106. 4 y( a* k7 O4 u
  107.       if (y < 0.0) { return(PI*1.5); }- j: V; M# G+ `& Q* Q! Y) W4 l: j
  108. 7 Y+ v! N6 p1 ^2 N) Q
  109.       return(PI*.5);
    $ h9 Y$ I) d+ w/ u: \
  110. / k$ b- m3 l3 V0 e  e3 h7 u
  111.    }! o  q' ^" D3 w8 ?% l, J

  112.   e+ R  E, n7 ^* M3 Q: V
  113.    ang=atan(y/x);
    2 _$ }3 p" z5 ?5 ?  L0 `" e( x

  114. ) r7 G' X/ a  s" L9 o. n" N' V
  115.    if (x > 0.0 && y < 0.0) { return(ang+PI*2.0); }
    9 Z. |, x9 s0 [( \7 w5 e8 s- G
  116. ' @1 s/ t% O  {! a) f8 @4 L
  117.    if (x < 0.0 && y < 0.0) { return(ang+PI); }5 X. S# r4 p- D6 c" ]1 k. x
  118. ! F" E/ I! i6 i& F" s7 ~: \
  119.    if (x < 0.0 && y > 0.0) { return(ang+PI); }" ^( u$ R1 E& p2 l/ a9 A
  120. ) x+ p5 u/ n  K- Y# ?, e
  121.    return(ang);# N  N# ~! ~9 F
  122. " p7 Y5 m1 R: \- w5 z- T
  123. }
    7 @5 n' ^8 E" ]6 i' r* M. A, \- x  e
  124. % V" {2 w, Z; z9 e! S  s2 Q6 j
  125. //#=============================================================
    ( P8 g* O8 v8 k5 m, l

  126. / A( s4 y3 `6 q+ h# D6 W# i& ^
  127. double CheckConst ( double angle, double constvar  )# C1 [& {4 q$ w1 Z( i  T" Z
  128. # x4 S4 T4 [! m  g; p4 d+ p
  129. //#=============================================================
    6 s- ]- q. l" H: l. I8 _
  130. 7 t3 h) t5 K' U  T" h* |
  131. {/ p4 f8 W1 s/ E3 l

  132. ) z; O# E; ^. k, G( V8 A0 J( i
  133.    while (angle < -constvar) { angle+=constvar ; }
    - y8 z$ H) n& U; {$ ]% m

  134. : E5 O, J+ X% d2 }) K0 \8 [
  135.    while (angle >= constvar) { angle-=constvar ; }5 u# z! f8 q. \$ a) H1 r" K) B# I5 n

  136. 9 p5 f9 \& I; h4 g
  137.    return (angle) ;  x4 C) E5 R. G! H- w' l  l4 _
  138. 1 ]+ a9 k# I+ b2 z
  139. }
    - z# S& L2 w) h2 B& R+ y
  140. ' q1 v& d' J8 H2 g# L9 Y' V+ v' l9 `
  141. //#=============================================================$ o" @0 z7 n6 `1 L
  142. & [7 j+ D2 w/ O. o/ w9 c
  143. double Check360 ( double angle )
    ) L& B' Z$ o: `8 c, @
  144. 6 d3 E. V$ ?& G2 ^  |( X
  145. //#=============================================================
    : G' U  L) C( t% W% F* d% T
  146. 9 ?: z0 P/ s* U5 e6 j+ l
  147. {# _: E7 a9 R% W% u

  148. $ N, z( T5 q" f: w
  149.    while (angle < -360.) { angle+=360. ; }" _1 B! i9 S0 C* m' S
  150. % `" {: T  D! Y6 k
  151.    while (angle >= 360.) { angle-=360. ; }) Z3 h5 ]: t$ B. z/ w

  152. ) _. ?: A5 x% |7 @; [
  153.    return (angle) ;
    . @5 @/ R/ q% J8 \2 d! i  X% Q

  154. ( J# ]  O. R9 l' g& @
  155. }9 S4 M6 d2 ^9 E
  156. & V# H' W; Y, o: D& x0 I1 ]! e; }
  157. //#=============================================================
    ; a/ f* I/ G+ B; a

  158. % F7 }4 i; c1 Q
  159. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit )
    ( [1 E- @, g% n, ?8 G
  160. 9 A; @. o- H* Q+ s9 I
  161. //#=============================================================( X5 z, ]3 T- ]
  162. ) Z1 Q) ?8 `) ], ^% l3 x
  163. {' @1 h/ ], v0 f; Y; j
  164. ! q3 [( U) Z$ U0 f( B
  165.    while ((angle-kin_axis_min_limit) > 360.) { angle-=360. ; }* @2 `5 J' ~7 A$ k. E. s

  166. 7 u4 @3 z# V" T  q8 d$ i, I+ ^( U- ~
  167.    while ((kin_axis_max_limit-angle) <= -360.) { angle+=360. ; }5 \( t9 ^( q' j7 D# o4 ~' E% |
  168.   M: d' s4 Z; U: v2 v" s5 B
  169.    return (angle) ;$ L8 ?; k1 p  G% I1 t% {- n' }; r* ~
  170. # V7 Y$ [. V6 Y7 w" L5 Y
  171. }
復制代碼
4 J* f/ \- N! Q! _0 a3 |: c
以下為搖籃5軸計算過程代碼
8 a: j6 x6 a: S7 L4 N4 M1 \
  1. i=sin(ang_rad[1]);  j=0.0;  k=cos(ang_rad[1]);
    . C. G2 `2 Y: ~$ y
  2. 9 Z# G, j$ `; @$ J. a+ A3 G9 E
  3.          j=0.; B1=0.; B0=0.;/ O# N  s2 d7 v
  4. + @; J9 R. P( ~
  5.           if (EQ_is_ge(i,0.)) {
    + Y% f; j/ ^& ]" H$ i9 K( \

  6. - j/ r8 Y- D9 l) `4 K
  7.              if (EQ_is_gt(k,0.)) { B0=acos(k); B1=B0; } else { B0=acos(k); B1=B0; }
    - C  I3 j, x& _
  8. . }0 I9 m& f: |1 B2 f5 r
  9.           }
    & l# K1 \# g# Z+ p+ g) \! O! D6 }# e
  10. 3 @- o! X, |8 O; t
  11.           if (EQ_is_lt(i,0.)) {# Y( Z) P; @; g) O/ g+ h: E

  12. , J4 i3 u7 A! e
  13.              if (EQ_is_lt(k,0.)) {
    $ j/ t6 x: P) \; v; W
  14. 6 i1 g7 _9 c/ S7 i) R0 n, d
  15.                 B0=atan(i/k); B1=B0+PI ;& [. i# s/ [$ U7 y6 b. M5 f

  16. . g3 e4 w( N3 \& I4 a
  17.              } else {1 F* [6 |% r. D5 Y7 A
  18. * p  A. k4 {8 F. S, r: e
  19.               if (EQ_is_zero(k)) { B0=-PI/2. ; } else { B0=atan(i/k); }
    - |" q9 H, ]2 I8 {4 @6 S

  20. ! I1 M. E9 P; `2 |8 N! g
  21.               B1=2.*PI+B0 ;  T+ S! ^% T$ {) j" R4 r& f6 U* p

  22. & z$ ]% p! Z7 W
  23.              }: ^& G6 c$ S' W& |3 t5 m
  24. + h- ^: R9 k, Z1 \) u. A! D
  25.           }
    * c6 m/ {  H4 e' U8 Q' p
  26. : C6 ]- ^: f2 O8 R) C- h
  27.           if (EQ_is_ge(B1,0.)) B0=1.; else B0=-1. ;; E( Y6 g% ^; ^+ W
  28. * S$ E+ X. C, l' ~* R
  29.           B2=(-1.)*B0*(2*PI-fabs(B1));, K# I8 T) V0 T4 `7 f& w, T) L; T
  30. 3 L6 @2 Y! Z+ @; U- _
  31.           ang_rad[0]=0.; ang_rad[1]=B1; ang_rad[2]=0.;
    + b' g2 c6 T- B% C, N5 x5 Q
  32. , b1 e3 _( b( m/ F
  33.           ang_rad[3]=0.; ang_rad[4]=B2; ang_rad[5]=0.;
復制代碼
8 D6 `7 N4 w% G" B; K
通過輸出的NC程序,反向輸出的刀軌數據與原始刀軌文件對比,其數據結果一致。6 `$ {$ K3 F0 H1 M
0 f. e5 v' ?  W. l
6 e- m* w6 e( b; r& J: V' O
測試結果:
. Y, @" _9 w3 |  Z) M) i
1 o2 O& c& r" n" a0 x; U8 F6 x: d& j) b0 d  G5 m
反向測試結果
2 D8 {* G3 I3 W! X8 G

0

主題

25

回帖

17

積分

新手上路

積分
17
沙發
發表于 2025-6-3 18:53:03 | 只看該作者
謝謝分享
回復

使用道具 舉報

0

主題

293

回帖

329

積分

中級會員

積分
329
板凳
發表于 2025-10-15 08:41:53 | 只看該作者
謝謝分享
回復

使用道具 舉報

1

主題

136

回帖

191

積分

注冊會員

積分
191
地板
發表于 2025-10-15 12:52:53 | 只看該作者
感謝樓主的分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關閉

站長推薦上一條 /2 下一條

QQ|Archiver|手機版|小黑屋|若楓后處理論壇 ( 蘇ICP備11015087號-1|蘇公網安備32059002001368號 )

GMT+8, 2026-2-21 11:18 , Processed in 0.268240 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区中文字幕 | 男女爽爽爽免费视频 | 欧美一级二级三级视频 | 免费在线播放 | 热久久久久久久 | 蜜臀久久99精品久久一区二区 | 国产一区二区在线视频观看 | 欧美久久久久久久久久久久 | 日韩一区网站 | 亚洲三级在线观看 | 麻豆黄色片 | 免费的黄色大片 | 日本精品久久久久 | 亚洲日本中文字幕在线 | 欧美日韩另类视频 | 午夜国产小视频 | 性欧美日本 | 大地资源二中文在线影视观看 | 毛片最新网址 | 国产八区 | 丁香激情五月 | 老色鬼av| 成人免费视频国产免费网站 | 色综合五月 | 麻豆精品在线播放 | 狠狠狠久久久 | 国内偷拍久久 | 亚洲视频免费播放 | 欧美激情视频在线播放 | 成人深夜视频在线观看 | 视频国产在线 | 日韩在线视频网站 | 中文字幕欧美一区 | 又黄又爽又色视频 | 免费毛片视频 | 中文字幕一区二区三区在线观看 | 欧美另类一区二区 | 天天躁日日躁狠狠躁喷水 | 国产精品久久久久久久久动漫 | 亚洲二区在线观看 | 综合网伊人 |