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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

查看: 6707|回復: 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);0 h. |# ~+ i4 ?/ ~; R$ F
  2. int  EQ_is_ge (double s, double t);
    ! u: v" G+ E! U4 ~3 H( z9 W  k
  3. int  EQ_is_gt (double s, double t);  Q2 @  ~. D5 |0 ?
  4. int  EQ_is_le (double s, double t);/ B5 ?1 n( z) L8 g
  5. int  EQ_is_lt (double s, double t);
    % P. @: W& z8 X! b3 _7 J( |
  6. int  EQ_is_zero (double s);+ G3 `/ g* |6 {3 q: o+ T
  7. //=============================================================& T8 H( V" q: m  ?9 q. `
  8. double ARCTAN1 (double y, double x );
    4 g# o0 s( @2 i: {
  9. //#=============================================================8 H) y7 ~# P5 u, C& z
  10. double ARCTAN2 (double y, double x );8 C- P  D5 }" x' v% S2 T6 v! d6 Q
  11. //#=============================================================
    0 G) k' c, m# F" N4 o
  12. double CheckConst ( double angle, double constvar  );
    4 q; S; c" ?6 P" N: W, L% @
  13. //#=============================================================2 l' R# m& j2 ]5 p! ^4 [
  14. double Check360 ( double angle );
    9 r/ n4 {, M  Q- P! P1 I3 [- H
  15. //#=============================================================4 J/ ]% ^' U% V  D) i
  16. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit );# P4 u& G4 C7 G5 Z
  17. //#=============================================================
復制代碼

, f. K: P; q7 _& y' q2 j6 H, `以下為部分源代碼,用于判斷,計算角度等% O( J$ z) x, p1 r# z4 l  h( _
  1. int  EQ_is_equal (double s, double t)
    $ T! {: k( s! w) p# g* ^: g
  2. ; [/ f" \. ~& [8 N+ I- n, ]7 B7 N
  3. {  u8 f; I3 O9 V

  4. - t# I4 B/ T# v) Z9 n: W
  5.   if (fabs(s-t)<= system_tolerance)  { return(1); } else { return(0) ; }
      N& H, U0 ]6 |" O! g0 ^9 w. d

  6. * {2 F8 |/ z! o- A! Q" }7 r
  7. }
    ; |, Q: x  p, {$ Q  f( R

  8. ) F$ U; P, Y' i% r+ p. A
  9. /***********************************************************************/, _- C0 v( Q+ I$ r0 c
  10. # h& ?6 z% F( c( U3 V  @
  11. int  EQ_is_ge (double s, double t)
    3 Z" m" \5 f5 K& r3 m5 T

  12. ) q$ F* r3 w$ L% U; A% T
  13. {
    1 A; W/ I6 Z5 R, S
  14. : M% U0 C/ ^. [6 z8 d& j2 C, p/ V
  15.   if (s > (t - system_tolerance)) { return(1); } else { return(0) ; }
    # p& o! ~: ?: `9 v4 o

  16. & s- A: g$ ^5 I* V# t
  17. }: H" I, {4 ?3 ~- W/ [
  18. & h( i0 B, N) e8 m' [8 h0 A" A
  19. /***********************************************************************/
    . b: u4 H( l. V3 F6 X

  20. : ]5 K* q% H# c
  21. int  EQ_is_gt (double s, double t)
    % J) v' j& \6 ?3 \

  22. 2 D; x' J: E  n
  23. {
    ' X( Z7 [( L/ u5 N* n: _
  24. + T( @0 J/ P8 o" {/ {3 g
  25.   if (s > (t + system_tolerance)) { return(1); } else { return(0) ; }
    & u' ?% O# p# G- }5 |
  26. 0 s! ]& N0 r& }5 Z
  27. }3 i' ?. |5 x& b5 ?7 i& a8 K
  28. . S4 ]9 `9 s# L) O; V$ m7 D
  29. /***********************************************************************/8 |( y9 G" q: T) l
  30. : U% O  S( D2 M
  31. int  EQ_is_le (double s, double t)/ e- }! d0 S6 w3 K7 t

  32. 2 x; Z$ Q+ p# t* z6 f6 H
  33. {/ H* ^# A( i- y+ T9 T" y, I: Y. M
  34. 2 L" ?4 }6 s" _5 i
  35.   if (s < (t + system_tolerance)) { return(1); } else { return(0) ; }
    ! T9 [' N% }% P/ w
  36. $ j3 w, B: Y8 R) r: c4 o6 @2 l
  37. }
    5 i5 b% [, F% H. x" L. h
  38. " U$ O) f% b7 b# g8 }
  39. /***********************************************************************/. Y  _  l0 M3 J# ~- K  m

  40. . i. B  N1 p. W3 i& v1 U
  41. int  EQ_is_lt (double s, double t)
    + Z: ?2 g! e3 v% j0 U( \
  42. - c: K( o& ?" B- g
  43. {9 H1 O$ C9 O; t/ F
  44. " h! r3 ^; ]! k! B  J
  45.   if (s < (t - system_tolerance)) { return(1); } else { return(0) ; }
    - m! ]3 r- h. {

  46. - @& t+ o4 f( r) r$ ?: [
  47. }
    * X& b9 R+ S* n' x0 S% Z
  48. - M4 p* X' k& Q: D0 t" \3 K' I2 R
  49. /***********************************************************************/# s( ^6 S4 g  \- }' w

  50. ! W  Q" _6 c+ H% V+ ?0 N
  51. int  EQ_is_zero (double s)! ^( W, i# ?0 W! |: \
  52. : ^: P6 ^1 J# Z* s& B/ f
  53. {& m) M$ d6 J' k$ y0 e

  54. 9 [( C. w( o+ x0 x' C
  55.   if (fabs(s)<= system_tolerance)  { return(1); } else { return(0) ; }
    ) o) y+ j& B* _2 {6 e: p  S7 N' r

  56. 5 S7 q- F$ h1 }
  57. }7 v' Y& ~( _; f+ M( \2 a) ]2 v
  58. 4 V( @+ ?3 ~4 H" w5 v' X
  59. //=============================================================% g5 o5 Q' a" m  N+ n  {

  60. 3 B$ q0 G3 q9 M; B1 q
  61. double ARCTAN1 (double y, double x )& \$ |# t* S8 x; D

  62. ! q( u( V8 D! ]" A
  63. //#=============================================================* {! |- Q: J/ {( v' r: |
  64. 0 D9 R1 b' S1 X2 y4 d# r9 p
  65. {
    . U; ?& h8 w. z& R! Y4 q  [/ B  k
  66. ) X7 U& u4 f% u5 v$ E3 t- Z
  67.    double ang;: W5 t1 x$ @/ j* G$ F/ m9 X( m+ f

  68. 4 Y5 u& k$ ^; `# s/ ~: B& {
  69.    if (EQ_is_zero(y)) { y=0; }
    2 f  ]! G, M$ ~3 n2 D" \& ?
  70. / \$ f* \7 s- ?1 _$ Z* ~0 a
  71.    if (EQ_is_zero(x)) { x=0; }
    " N8 u* N2 h9 U# Y/ P, m% U0 d/ ^

  72. 2 p9 U5 }/ }6 N4 L! x
  73.    if (y == 0 && x == 0) { return(0); }* Y  {; e  k6 r; [
  74. ! i5 t: d3 V& v+ S! I) A& _
  75.    ang=atan2(y,x);$ b# t! ~6 v) `; k

  76. , m$ y" x& J$ Z) ^8 _6 [
  77.    if (ang < 0 ) {
    ! W% P9 }1 E2 P" ^) ~
  78. 5 g( [, d& r- K9 @% q" H3 t
  79.       return(ang + PI*2);
    : @! a7 T: Y& s3 j$ N

  80. # k+ q; L$ ^6 t1 a" a8 ?; S
  81.    }
    / q+ y6 y+ V' T4 E
  82. + Z1 s0 W% M6 A, p
  83.    return(ang);0 _0 Y  x( C6 c
  84. 4 x- U) X+ K9 R& S* C0 c0 @
  85. }# L! ^0 f- Z3 p

  86. / k) `# n% M: X+ k0 E; z& r+ J$ V
  87. //#=============================================================. n2 x  }5 ^1 U: a! S
  88. # n6 C) t' I' S' F! [) i. Z* u
  89. double ARCTAN2 (double y, double x )1 T. v4 {0 ]. ?
  90. 6 Q7 G9 D% D+ T2 k* c- P
  91. //#=============================================================4 a; r; f/ ~+ o
  92. # s! U) }/ V) z4 ~
  93. {# X6 ~6 |0 M  R( ~

  94. 7 J& ]' ^: V: ]
  95.    double ang;: z6 v! W- o* V+ Z- q) i
  96. ' ]5 W$ ?5 X5 l2 b
  97.    if (EQ_is_zero(y)) {( g  ^3 A8 z+ ?4 S: V
  98. / L# U- C" J3 ~! B; l
  99.       if (x < 0.0) { return (PI); }
    1 G5 Y( V& L3 ]% a; ^
  100. % T' F  @7 V* t" D9 F
  101.       return (0.0);
    + N1 u" ]/ r, a6 p
  102. + U* @# Z: P  c+ m# q' w& h' R% p
  103.    }
    ) I8 m( d  c1 h, B- w% d- U$ {7 I
  104. ( `5 L6 _) w! d
  105.    if (EQ_is_zero(x)) {
    7 \9 ~6 q4 N& x0 S3 ?) |: t4 U

  106. $ N9 K8 |5 }  g1 S: y4 E& z6 `
  107.       if (y < 0.0) { return(PI*1.5); }
    + ]- V! D( |9 m

  108. $ x5 ]0 G$ V# I7 I2 `! M2 V
  109.       return(PI*.5);
    - k5 o" T" v( V9 a2 E
  110. 3 b, _) A( n% Y' k' Z; ~8 t
  111.    }# Z- j! b4 D5 E7 b

  112. : K/ C! q9 t2 ?( ^4 o
  113.    ang=atan(y/x);& t( w9 Y7 |1 y
  114. 5 y8 o" _7 Z0 R. K2 u( @7 i" r) ?
  115.    if (x > 0.0 && y < 0.0) { return(ang+PI*2.0); }& j/ m; |) F3 l# M) a2 e2 B  k

  116. ( a' L: ?' w& _; m0 @1 R
  117.    if (x < 0.0 && y < 0.0) { return(ang+PI); }+ T% \5 a& V- W& y) ^/ p8 n
  118. 0 k5 R% @6 z1 x
  119.    if (x < 0.0 && y > 0.0) { return(ang+PI); }
    ' {, F- v' f5 a

  120. ! D6 q4 g" z' H& F+ t
  121.    return(ang);
    8 y, z/ F! M4 g
  122. 1 v2 Q+ @# F3 c
  123. }
    9 E- J8 \1 J$ o. b$ ?

  124. 4 e6 M* n6 v8 ^+ z* ?- m) X0 t9 ]
  125. //#=============================================================# @4 j) [! U% f  z6 h0 `1 \
  126. 4 L& t" B; r4 @# ~  \& H8 u- _7 w
  127. double CheckConst ( double angle, double constvar  )
    : P& Z- y& u1 r; b5 }

  128. 9 W9 D+ n8 w) B
  129. //#=============================================================9 f$ `8 O7 _; _. m7 }4 K

  130. 7 c$ m* Y) t! f. Q! f' h6 d
  131. {
    4 Z' A) c9 ]/ ]2 k6 I8 k5 k
  132. $ \0 [. c' D" q' H/ j& g# P
  133.    while (angle < -constvar) { angle+=constvar ; }: u8 f; O! X; @6 C8 f1 W
  134. 5 y1 @! c: r* }, a- c4 P# R8 Z
  135.    while (angle >= constvar) { angle-=constvar ; }5 ?8 g0 r! c9 S( v6 L* ?
  136. , m6 [+ G9 ~- W$ _0 j3 b
  137.    return (angle) ;
    6 B* i6 I" V7 I! o$ i! m/ X

  138. : }- K0 V* G& \2 z5 x! g
  139. }
    $ ?7 v$ N! W0 K, z' @% [

  140. ; d5 M$ M  j8 v( ~/ T
  141. //#=============================================================9 k( Y0 b& |7 u4 X* U

  142. . f5 v1 ~) Y. s5 ^- s/ i$ Y$ p
  143. double Check360 ( double angle )6 x+ `7 h, c/ l- e) `/ i$ b% n, J8 O
  144. 8 s( K- a' \* C9 ?5 U& E' a
  145. //#=============================================================
    & F4 }4 t3 b4 @3 c
  146. 0 x, l- M* N7 Y+ B
  147. {- [8 V% g+ J2 q! U9 A

  148. " l% f2 A1 N1 T4 S1 d
  149.    while (angle < -360.) { angle+=360. ; }# z! g* k* a* P

  150. % B- m; O; [# \* c/ T
  151.    while (angle >= 360.) { angle-=360. ; }* _" }- S" Y/ Q" ]+ v. U8 G  n

  152. 5 l) d! [* M# m% D$ ]3 b5 t& f
  153.    return (angle) ;* I# D( d; z: t" T4 ?

  154. 9 J$ P5 s, X5 X; x1 N3 T/ Y3 p
  155. }3 {$ G( @% D9 c0 ]7 g9 ?# W

  156.   G: x* [8 h$ @' b3 d& a0 N, k
  157. //#=============================================================
    / U  y2 `" ]* \: P

  158. 5 s1 ?: F  U! m/ g0 m2 m
  159. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit )
    $ V* P/ B8 O+ G& d! C
  160. / I1 u$ Q5 H9 r0 s( X9 _
  161. //#=============================================================
    ) w. ]: }5 v/ l% k2 s0 m

  162. 7 R6 o( q+ m7 f$ `
  163. {
    2 `( `1 x6 r; B* M

  164. : \2 v3 f: c* }0 c" D7 X1 g* d- n
  165.    while ((angle-kin_axis_min_limit) > 360.) { angle-=360. ; }2 X. T9 d! H  V7 P( W
  166. 9 F5 a/ }) P7 Q, t
  167.    while ((kin_axis_max_limit-angle) <= -360.) { angle+=360. ; }
    / v+ }  i! h' Y+ l' U9 J* I2 A

  168. / q8 A- ]8 ?* F. H7 E
  169.    return (angle) ;
    & a4 O* G( y3 R( P

  170. , I. y# K0 e8 ]: q
  171. }
復制代碼
7 |/ y. \2 c! h& w9 v
以下為搖籃5軸計算過程代碼6 c8 E2 }4 r2 K8 t
  1. i=sin(ang_rad[1]);  j=0.0;  k=cos(ang_rad[1]);
    / K5 R3 R7 K# [# g* t( M* I
  2. 6 k* \, q+ ~# T, \; V
  3.          j=0.; B1=0.; B0=0.;
    # Z% i' d8 D/ s* q6 s/ T
  4. - M/ n+ }+ a7 n$ N( B  ^
  5.           if (EQ_is_ge(i,0.)) {9 ^+ j* j' }% G$ g  n
  6. 6 @' g1 @" P- @. B: H$ M
  7.              if (EQ_is_gt(k,0.)) { B0=acos(k); B1=B0; } else { B0=acos(k); B1=B0; }
    % g6 T( I$ ^6 P; `$ A- }( Z

  8. 2 ?. ~) n4 p& X, M* U
  9.           }
    7 o  a$ o$ Q$ _9 K
  10. : g! z* P) p, m! l6 v
  11.           if (EQ_is_lt(i,0.)) {' `" R: C+ i% y' \5 Q

  12. 2 ^, J6 L& U- A
  13.              if (EQ_is_lt(k,0.)) {
    3 d0 ?& u' s! }# R
  14. : |3 R* D7 @0 |4 b: f( O2 z
  15.                 B0=atan(i/k); B1=B0+PI ;
    1 `/ q2 N8 h8 t
  16. 9 C% {% p9 K" `  Q5 ]& k$ p
  17.              } else {  L$ _7 f7 D% Y. K

  18. 7 @( w; B: F$ K$ N7 S4 B& t
  19.               if (EQ_is_zero(k)) { B0=-PI/2. ; } else { B0=atan(i/k); }
    8 l3 o2 E& |1 H4 H7 Y) l: f4 c  b

  20. " ]3 a$ p, X  O5 K  p4 @, g2 \
  21.               B1=2.*PI+B0 ;
    ; b2 ?8 n# k- `7 y. j

  22. 6 t- x! c$ J; s2 H2 }) b) y
  23.              }
    . U! D# B" o. L( o) J5 W- L/ A+ R

  24. 1 u2 R5 \; p7 b; W$ i* b
  25.           }
    * J* Q. q7 }2 ^) L' L

  26. ' N& r5 Y  t6 `0 \) w
  27.           if (EQ_is_ge(B1,0.)) B0=1.; else B0=-1. ;
    1 ]7 Y! Q6 N" V# C. k- [
  28. 9 q& H7 I* C" v. Q, b
  29.           B2=(-1.)*B0*(2*PI-fabs(B1));: p" S) g* D/ k- F* M2 A

  30. + f/ Y- p/ w/ I; W
  31.           ang_rad[0]=0.; ang_rad[1]=B1; ang_rad[2]=0.;' E% Z9 I% f0 |
  32. # I, Z" A5 L# M! x2 h& \
  33.           ang_rad[3]=0.; ang_rad[4]=B2; ang_rad[5]=0.;
