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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

查看: 6698|回復: 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);' D3 M( N9 {0 n9 _1 d& g" B
  2. int  EQ_is_ge (double s, double t);
    ' E( C, H$ a$ U0 }4 A
  3. int  EQ_is_gt (double s, double t);
    # k' {' Z, w3 }1 D# K. p+ y2 ?8 s; ?
  4. int  EQ_is_le (double s, double t);
    * [( Z7 d, {6 r5 P
  5. int  EQ_is_lt (double s, double t);: a  u; A$ [* }2 S
  6. int  EQ_is_zero (double s);6 T" [  q9 r/ q) B% m
  7. //=============================================================* @' V! G9 |% M* l: g6 H7 G
  8. double ARCTAN1 (double y, double x );. S' C. ?" C# h2 N
  9. //#=============================================================
    ! d1 _+ R7 b; k8 C
  10. double ARCTAN2 (double y, double x );
    $ ]1 t# {3 |7 n) l8 N- W5 l
  11. //#=============================================================
    7 ?# W" @+ H3 _1 L# [
  12. double CheckConst ( double angle, double constvar  );
    ' [, D0 m/ B/ {) O, j
  13. //#=============================================================+ e6 T  D2 S+ O) ^6 @
  14. double Check360 ( double angle );+ j! R4 F) k$ B
  15. //#=============================================================
    8 F0 c( \6 u2 T$ z, ^' U
  16. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit );  l  H. F. R: c/ \' b: {4 [! O
  17. //#=============================================================
復制代碼

# A% T* c* m1 ?/ j" L以下為部分源代碼,用于判斷,計算角度等
6 g: v5 F2 f, _" p& u  O5 P
  1. int  EQ_is_equal (double s, double t)
    6 R. F8 F% |, i( v8 D: ^7 a; Y

  2. 2 P" ^* l6 C! v( g2 Q& [* X; x
  3. {/ x6 J! j. J2 d% ~% z
  4. , F. U4 C# ^3 |5 B8 J
  5.   if (fabs(s-t)<= system_tolerance)  { return(1); } else { return(0) ; }
    ; o/ Z6 J; C' S% a! o. [( T2 f

  6. " @0 R! [( T' o1 ~' R( Q6 i, s
  7. }; F% F( v) C7 K4 U, e' B7 U0 i
  8. * l3 c& B. _9 j# B/ w5 u
  9. /***********************************************************************/2 ^6 m( T; U, H: U
  10. ' `1 s% V) @& g8 @) V1 O, |
  11. int  EQ_is_ge (double s, double t)
    , t! W/ F& c6 O0 p  x; _

  12. ( k( o6 [4 x2 w) v
  13. {* |+ m' V8 G5 Z7 w6 t- }

  14. ; u2 D7 [  h- T, v9 \9 [0 C: j
  15.   if (s > (t - system_tolerance)) { return(1); } else { return(0) ; }
    ( i( ]7 I8 S+ P  |
  16. 4 m; p1 c" \  o. f% p
  17. }
    % X1 s" i! u. {: p7 M

  18. / J' d9 g/ o1 _
  19. /***********************************************************************/4 W% i* }4 P* e' \% n6 J" O

  20. ! b. N& G; p4 g
  21. int  EQ_is_gt (double s, double t)' A2 [3 M9 S; ?/ X5 v2 ^; I, K7 c) q
  22. & e6 z2 ]* k0 y8 _* t
  23. {
    # v( U; ]% o) W7 W1 p" F( d

  24. - p$ X1 B, F# j" M
  25.   if (s > (t + system_tolerance)) { return(1); } else { return(0) ; }
    4 Y4 M6 k1 ]8 _

  26. 9 r6 s5 K7 I7 ^3 [
  27. }
    4 V5 W4 G; [# L# R5 E+ y" D

  28. 5 @# ^- g( I& i9 J# z' v
  29. /***********************************************************************/) x  L- y* @* M, ]
  30. ) W6 c6 w  V( {% @0 U
  31. int  EQ_is_le (double s, double t)# \8 S4 u$ E8 L) H
  32. 7 P: p4 \6 G1 H( ^! P" r# W
  33. {5 R6 C! C; f5 p0 }

  34. % W5 d8 o+ O0 C+ I9 u; c2 e
  35.   if (s < (t + system_tolerance)) { return(1); } else { return(0) ; }
    9 \" {: h; }' R) h$ F
  36. ( L6 e$ z4 o8 H  o
  37. }: b- o. Q2 n& O

  38. 4 i0 \( K& G: s$ `' p1 Y
  39. /***********************************************************************/3 ~! d- Y7 L7 ]; \+ v! o
  40. ( z( J" ^6 n) l* w9 f- A
  41. int  EQ_is_lt (double s, double t)
    2 C0 H7 t2 Q  @% O

  42. - e! ]2 N9 d+ x  ]+ h8 K1 Y
  43. {5 G' q8 R9 G6 W1 x) g5 g
  44. # c9 J3 j  ^* n# X& \
  45.   if (s < (t - system_tolerance)) { return(1); } else { return(0) ; }! S6 {' V7 A/ Z( _4 j

  46. 8 |5 l& t; `0 s: w
  47. }% q( Q$ O. b" G8 \% {
  48. 6 }7 E, o0 x( F2 s8 `( m" D  L; ?! ?
  49. /***********************************************************************/& x% ?% X/ Q% `# d

  50. 9 i* v/ z1 o6 i$ o: ]2 q. Y
  51. int  EQ_is_zero (double s); }7 d) i4 b0 z7 Y8 H! D

  52. / u; B. z3 S% B+ p5 Z
  53. {, R$ K) \% w. |9 U% w% i

  54. - F) o. |3 }% S1 I, D  f5 s
  55.   if (fabs(s)<= system_tolerance)  { return(1); } else { return(0) ; }, s' }, H) z2 p# P
  56. ( l6 }; Q* q0 ~1 b
  57. }( u( u* k7 N! n% e( L

  58. : k( I+ ~& p' L  d
  59. //=============================================================
    & I/ j+ f  S7 O+ u

  60. 2 S& ~7 u& x" k  g9 Z
  61. double ARCTAN1 (double y, double x )9 U$ c. c4 d# j. z

  62. 2 l  b. X9 h* ~* J- R, I
  63. //#=============================================================
    8 y/ v* j% V  [% h

  64. 3 ~; i8 ~9 K$ }# J7 _- s! r4 G
  65. {
    1 w- ]2 A5 M) v7 J

  66. ; J! @8 S3 B* E) f
  67.    double ang;
    , W7 T4 `( C+ H5 z7 _
  68. ; y& E' p9 k/ i0 d
  69.    if (EQ_is_zero(y)) { y=0; }
    " ?1 a2 ]0 G, M' b
  70. $ L/ m8 k- `6 W4 X4 W: r
  71.    if (EQ_is_zero(x)) { x=0; }" I& @$ K+ g5 u& Z# ?/ {( G
  72. # o+ {$ |" r8 P( W4 n
  73.    if (y == 0 && x == 0) { return(0); }9 p' k( L  V3 e. G9 B! ~: a1 e
  74. + R$ {1 O# m+ \
  75.    ang=atan2(y,x);
    ( k5 `8 _+ i$ [* m
  76. 4 [/ j0 ?. p: l6 q
  77.    if (ang < 0 ) {! J9 i& Y; A( P, b$ F2 o" Z
  78. 9 V4 n3 k! g* `4 ?
  79.       return(ang + PI*2);
    # D; b9 ^, `2 ?/ j) n" u
  80. 3 {/ X; W8 T- F9 a1 g
  81.    }
    0 A$ Y6 M& P$ \8 O

  82. $ J& u/ S4 P, \0 I: k! a
  83.    return(ang);9 z5 M2 P7 t& T. i; V  L

  84. + I$ M+ L0 I: }. V, ~/ t: ~9 U
  85. }
    ; L6 ?4 D0 {4 i. u
  86. - P  E) x: g3 }, W0 s8 V( o$ C5 j2 g
  87. //#=============================================================% _. |" h" ~% E9 N0 d, K) O9 A
  88. ; u' [/ O' x. [3 Y+ T. _8 H( A" L
  89. double ARCTAN2 (double y, double x )  d$ Y+ Q( M4 t: T: e+ `6 A6 o+ l7 u

  90. # J. \; B* l; Q9 [8 N
  91. //#=============================================================% A) I& f9 ]; Q

  92. 4 _; ^2 d  m( V7 j5 ^
  93. {. C" I0 T1 \9 g7 s9 u8 {

  94. / ~2 P5 h3 q9 n& w6 x4 f: p
  95.    double ang;  @& P2 Z0 Z+ M$ L4 y
  96. 8 r/ b& }* A4 X  X" f% `6 G0 P
  97.    if (EQ_is_zero(y)) {
    5 C8 d( V5 b# S" F( H  f) S" @, r

  98. ( B+ ~! ~6 p7 K0 J0 ]
  99.       if (x < 0.0) { return (PI); }
    * Z# q" @# z8 ]7 y/ }

  100. 0 k4 |0 X4 t& H$ \4 n* l( U1 X* n
  101.       return (0.0);4 J" Z! Z) z0 M, N) S8 g

  102. 1 X9 w5 c$ c1 }& m
  103.    }0 Q; O  a, M# S! O5 Z  S' e
  104. $ }1 Z5 A2 e0 b4 w) w7 K  p# x
  105.    if (EQ_is_zero(x)) {
    ; o" G, h$ J/ ^4 U' p6 x5 d' E

  106. 0 k2 w( o" v3 L0 V
  107.       if (y < 0.0) { return(PI*1.5); }0 p/ l: [8 \; ]. i

  108. ) M* ]$ w" _( k; Q$ m  u
  109.       return(PI*.5);. i+ s1 }+ y$ d

  110. 4 l( C1 U  \* Z9 U1 C# @+ n
  111.    }
    3 u# I0 Y! e( W' m
  112. , O# S/ g5 _7 Q7 U1 {
  113.    ang=atan(y/x);
    ( o. R# |1 ?5 m# Y
  114. ! ~4 Z+ S  o# q- r: o+ e( |. S5 O' a# F
  115.    if (x > 0.0 && y < 0.0) { return(ang+PI*2.0); }1 U$ g5 }7 o/ P) l+ y& v0 V; w2 B

  116. 2 O8 p+ S1 D$ G% B; m* O6 j
  117.    if (x < 0.0 && y < 0.0) { return(ang+PI); }) V* m# b4 L5 s: q8 ?# w6 [8 H
  118. $ Y" E5 h3 [6 Q1 \* z
  119.    if (x < 0.0 && y > 0.0) { return(ang+PI); }
    & l! N9 [& R/ b
  120. $ V2 ?( P. U% r2 N
  121.    return(ang);4 K. l6 m9 U) J8 g$ y! s. Z
  122. 1 \, b$ ?2 l3 [, Q* ?; W( s
  123. }
    " l) k- ]5 `, j
  124. $ K8 D, ~: ?# K  B
  125. //#=============================================================0 K) J0 ]4 v: l1 U6 z5 S
  126. - I) F# q% b; n( ]
  127. double CheckConst ( double angle, double constvar  )( {3 S5 M0 w/ N$ [8 [, B
  128. % m; s1 p* ?  R6 Q5 w$ o6 n: m
  129. //#=============================================================
    8 T( r3 m, Y; q& G5 {+ B$ C/ }

  130. 5 Q' J1 X0 f( r! y1 L3 q* \
  131. {
    ' O9 l' N( L! q  n- V: ?8 B: t7 v% t

  132. # ]7 w: g+ c/ W
  133.    while (angle < -constvar) { angle+=constvar ; }* ~4 h6 N5 z2 m: H4 O: E

  134. 5 J2 `6 W0 m+ {* V8 @
  135.    while (angle >= constvar) { angle-=constvar ; }( [8 g. r; Q1 w: O% E

  136. * d: t# Z2 ~8 B8 Y
  137.    return (angle) ;
    ! t) W( Q1 n. R1 Q

  138. ; w, w' F  x  @& Q# `. \
  139. }
    % `" ^( B9 O) ~$ S) s
  140. ! n* b$ V# q# G
  141. //#=============================================================, i( t5 C4 p- z; U# p7 l, P
  142. ; N) \, \7 J+ M+ u  _
  143. double Check360 ( double angle )4 {% w# V# C+ m2 v  E

  144. $ Q% f/ F4 p8 F* l2 f
  145. //#=============================================================
    * }$ k3 _) u2 D' h9 _

  146. " l/ Q6 D9 b$ d8 p5 N
  147. {, |- s$ f8 z: g2 W( x1 C. F
  148. 2 c: C$ N1 i# F6 Y: V; D9 x6 H
  149.    while (angle < -360.) { angle+=360. ; }, e% P: ?& F; ]- _/ }: u+ d  t

  150. " N7 Q1 {; X9 S* D$ @
  151.    while (angle >= 360.) { angle-=360. ; }
    ! X# L. U: n" p) X; R
  152.   x- N( K/ `) }
  153.    return (angle) ;2 Q3 x  l9 t* B& h
  154.   f" N6 ~4 \3 I# M
  155. }& d8 Z: \, a3 H/ b5 n) ]

  156. " a( V4 c( _7 n2 o, z. q
  157. //#=============================================================
    / c! N3 N$ q& J$ v

  158. 3 t. \2 w6 v* K6 `3 q
  159. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit )
    0 N/ g$ H+ j( @; b( Q5 }. e7 p

  160. 0 B, k' q" U4 @8 r) Q" }3 S" S
  161. //#=============================================================' a9 f5 t. X9 {' O/ O

  162. / b6 t! |6 i# b( ]# d$ z
  163. {
    , M# [* t; \; w! l* m7 E! l: o

  164. 9 c9 T) g1 g5 e5 z) g# Q. h3 q. o) k) f
  165.    while ((angle-kin_axis_min_limit) > 360.) { angle-=360. ; }" ]3 y+ H2 i) k
  166. 5 N5 H  G  u6 f
  167.    while ((kin_axis_max_limit-angle) <= -360.) { angle+=360. ; }) G% w; X3 J8 c1 a& |9 K  l4 t

  168. 0 o! }0 u2 q: M/ u" y
  169.    return (angle) ;
    ' g( N* c3 i" `5 \* b
  170. ( R+ h. s8 [0 ~: n2 s6 u/ A8 \
  171. }
復制代碼

5 o; O* W' s' K# `# N7 T6 X) h以下為搖籃5軸計算過程代碼
% C' a0 l6 V. U7 b6 V; ~
  1. i=sin(ang_rad[1]);  j=0.0;  k=cos(ang_rad[1]);8 n$ h# h6 l7 S

  2. 2 y5 ?$ I0 i) s/ B
  3.          j=0.; B1=0.; B0=0.;8 ?$ i- u7 D; W- q: ?# S

  4. 4 |8 q0 w- o( X9 z# O
  5.           if (EQ_is_ge(i,0.)) {
    & F( v  y1 j. I, t- J

  6. 0 A2 F3 @* r2 P* R  a$ Z& P* @
  7.              if (EQ_is_gt(k,0.)) { B0=acos(k); B1=B0; } else { B0=acos(k); B1=B0; }
    . l+ H( d% g5 R8 J5 p

  8. 5 c* h) U7 L9 D5 |0 @
  9.           }
    ! ]# M& }" ^6 l# P4 |

  10. 4 y' R' x* y: j: G) u/ I+ B
  11.           if (EQ_is_lt(i,0.)) {
    ( t! n- r% l: k: i0 l* T
  12. 3 }* k* U/ `3 n7 V
  13.              if (EQ_is_lt(k,0.)) {& \6 b; J3 n$ X* d
  14. 3 V0 G3 @' {( O) |! Q# }
  15.                 B0=atan(i/k); B1=B0+PI ;
    % T, t7 F. R  r! m8 T6 K3 a

  16. * z4 \, C+ C  u- g: n' j
  17.              } else {; S- ~7 Z& p+ |5 O0 R$ w) {

  18. ! }5 P; n8 k) l" P
  19.               if (EQ_is_zero(k)) { B0=-PI/2. ; } else { B0=atan(i/k); }2 K8 [$ B4 h7 c, L) b. n- G1 [5 J

  20. % @4 a/ T/ _( j9 V# x) z
  21.               B1=2.*PI+B0 ;& n2 Z+ R( u! N, C9 Y

  22. $ k+ q" o* B: j0 T/ u9 H+ {% I' b
  23.              }- X0 v2 I4 i0 d0 T$ Z$ t
  24. , A' a9 M  f* h- W) r8 m# i5 U
  25.           }3 \" @* i6 Q, V

  26. # t3 F0 W% K0 p6 p; @9 Z! _
  27.           if (EQ_is_ge(B1,0.)) B0=1.; else B0=-1. ;
    7 z8 P7 N- |+ Q! k4 R: r

  28. 0 Q6 S0 x( @7 V% `. l  |
  29.           B2=(-1.)*B0*(2*PI-fabs(B1));6 x0 s# `+ u- P0 \2 q

  30. 4 E& j% z  I0 G
  31.           ang_rad[0]=0.; ang_rad[1]=B1; ang_rad[2]=0.;% f- Q0 V; o/ v8 B$ Z( U2 m

  32. $ O) s+ ^% M  ~4 Z% }( [2 @
  33.           ang_rad[3]=0.; ang_rad[4]=B2; ang_rad[5]=0.;
復制代碼

) t+ ?/ {; g' p, d6 U+ k: A通過輸出的NC程序,反向輸出的刀軌數據與原始刀軌文件對比,其數據結果一致。; p. w% ?  c0 r3 }- ~; o/ j
' U% R$ v, \. t1 g* D* Q7 b

9 ]8 {, _( h8 C) Z$ m% a7 c測試結果:) e2 l! t4 Z8 K& D' r% E+ v
+ r. _) g  m( ^# ?
) c$ c" Z9 p( K, T8 V8 g/ K
反向測試結果 6 I/ ]: y# f  S9 }  r

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 01:55 , Processed in 0.239525 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级视频在线 | 午夜小福利| 毛片大全 | 91久久久久久久久 | 亚洲色图日本 | 日韩精品视频在线免费观看 | 四虎影院免费观看 | 亚洲国产一区二区三区在线观看 | 黄色片入口 | 九九久久九九久久 | 欧美黄色影院 | 男人午夜免费视频 | 久久超 | 亚洲免费精品 | 顶级嫩模啪啪呻吟不断好爽 | 欧美激情一区二区视频 | 1级黄色大片儿 | 欧美午夜一区 | 日本一区免费 | 亚洲精品久久久蜜桃 | 欧美成人一区二区三区片免费 | 日本天堂网站 | 男人av影院| 亚洲成人黄色在线 | 在线观看亚洲成人 | 亚洲视频第一页 | 日韩一区二区在线看 | 黄色网zhan | 天天操综合网 | 日本网站在线播放 | 日韩免费a | 麻豆视频播放 | 久久精品8 | 亚洲综合二区 | 日韩欧美国产高清 | 久久99在线 | 国产精品视频久久久久 | 亚洲天堂导航 | 综合亚洲精品 | 日韩一区二区三区精品 | 国产精品免费一区二区三区 |