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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

查看: 6708|回復: 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);
      V4 c! N& F( c1 J
  2. int  EQ_is_ge (double s, double t);
    1 O# }6 I2 v6 c% l
  3. int  EQ_is_gt (double s, double t);
    & P) r  ]7 e1 ?( n2 z( p: U
  4. int  EQ_is_le (double s, double t);  b9 u% A+ V* q  T; h* K, u
  5. int  EQ_is_lt (double s, double t);
    8 M, B* S6 c4 d* ^5 c) L) T& j) g
  6. int  EQ_is_zero (double s);
    # V! `$ u3 a4 J7 ?4 G
  7. //=============================================================% @# v8 n! V7 q4 e! m" j. B+ h1 U
  8. double ARCTAN1 (double y, double x );
    5 Y; b  C4 C9 g4 s% f$ d
  9. //#=============================================================
    " z  l2 m- X7 t: ~; u- f5 t
  10. double ARCTAN2 (double y, double x );
    7 H+ k6 _4 T% m% q
  11. //#=============================================================
    6 }% k9 P: m# u/ p2 Z4 \/ p
  12. double CheckConst ( double angle, double constvar  );
    . U1 M) z1 }6 M
  13. //#=============================================================
    # F  b; g1 G( X1 c& L# ]7 m
  14. double Check360 ( double angle );
    2 m, _7 N' p$ {' c6 y7 M$ ~
  15. //#=============================================================
    ' \# z1 J+ m( Z1 d6 p! v
  16. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit );
    + k* |+ ^2 q" C2 [% \; X5 E
  17. //#=============================================================
復制代碼