復制代碼
" ]) B, ]$ y4 V
通過輸出的NC程序,反向輸出的刀軌數據與原始刀軌文件對比,其數據結果一致。5 d9 L2 d; O+ x! G: T0 R  w$ i1 W- W

/ @, @* q" Y* \. K+ y9 u7 m  \   k5 V7 k! m/ h3 |7 k) H7 G
測試結果:6 ?2 {! J$ |  L9 C) _2 S

$ X" ]- A. j3 c% ^# y6 A( X! A# `- a" k! U# `9 e3 k
反向測試結果
0 ^: m" w" |5 I0 O9 ^

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 12:50 , Processed in 0.253664 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美 第一页| 色妞色视频一区二区三区四区 | 亚洲色图在线播放 | 日日操免费视频 | 亚洲天天操 | 国产黄大片 | 91看片看淫黄大片 | 乳色吐息免费看 | 日本亚洲在线 | 丁香花五月婷婷 | 国产一区二区三区四区在线观看 | 国产在线观看一区二区三区 | 免费成人结看片 | 日韩第一区 | 男人天堂手机在线 | 日韩免费网站 | 日韩视频在线一区二区 | 男女aa视频| 悠悠色综合| 成人激情视频在线观看 | 粉嫩av一区 | 国产精品av在线播放 | 国产免费一区二区 | 日韩大毛片 | 亚洲唯美 | 中文字幕1区2区 | 中文字幕在线观看一区二区 | 亚洲视频精品 | 亚州av在线播放 | 国产黄色在线观看 | 日本精品免费 | 久久精久久 | 久久视频免费看 | 国产精品成人av性教育 | 国产一线av| 色婷婷在线播放 | 久久男人的天堂 | 久久久精品视频网站 | 国产伦精品一区二区免费 | 91九色在线播放 | 国产伦理久久精品久久久久 |