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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

查看: 6693|回復: 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);
    + u2 T! x2 U8 g
  2. int  EQ_is_ge (double s, double t);
    ! [0 I* o0 M4 T  r9 d1 \* r
  3. int  EQ_is_gt (double s, double t);! \0 Y6 h$ \' N9 {+ r1 {! h) r
  4. int  EQ_is_le (double s, double t);. r  |) ]2 l/ l7 g. c1 z
  5. int  EQ_is_lt (double s, double t);& l$ X$ e+ [$ z
  6. int  EQ_is_zero (double s);0 Q* _9 p0 Q" j' |7 E9 Q. {4 w
  7. //=============================================================
    - Y6 S* H* K, G; F" M  |5 S/ r
  8. double ARCTAN1 (double y, double x );
    4 @' D6 O! h' D' h) l( F
  9. //#=============================================================, F0 w  T% U; I' Z7 X  o% l( s: S
  10. double ARCTAN2 (double y, double x );
    2 j6 H4 y: ^: t9 y
  11. //#=============================================================
    ) \- T# ?# s  O( ~
  12. double CheckConst ( double angle, double constvar  );( w) T' ~; g: j% p& X
  13. //#=============================================================/ O7 [  z) l$ O
  14. double Check360 ( double angle );
    3 ?8 R4 h, l* i+ `: M. [0 _
  15. //#=============================================================6 `0 I% V# X4 N& }8 |& t% u
  16. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit );
    $ b1 o8 E- c. ^# L, p; h4 F
  17. //#=============================================================