/ Y7 u4 j4 a. P/ E以下為部分源代碼,用于判斷,計算角度等
# F9 M8 \# e- h4 J, @: K
  1. int  EQ_is_equal (double s, double t)
    . J9 A/ N0 d3 r# k* A6 u- Z: ?
  2. . z9 q9 g1 Y5 x  v  ^
  3. {
    " t& W. F/ D! W! [
  4. 0 d% `# u/ I: s& ~/ K; H; o
  5.   if (fabs(s-t)<= system_tolerance)  { return(1); } else { return(0) ; }
    1 v: c3 ^$ u. G9 ~4 e
  6. - ~7 k0 m7 x1 N2 e) G" L8 H' {1 ^
  7. }& p% c- q6 Z4 I9 L3 ?4 v" o) `$ x" E) N

  8. * e& J6 @/ S8 K7 U# f# k2 c- U1 S
  9. /***********************************************************************/9 {, @& K5 N: k

  10. 7 ^2 o; L' {) w4 A
  11. int  EQ_is_ge (double s, double t)
    / P( p$ j0 i% ]* l0 s  e1 B# u

  12. $ t$ F  w3 |7 q) E- n
  13. {" e% M" S6 K& n3 t" G
  14. + K, g6 A( i& Y6 f9 i
  15.   if (s > (t - system_tolerance)) { return(1); } else { return(0) ; }
    : \, X# \2 }1 U% l# q

  16. % ?* n* A  Q6 \6 e7 Z/ T1 d
  17. }
    6 ~% E2 }1 ^) U8 C* _
  18. " l0 }; }. T! f  i; M
  19. /***********************************************************************/
    1 n, V& J: b. I# }. _! U5 k& k4 m
  20. 2 c) W% q% r1 G# h
  21. int  EQ_is_gt (double s, double t)
    7 G, h/ T! c. K+ F+ I5 h8 p2 l

  22. + y+ W, f/ M+ U, y$ r  h' }, J! {4 P8 B
  23. {8 d" B7 Q9 ~8 }, I: j
  24. $ j% y8 b: V- D8 C0 M8 Y/ j4 f
  25.   if (s > (t + system_tolerance)) { return(1); } else { return(0) ; }6 ]/ u- \. E2 `  P% U: P
  26. 0 [, S# X8 F  |: K
  27. }
    2 Z- i: J3 l, R3 V
  28. " w* K5 Z! M% A$ j2 m& u
  29. /***********************************************************************/
    / L! m  F) h" K: {3 e
  30. 2 }9 r* @, o* s4 i2 ~8 D7 e
  31. int  EQ_is_le (double s, double t)9 _6 G  M+ z7 I9 V' j' k
  32. ' F' J$ ]  ^5 m! N! |0 }) q
  33. {
    3 ^! h  N2 X0 q! @2 A
  34. , T8 j5 z9 Q& I: Y0 n) D
  35.   if (s < (t + system_tolerance)) { return(1); } else { return(0) ; }
    " B& k  o* E9 U* V3 l
  36. , Y, O+ O' C7 {$ ^) V
  37. }
    # }! w; p2 h1 |# z
  38. 6 }% L; ^* T$ [6 o& i
  39. /***********************************************************************/
    4 P/ n4 x% g" g3 P/ _
  40.   A6 A% l/ p: Z* z' [0 g
  41. int  EQ_is_lt (double s, double t)
    - g- i, H' Z, `% H3 S' e; R

  42. 0 w/ v% z" Q' w$ ]" ^  ^
  43. {$ [. V6 }7 c% b2 T2 ]6 X6 B3 Z4 }
  44. 3 O/ M4 u: s( v" a* ]. b' {
  45.   if (s < (t - system_tolerance)) { return(1); } else { return(0) ; }
    1 ~$ `5 I1 H5 y* B. `

  46. 3 @1 Q( W9 H1 ~
  47. }
    * w1 `& r! \2 [. c

  48. ' S9 X# A  G8 U1 _
  49. /***********************************************************************/
    7 G3 S8 T2 S5 m/ ~; |$ j/ r1 Q

  50. 1 F4 \) i; w3 s2 x) m
  51. int  EQ_is_zero (double s); v# B6 g! b. S: z8 x! @$ K# g. |

  52. # u( s! p5 S) u) U- X2 T' {( g
  53. {
    + N* }0 A& m8 |% j- B# m

  54. - y: F& s9 x7 d, L, |
  55.   if (fabs(s)<= system_tolerance)  { return(1); } else { return(0) ; }1 P, \& i3 Q  a4 x3 N, ]7 z

  56. . x& I9 `  `0 z+ ~
  57. }
    ! b" y' C1 B" \$ e

  58. 0 ~4 S7 v3 w, q9 T3 Y0 C/ ~; ]1 x
  59. //=============================================================
    & |8 T! G. I8 E( z, [' P
  60. : y* l) |6 {; h) `
  61. double ARCTAN1 (double y, double x )- c/ r% P/ q( D9 g6 S3 W5 `, r. ]

  62. . m7 W0 g7 t" M1 e0 R
  63. //#=============================================================( r; b  x2 |# L) B& `1 u4 b
  64. / ?* X% }# _2 X! g% ?$ k
  65. {4 p# M8 I) r$ |
  66. & t: Y/ L7 r8 |$ B8 k+ G# A
  67.    double ang;
    ' y- f+ ^5 J) T/ R
  68. : c& R& l0 ^; N
  69.    if (EQ_is_zero(y)) { y=0; }
    % e0 }3 H+ J: e8 g

  70. # ?1 {6 q' L( U% ~/ T' \( p( A4 Z7 _7 z
  71.    if (EQ_is_zero(x)) { x=0; }
    4 k! ?% f8 f% F6 e' V) A9 j5 q

  72. / M# J$ e: @" w& K9 i
  73.    if (y == 0 && x == 0) { return(0); }7 C3 Q. H0 V. q" g( ~# h- L  U
  74. & \! y/ G- R' `; k
  75.    ang=atan2(y,x);
    3 w5 E2 l, X  u. z6 ?  N3 {3 p

  76. 7 o% `/ _. T% M* X4 I) y, V  \7 T
  77.    if (ang < 0 ) {
    4 F/ M1 q& w: p

  78. 5 f. I" k0 H% h, w5 M3 h' ^8 D
  79.       return(ang + PI*2);3 h; q2 `; \+ N" ?

  80. & V+ M9 J! f: q6 `$ `4 D! `9 x
  81.    }
    % D! O! R9 W/ j* J
  82. 2 t+ j1 w" r. g9 }! x9 Y  }
  83.    return(ang);
      G. e, y" S" b# Z% t6 s

  84. & ?7 K2 f0 E3 t$ M! G+ ^' v2 d5 \
  85. }
    ( q/ V; W# D& z! \" g

  86. + ]3 h. Y( z) r! |1 i: `
  87. //#=============================================================; w% J, Z1 ~1 |7 x6 a5 T

  88.   H' L8 M' S' T( r! x
  89. double ARCTAN2 (double y, double x ), c9 L8 M* j$ K* o+ p% @% y: Z
  90. 0 ~  |0 ]7 x/ H/ y& o
  91. //#=============================================================+ S0 A+ H4 K" S; Z
  92. " ]+ v4 F! z9 Z
  93. {0 i6 j- H5 D2 n
  94. " t# t- z5 J1 N- T3 z5 a' b+ G) Z0 Z
  95.    double ang;. y3 p& L+ N7 J" ?

  96. 9 u) O7 P6 q! d. g
  97.    if (EQ_is_zero(y)) {4 l$ ~0 A" w! Y1 p$ B& E

  98. % V$ H7 B/ \1 Q& o8 y) E
  99.       if (x < 0.0) { return (PI); }' U# _4 f+ g5 t( O; {! o

  100. / h, y! _" W$ _: X* P0 |" `: b/ f- N
  101.       return (0.0);
    / y+ }" {$ k2 a# v/ w

  102. 1 J8 x# p+ k# T# D/ h
  103.    }2 d& v" L" k; i: f# S" ~0 H

  104. % D3 [- m) N+ n% c6 W* ?/ h
  105.    if (EQ_is_zero(x)) {, O% E( f& i9 S5 |# U2 q- i

  106. 0 D, q% f, V9 y6 W( E5 z% L$ U
  107.       if (y < 0.0) { return(PI*1.5); }
    $ v3 [; W+ d( {

  108. . |8 ]+ F6 u1 i# m8 t3 f7 @- E
  109.       return(PI*.5);6 D1 ?2 U0 d1 k0 ]( t. ^6 W

  110. 4 h6 p" r" u$ S9 U: V& C
  111.    }
    ' g* h% e$ J4 A" w% n8 c1 h4 P

  112. 7 x9 L4 @6 A% k% l5 W3 e
  113.    ang=atan(y/x);
    ! m! M" e  s  N
  114. 0 c+ B( `: A& C( l; b- }! z
  115.    if (x > 0.0 && y < 0.0) { return(ang+PI*2.0); }
    ' a7 S  j! ~9 V7 J& r8 j0 m
  116. 5 U1 h4 a& Y4 t0 y, |+ Z
  117.    if (x < 0.0 && y < 0.0) { return(ang+PI); }9 [1 _  |" [! m* Z' s4 r  W( O
  118. + H# ]* m6 n2 N6 a
  119.    if (x < 0.0 && y > 0.0) { return(ang+PI); }2 F$ O7 v- x7 P. }5 }( q
  120. 1 B7 ?& ]. f  h& w3 n/ E9 R0 h- p5 m" a
  121.    return(ang);
    ' K; r5 Q# E& s1 R4 \% `
  122. - a% Z% N1 m; x* f3 _
  123. }. a6 p. q1 v7 A; P, y3 g( H

  124. 9 {; x+ @  X' t4 e" c
  125. //#=============================================================
    $ T, ?3 x1 y( h5 H/ W  O& R

  126. " f$ L8 j; S7 N& j% T4 G
  127. double CheckConst ( double angle, double constvar  )
    1 _' p- u& d9 k( g: |& Y
  128. ; B* U' b/ a, m# ]
  129. //#=============================================================
    3 v5 [/ c  d/ K9 ~8 _8 ]
  130. 2 v& f3 p1 M$ @6 S& l' L
  131. {$ _( p5 T& g, y8 r6 C
  132. ' h3 V; b) c2 [
  133.    while (angle < -constvar) { angle+=constvar ; }
    + C6 A& J0 D) o

  134. / o* W! U- D% i- ?
  135.    while (angle >= constvar) { angle-=constvar ; }* r4 o2 H$ o1 ^( @. p! g. b

  136. & V: m! V# U1 C+ d1 g% K9 K2 a
  137.    return (angle) ;
    6 x( q1 e# W0 u! w) a

  138. # N$ z  H3 j3 a, l- R' W
  139. }& o9 @' f1 Q  _* P/ h

  140. 3 G! h! ^7 E3 H  G7 O' U
  141. //#=============================================================: V7 g& D  y# A" f
  142. # x0 n' ]- ]4 C( e
  143. double Check360 ( double angle )# v6 S4 m9 S: C3 N3 L
  144. * t+ o2 X3 W( n/ a4 k& y/ ~
  145. //#=============================================================" C5 _- o. j* X' u& V
  146. - `7 q6 S! V: H6 N/ c
  147. {+ [# z8 B8 a/ K8 e1 d9 p% u
  148. 6 E# h+ }3 k+ J$ ]
  149.    while (angle < -360.) { angle+=360. ; }' B/ d7 S; D: Z9 b
  150. 5 a/ ?; }  L, p7 {! }3 g! r/ l& h
  151.    while (angle >= 360.) { angle-=360. ; }
    # [! V% U8 h+ d: E1 ~

  152. 0 X% p0 C7 p; @- N
  153.    return (angle) ;( t/ |/ H) r) z5 b4 h

  154. ( g& D: N$ n& t5 }* F+ n
  155. }
    * q- U3 H) f' \) i& F

  156. ( e! j' d* k/ V$ m3 n) a2 O& ~
  157. //#=============================================================
    ) N( k9 D2 h, Q% Y
  158. & m5 {% e2 `$ x8 T6 z2 ]
  159. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit )1 _5 K9 \# a0 z7 i6 M

  160. & L3 [9 [" ?0 r0 [& J/ m. o
  161. //#=============================================================4 P. p* H: Z, O( U8 T. [

  162. 5 I6 T0 j* U' R) c' E
  163. {# ^+ T5 E# o" h& i6 ^5 Q  w" N. E9 q( ]

  164. - |) u1 ^. j$ c5 T4 @
  165.    while ((angle-kin_axis_min_limit) > 360.) { angle-=360. ; }+ T: s3 b1 f" U8 y1 N# y: J9 _$ P
  166. 7 e, n/ X/ F* q4 S) T  W7 U: `
  167.    while ((kin_axis_max_limit-angle) <= -360.) { angle+=360. ; }' `3 H3 J& u1 {) j- h8 T$ a8 E, K
  168. 2 \: ]" D: x$ q; }$ g- _
  169.    return (angle) ;' T" |8 v: U1 D! _
  170. 1 P7 X8 c6 Q  ?, M
  171. }
復制代碼
( P' n! o9 W8 r" S& y
以下為搖籃5軸計算過程代碼1 Y3 Q" x: X0 c
  1. i=sin(ang_rad[1]);  j=0.0;  k=cos(ang_rad[1]);
    ' ?. S8 i5 n2 r: D  k8 w( \

  2. ' c' I) h- d2 X" c
  3.          j=0.; B1=0.; B0=0.;
    1 Y" m- C* e! R0 F+ \, t" h' @+ |
  4. 4 ~; y' m$ Q! L4 S* D3 m" `$ P* C
  5.           if (EQ_is_ge(i,0.)) {; o+ N, @# P0 I

  6. : m) `# f- M8 p: u& ?- Z
  7.              if (EQ_is_gt(k,0.)) { B0=acos(k); B1=B0; } else { B0=acos(k); B1=B0; }) b6 m2 D: k5 p: X# ~
  8. ' Q( X2 f1 y# J) Z/ W
  9.           }1 q+ C6 v( h" o8 v2 V

  10. ( r3 K+ j; P  [
  11.           if (EQ_is_lt(i,0.)) {
    0 N# X9 q  J( N3 M

  12. " b" @- a8 I4 v* v6 V
  13.              if (EQ_is_lt(k,0.)) {
    / t- d% s9 [. D/ t7 v6 n3 G

  14.   N% ~* b: F& H7 d+ ^) G$ T
  15.                 B0=atan(i/k); B1=B0+PI ;6 h$ M( d% W& j; m: r; L
  16. 0 V  w5 [- j: ]- h0 v3 X: i8 N& n
  17.              } else {5 Z! e, o6 P$ f0 q% x

  18. 2 k1 p- G9 |4 Y: w5 @/ p1 e2 R7 l
  19.               if (EQ_is_zero(k)) { B0=-PI/2. ; } else { B0=atan(i/k); }  e% g6 V7 w, T  g( n* O
  20.   x9 t; H: Z, U( }" Y3 p1 H
  21.               B1=2.*PI+B0 ;
    9 J! D6 \* u2 l; b/ P+ i

  22. 8 H* Z1 [& V+ ?$ x* _& R) J
  23.              }
    , p, g4 ~( u  q3 u5 @& G( P+ u$ z
  24. : H  `5 Q! W+ B, }% ]
  25.           }
    % h8 G8 s2 J# D
  26. - e8 Y7 N6 X. x( S6 S- E
  27.           if (EQ_is_ge(B1,0.)) B0=1.; else B0=-1. ;# _: ?& y. D; h& `% Y

  28. 5 T. x- X" z' b, g
  29.           B2=(-1.)*B0*(2*PI-fabs(B1));% Q. X$ l8 u! B2 _

  30. & N9 v" {' v0 F! G6 h. p
  31.           ang_rad[0]=0.; ang_rad[1]=B1; ang_rad[2]=0.;
    " Q9 j7 E, e& t! k/ _
  32. 5 Z" {) ]. j5 h$ _
  33.           ang_rad[3]=0.; ang_rad[4]=B2; ang_rad[5]=0.;
復制代碼
; m1 C+ c; g& I/ ^9 a, t. M5 F
通過輸出的NC程序,反向輸出的刀軌數據與原始刀軌文件對比,其數據結果一致。
( K. F# ^6 v# c/ v" C# O6 R
" p" T. R7 G( [+ N+ F9 r ( @% X- v9 E! w% ?5 Z, T
測試結果:
# [) r1 {4 `  x; t. c ) b$ C3 \% p# m4 K* T( A
8 S1 k- r  N9 c! s0 s3 C# I
反向測試結果
! N1 U$ _# l4 Z2 j  c5 S) ]$ Z

1

主題

136

回帖

191

積分

注冊會員

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

使用道具 舉報

0

主題

293

回帖

329

積分

中級會員

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

使用道具 舉報

0

主題

25

回帖

17

積分

新手上路

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

使用道具 舉報

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

本版積分規則

關閉

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

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

GMT+8, 2026-2-21 14:19 , Processed in 0.248137 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99色网站| 国产日韩中文字幕 | 亚洲激情一区二区 | 粉嫩在线观看 | 成人黄色免费在线观看 | 欧美在线你懂的 | av女人的天堂 | 爱爱视频免费看 | 日韩 国产 欧美 | 精品国产精品国产精品 | 视频一区在线播放 | eeuss一区二区三区 | 超碰丝袜 | 黄色一及毛片 | 亚洲黄色在线播放 | 亚洲一区二区视频在线 | 国产三级一区二区三区 | 日韩免费视频 | 欧美人妖老妇 | 亚洲国产精品va在线看黑人 | 成人一区二区三区在线 | 国产激情视频 | 久久99精品久久久久久国产越南 | 青青国产精品视频 | 亚洲欧美在线视频 | 午夜免费精品 | 婷婷av网 | 日本视频在线观看免费 | www久久久 | ww.国产| 日本五十路女优 | 中文字幕最新 | 亚洲v国产v欧美v久久久久久 | 美女天堂网 | 国产美女免费视频 | 色综网 | 国产美女激情视频 | 99性视频| 国产日韩在线免费观看 | 天天综合天天 | 高清欧美性猛交xxxx黑人猛交 |