復制代碼
! q# c& p" |- A5 n
以下為部分源代碼,用于判斷,計算角度等
9 Z4 T* q8 |) ]+ P/ Y/ l* W
  1. int  EQ_is_equal (double s, double t)# ~7 z8 I; M6 O6 b- {2 l+ W

  2. 6 M) o# l% m1 o- i
  3. {$ G6 w+ p* ?7 H, z8 ?6 V

  4. % L# d4 J3 ~) H
  5.   if (fabs(s-t)<= system_tolerance)  { return(1); } else { return(0) ; }
    . N- h1 ?4 ~' p0 w
  6. ; i( |2 H" O0 |  _4 C* `& r
  7. }
    ; y. G' Z5 z7 @+ c) U

  8. " s0 r! H5 c, O4 l# J; y8 x  ~) E
  9. /***********************************************************************/5 U5 D" N4 C( h. a
  10. / k5 O3 V+ g' o3 w/ `! O; R: a+ M1 z
  11. int  EQ_is_ge (double s, double t)6 S! m: X, s% a! h: S# t# y

  12. 4 C5 b7 j3 d% j/ n1 D* N
  13. {
    - w9 M+ P1 f* [- l! m7 T* s' ?
  14. 4 Q5 t1 g( O' d0 _8 G/ j2 F
  15.   if (s > (t - system_tolerance)) { return(1); } else { return(0) ; }1 `% Y( D1 y' D3 F: ~$ \

  16. * v6 ?  C6 t! q$ O
  17. }
    . J& Y9 |! |5 V; L) @+ a
  18. 4 @7 ~, H% T! F5 ~. {* D- h& M$ S
  19. /***********************************************************************/9 @: P& G( D7 G& G

  20. $ _5 H& K3 C- P
  21. int  EQ_is_gt (double s, double t)2 ~7 D6 d8 Q0 U/ ^% z. E

  22. 2 O8 \$ @1 }1 s8 C, X6 [, A  A+ h- w
  23. {  Z: F, l( o0 q: W' i2 W6 o* C: |
  24. 1 F4 D, U. v2 y
  25.   if (s > (t + system_tolerance)) { return(1); } else { return(0) ; }
    & H) [! n( Y4 w- U
  26. , z9 F  x/ ?( p; g4 ~* d
  27. }
    ) u- V; B  V5 a6 I

  28. ! p* L" l) q# |. X
  29. /***********************************************************************/# f$ S- k" D; }) V1 L! A6 f9 ^

  30. 4 T! N$ {: |; |5 z" }: l
  31. int  EQ_is_le (double s, double t)$ `7 ~# c5 ~* `5 z5 c6 Z) u' X
  32. * y2 v9 k0 Y6 K: O3 W
  33. {# r, \. X* Q* t8 S9 s) Z# d- ?" h4 S
  34. ! N1 i8 H2 U/ O! A
  35.   if (s < (t + system_tolerance)) { return(1); } else { return(0) ; }6 z- J* V& D- p3 W: K% f/ X; b

  36. 1 O3 J! u; p! s3 F3 h' F. l
  37. }
    5 K  Q" p) m7 f: k: C( O

  38. & R* _) i$ K0 Y* V5 q9 z' [
  39. /***********************************************************************/
    ( {- X! q# K+ u) p, M3 F$ n
  40. 7 @0 h/ X8 T1 }$ q9 |; ?2 r
  41. int  EQ_is_lt (double s, double t)
    9 b( \) d: O+ _0 X4 s! [  K
  42. # L! Y! v, j/ {0 ^- }0 ^( K
  43. {
    * D0 n" }- U* \" ?3 a* V
  44. / S( h- W* c  m' i
  45.   if (s < (t - system_tolerance)) { return(1); } else { return(0) ; }" M7 n; m6 E( K+ I* \" v/ G
  46. $ y2 ]4 S  k8 I) C
  47. }; s2 \" Y" L% K$ w9 ?

  48. 4 H+ t0 L1 q8 a- j* S( R+ ^4 w: [3 B
  49. /***********************************************************************/
    1 l/ d5 m" I( S, B; c
  50. " m+ t2 K; u; q9 X. ]5 m" t
  51. int  EQ_is_zero (double s)2 {9 X% P0 k& m. n! T3 {

  52. 2 X6 w( k7 P& h! }
  53. {
    : l% |) a7 C' n7 o& F9 L) {. G- Z

  54. : L! e2 t! ?. A8 [) h* z7 O
  55.   if (fabs(s)<= system_tolerance)  { return(1); } else { return(0) ; }
    ( [$ |2 x3 i2 u# ]; q

  56. * ]) |* F& i7 X& X6 W0 E9 Y! X
  57. }6 K0 |% r) L; W4 j" z
  58. 1 l5 H0 _( ~) p
  59. //=============================================================
    7 g% I! a' L9 c" m6 b! q% h

  60. 7 A; H' H  h9 c* B' w* P
  61. double ARCTAN1 (double y, double x )/ T3 B; @9 b) ]- |- p" L7 k2 H
  62. 0 G1 ~. y3 b0 n7 \( a+ Z% j' {% p
  63. //#=============================================================, b. ~1 f6 {2 T/ U  \* h! H, V. [% M' t( r. H

  64. 5 q, P4 M4 u$ l9 H5 M8 m, p) O
  65. {
    . M7 ?. C  O( {5 Z( p
  66. 6 W+ q' C9 p) F. A+ d2 a) Q
  67.    double ang;7 m1 n6 t% L) @+ Q: v/ L* E
  68. ; X9 d- A: b4 V/ Y9 O
  69.    if (EQ_is_zero(y)) { y=0; }
    . }: I( E) n/ }) ]0 T5 A- B/ p2 t

  70. / u. q5 O& P7 m, s
  71.    if (EQ_is_zero(x)) { x=0; }  _0 Z4 b4 [( h/ U5 S

  72. 8 C* C6 \/ `& m3 M% J# W
  73.    if (y == 0 && x == 0) { return(0); }& D$ D" a, g8 G( M
  74. " p6 ^" q% n3 X7 }* H
  75.    ang=atan2(y,x);2 f1 w- s5 I7 D1 N+ r9 ]
  76. % v" e- Q) h8 m; I  Z' K! X
  77.    if (ang < 0 ) {
    * t* T4 Q) J. U

  78. 9 |- _) C9 q# w1 E" s
  79.       return(ang + PI*2);+ o; K6 P- o: u

  80. & b' H; a; ]) g0 C/ r5 l
  81.    }
    : O: }( d% R3 C6 z

  82. 4 w0 H7 ^! Z1 z
  83.    return(ang);  W8 t5 m: o/ V; E; `' }
  84. 8 H2 B/ ?, g  |! \* I0 v  w
  85. }' W4 t) w* l2 w! t/ q# {
  86.   x' a# ^; O2 N( V* l4 X1 [- C
  87. //#=============================================================
    6 X* L' F& E6 n+ ^: w: X
  88. * \) w+ C5 A! v2 \! l! A
  89. double ARCTAN2 (double y, double x )
    * _' K, G( j+ W! G3 x: k2 N; \- u. @

  90. 8 \9 U- R# s  r" h" k
  91. //#=============================================================
    # u" s5 h( y8 q  p

  92. ; e7 q" _/ t! l% r$ {) L
  93. {% c( G8 R( d7 c4 C" ?: Z

  94.   W" s2 T) t, L
  95.    double ang;+ n" D  ~! S& u! J/ Z7 j

  96. 7 P/ n. y5 ]' p3 t. V( [+ \
  97.    if (EQ_is_zero(y)) {
    : ?7 J/ N$ ^$ Y

  98. 0 Q2 I9 c: A8 o5 d8 m6 r
  99.       if (x < 0.0) { return (PI); }+ T0 L; {7 F( q: y
  100. % m! o) d6 @- q
  101.       return (0.0);
    * i4 L+ ?0 z$ ?0 @5 O
  102. 9 }% _3 u! n3 }7 i5 F! |
  103.    }
    8 F1 j% L. u( y! i$ R4 o9 h7 c

  104. " e/ c/ p" r: s  O8 J: e' q+ D
  105.    if (EQ_is_zero(x)) {
    . [! R7 W; t! m6 c' F! R1 Q; Z

  106. # I2 x: Y' m9 k3 J( i
  107.       if (y < 0.0) { return(PI*1.5); }, k4 q4 Z( |4 Q3 }! ?$ h4 ^
  108. + v: I: O$ {8 K5 _9 @
  109.       return(PI*.5);
    / P0 [. V9 v+ U0 F! j! I" v
  110. $ c/ w+ ^* G; P0 x1 g
  111.    }
    # w6 R1 x4 ~6 T# N7 W% E

  112. $ O6 I9 s7 @5 }& k
  113.    ang=atan(y/x);. G8 I7 E. T1 E8 B  ^

  114. 3 a" b2 X0 e: Q9 q+ N0 U. s
  115.    if (x > 0.0 && y < 0.0) { return(ang+PI*2.0); }
    7 u, J* p  X/ o" j" x) p. B

  116. ( N2 W( y; ~. s, H
  117.    if (x < 0.0 && y < 0.0) { return(ang+PI); }
    6 U& F8 ]7 h7 I$ n) t
  118. 9 P* W$ q. |" R" B7 k2 m( ]
  119.    if (x < 0.0 && y > 0.0) { return(ang+PI); }
    # e; C+ V: X( N! {, Y; b
  120. + ~; b" [2 @  D9 f# h! T  Z
  121.    return(ang);0 L' y" j7 y, f5 E- E2 e

  122. 6 [( w+ u" d  q1 c- s( ~( Y
  123. }
    : k& w3 o" H7 G0 `7 f

  124. , S. W5 X( a2 w$ L& N+ i
  125. //#=============================================================% U6 l+ M9 t* L) U+ T

  126. 6 U& G8 ~6 E. t# Z" Y
  127. double CheckConst ( double angle, double constvar  )
    ; u/ c# s/ l" v7 ~, S
  128. ( B: y$ V# a# S1 x
  129. //#=============================================================8 E# ^& t( j0 b  ]5 ?

  130. $ _/ E' z! Q7 B( ]+ @( a" N
  131. {+ ]4 b& A3 z  z5 J
  132. ' E+ M, z1 C. k; S+ Q5 y
  133.    while (angle < -constvar) { angle+=constvar ; }
    : V. K( B& k: a. r: i4 z/ ^

  134. , o; f0 n& h% ]2 R4 F
  135.    while (angle >= constvar) { angle-=constvar ; }0 ~2 L/ G% W$ o  v7 Y
  136. 6 X1 X0 `9 [1 a# C+ g
  137.    return (angle) ;! X2 u8 C5 k% a2 ~

  138. 0 l( V+ h/ x9 V2 j4 w
  139. }1 ]* v7 u% T5 B

  140. ; @& p6 \$ D, x6 v+ v
  141. //#=============================================================- i6 l& \) z) a. y, A0 \* m
  142. 3 r4 U" Y$ g- C1 E7 c- f4 b' j
  143. double Check360 ( double angle )7 \$ W1 t0 O2 F$ K! j* S: ~7 G
  144. : t' ]. o/ @/ s' M- ?
  145. //#=============================================================# L) u' T9 V$ U4 Y
  146. % W8 R7 Q. a5 s3 e0 e1 T
  147. {
    1 s. I  W7 m1 _; w. H& W) I
  148. ; u4 h8 A8 q) [- t+ i6 u4 q
  149.    while (angle < -360.) { angle+=360. ; }$ P( z* P! K' \
  150. - K: D% J0 K# s5 [" P
  151.    while (angle >= 360.) { angle-=360. ; }; r' u8 }/ V/ P  x: J/ a( B
  152. - N3 {" N2 X: @* p7 _9 ~3 J
  153.    return (angle) ;
    ! N% k; B% O$ J( l( K5 k4 e
  154. ; \2 o0 D' L0 t/ m: G' i
  155. }2 J9 C1 A6 `' E, T+ ~& r
  156. 3 q+ r. ^8 l, F  _
  157. //#=============================================================
    7 j# _0 G, P. Z! i) ^( Y  A
  158.   u+ @% C- i; U# k3 J
  159. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit )
    , x. @3 _$ d' [) I& S$ q/ H6 x# v

  160. ! g: H# f# I/ I4 E8 t. h4 M/ u. H
  161. //#=============================================================
    " N8 _0 y+ S3 J5 E4 a; n

  162. 3 l6 {; V! _$ I- k3 U4 C
  163. {
    9 a9 O! M0 V: p$ g
  164. 8 {0 E+ w* W* L
  165.    while ((angle-kin_axis_min_limit) > 360.) { angle-=360. ; }# ~( u. R7 u8 v) Y6 T# W: s1 I8 L
  166. - [3 N3 R  {: j
  167.    while ((kin_axis_max_limit-angle) <= -360.) { angle+=360. ; }
    3 [9 J% ], g; i8 F. ^/ {* Y1 Y- h9 |' [
  168. 5 }" t9 i+ L, k  X! G9 H& t
  169.    return (angle) ;
    4 _, [: a' T7 F
  170. 3 h- A; x8 G6 ]" h& ~
  171. }
復制代碼

7 c% e* h2 ~0 R  k/ U+ ^以下為搖籃5軸計算過程代碼
7 w, k* [2 `1 g7 c
  1. i=sin(ang_rad[1]);  j=0.0;  k=cos(ang_rad[1]);+ D% l$ s' Y. R3 ~5 G
  2. * ]* J8 m( \0 ]3 ^8 v7 A2 D$ Y
  3.          j=0.; B1=0.; B0=0.;
    ; s- K4 {; J; F! P1 G
  4. 6 B2 |+ ^+ ?- ]) j7 C
  5.           if (EQ_is_ge(i,0.)) {
    ) L+ d2 y2 b- A

  6. ' B; j' ^; p% r
  7.              if (EQ_is_gt(k,0.)) { B0=acos(k); B1=B0; } else { B0=acos(k); B1=B0; }, [" {9 |! p0 N# x; n( b
  8. 9 {2 r( b7 y  g. H( {9 T5 }
  9.           }
    " L9 {  B! `+ J2 O" h$ R; E

  10. 8 ]" a1 Q, f$ m3 Y' w$ }' u0 ?
  11.           if (EQ_is_lt(i,0.)) {3 n# W) X6 U" r( a/ B) \) d

  12. $ n3 H' B) Y) c
  13.              if (EQ_is_lt(k,0.)) {4 n' q. c# r. C+ |
  14. ; V" m& P8 b+ Q/ b: N: h
  15.                 B0=atan(i/k); B1=B0+PI ;  O$ t; J9 ^. g+ x, E
  16. " f9 j* n9 g4 b; _3 _6 Y  j* \  \
  17.              } else {% r) g4 T$ t& b# H/ G7 P

  18. $ ^" E' S; i. F
  19.               if (EQ_is_zero(k)) { B0=-PI/2. ; } else { B0=atan(i/k); }
    3 t% v! u# V2 t5 F9 h0 `

  20. 8 u. Y' Z, T* T$ T0 V
  21.               B1=2.*PI+B0 ;
    : a# l2 j+ Y/ H1 P2 w* g
  22. 4 g3 N4 H2 y  J1 @5 V9 R
  23.              }
    9 `7 P8 i" l' U, U' d

  24. . ~) Y7 d7 _0 M( G: O  R
  25.           }
    + T/ ^8 ]5 n5 g3 _5 a7 {6 T
  26. ; M: n. j1 ^: a- G  |
  27.           if (EQ_is_ge(B1,0.)) B0=1.; else B0=-1. ;
    8 X$ s" R& z% ^; V! ?' o: i2 V" y
  28. . N  J0 I  g6 Q' Y$ F$ i
  29.           B2=(-1.)*B0*(2*PI-fabs(B1));' I  a9 V: y, F* j
  30. 9 ?4 R: q( ~6 b: L' b: G
  31.           ang_rad[0]=0.; ang_rad[1]=B1; ang_rad[2]=0.;8 ?" ?* y8 v5 Z1 l/ n/ J1 D

  32. & Q; c, z% z2 ~. ?
  33.           ang_rad[3]=0.; ang_rad[4]=B2; ang_rad[5]=0.;
復制代碼

4 F1 \7 q' d6 P. l1 f" n" J' H% D通過輸出的NC程序,反向輸出的刀軌數據與原始刀軌文件對比,其數據結果一致。8 C4 h$ @- }# j; K8 q

7 E  w' T( _. p$ l3 R, Z+ K" I7 P   ]( c9 S5 n8 @* U( Q$ I
測試結果:
8 B- v' p8 }3 [
. B9 Y* b, {3 b# x+ }& N# N8 l, c! N. a' P8 Q9 f
反向測試結果
- x$ @+ ^$ q# \9 v

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 00:21 , Processed in 0.284721 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲天堂一区在线观看 | 免费看黄色aaaaaa 片 | 免费v片在线观看 | 国产成人在线精品 | 天天综合欧美 | 中文字幕天堂在线 | 亚洲色图偷 | 一区二区三区四区在线视频 | 四虎精品永久在线 | 国产日韩第一页 | 日韩精品中文字幕在线 | 葵司一区二区 | 精品日本一区二区 | 国产91高清 | 久久综合九色 | 四虎影院永久地址 | 亚洲欧美日韩一区二区三区四区 | 精品福利一区 | 天天干天天透 | 午夜美女视频 | 欧美另类在线观看 | 国产精品成人免费视频 | www日韩精品 | 黄色av国产| 亚洲精品一区二区在线 | 色香蕉网 | 一路向西在线播放 | 国产精品成人一区二区网站软件 | 午夜精品网 | 欧美综合网 | 男人的天堂毛片 | 91麻豆精品久久久久蜜臀 | 日韩av女优在线观看 | 免费看成人| 一区二区欧美日韩 | 日韩精品久久久 | 婷婷色在线 | 成人久久综合 | 男人在线观看视频 | 国产中文字幕第一页 | 久久在线免费视频 |