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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

查看: 6690|回復: 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);% ^. O1 I& j4 P4 J8 U* }7 n3 h' h
  2. int  EQ_is_ge (double s, double t);
    $ C/ o& z1 _+ H$ }+ t# Q  t
  3. int  EQ_is_gt (double s, double t);8 w  B1 a0 _5 n1 j7 V- T: U
  4. int  EQ_is_le (double s, double t);
    ' t) }) T6 T# P' \& I4 R% L
  5. int  EQ_is_lt (double s, double t);# y' p* W; W7 W+ Z
  6. int  EQ_is_zero (double s);
    0 ]0 H8 d: C, b7 f
  7. //=============================================================
    - Y9 Z6 S- u6 D# P! y
  8. double ARCTAN1 (double y, double x );
    8 `- J0 t% \& r; M5 Q
  9. //#=============================================================
    $ J4 N# ~+ U# B- `  r/ E* j
  10. double ARCTAN2 (double y, double x );
    * U  K) s: N( ?
  11. //#=============================================================- m. }/ ]! v, _
  12. double CheckConst ( double angle, double constvar  );
    . ?, z8 n) Y/ K. x
  13. //#=============================================================0 q, F$ Q: d0 I# B) m+ `
  14. double Check360 ( double angle );
    ! J! D6 M8 b5 [" R/ y' m
  15. //#=============================================================# w/ O; W4 S6 q8 d' W5 |
  16. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit );
    % z7 Z7 E9 \7 h4 H
  17. //#=============================================================
復制代碼
7 a6 U9 L; G3 A* ]! q1 I0 u2 t
以下為部分源代碼,用于判斷,計算角度等
/ c# b8 c+ U5 n& y# s' A
  1. int  EQ_is_equal (double s, double t)* F9 Z5 Z" H  u

  2. 6 P3 i# W9 r6 k# d: p/ j7 M0 R
  3. {
    , G* b6 L. j- n+ L# J! d9 [( {7 o
  4. # |) m4 t' R( x% i" E
  5.   if (fabs(s-t)<= system_tolerance)  { return(1); } else { return(0) ; }7 l4 F3 A; M0 B3 `) a
  6. ! ~. F! _* H; K. N
  7. }0 @$ N) X" Q4 {4 g) B
  8. ' C2 `4 R4 W1 G6 n
  9. /***********************************************************************/
    * V& J( m- p9 e6 f( L9 V7 Z

  10. ' P% x; ?: v: z0 D; a
  11. int  EQ_is_ge (double s, double t)
    % ~# e$ w5 c+ r) l5 g# ?* @
  12. % l4 t: ]4 D: t0 ~
  13. {7 |( `/ U; K! Y( g& p2 ^6 |
  14. % m5 d# q8 ]' k  Z" a  D; r+ Z
  15.   if (s > (t - system_tolerance)) { return(1); } else { return(0) ; }1 e3 N0 t$ t1 `; z$ ?& g7 s
  16. $ y6 f- H9 |8 y8 ~8 M/ `9 |* G( i# w
  17. }, G- r; D* ?$ c- A9 W8 H0 ?
  18. - g8 ^+ J- T! O9 R
  19. /***********************************************************************/
    & v& |  Y! F1 C+ J8 T+ l

  20. ' i$ ?$ W, |( m9 a0 Q0 ~
  21. int  EQ_is_gt (double s, double t)/ r3 r" e/ I4 ]  M' V0 f

  22. / Z9 W2 H! ~5 U
  23. {% Y3 \9 P+ _. u4 G$ h+ n

  24. 2 I; T, g# h- A" g! _
  25.   if (s > (t + system_tolerance)) { return(1); } else { return(0) ; }
    . i% B& I9 u. D+ |9 R  g* E  P9 \
  26. 1 O& C5 m; E1 A& V; R! U0 ^
  27. }$ t: [# P. @. `4 T/ _; x2 {# c% ^
  28. ! x' ^7 P& E" W+ l/ f. I! Z4 M
  29. /***********************************************************************/
    & E# \% |8 _& t6 [0 R3 t( Z
  30. ! ]8 i9 d' B8 a* L5 F
  31. int  EQ_is_le (double s, double t)1 U2 W8 N( k* C% d7 A

  32. + K( G4 `8 \0 G. O/ J
  33. {
      s1 J& p' t: ]0 B# M; i
  34. ! r  p6 S1 W9 h9 E2 `/ ~8 j
  35.   if (s < (t + system_tolerance)) { return(1); } else { return(0) ; }
    + c4 U# t8 \/ b& ]7 l& {( a
  36. / g# |9 ~9 R3 P$ N
  37. }
      s. Z$ N: b0 U/ w! P

  38. # r! b0 m4 i) A9 {/ K* S& s
  39. /***********************************************************************/
    , I/ o: H! Z/ v- n: z, a

  40. ' \8 h7 X" l9 V9 }, ~/ g# }) m1 ]
  41. int  EQ_is_lt (double s, double t)
    6 H1 M- P2 n' K8 c# W# a
  42. $ o! X8 j$ j, i1 C( ~4 [
  43. {4 Z( P/ s  B: f
  44. 9 }# P% h8 Y+ s! u6 t9 |  Y
  45.   if (s < (t - system_tolerance)) { return(1); } else { return(0) ; }: Y2 f  ]7 N7 A1 e9 h) ~+ [, d

  46. & ]% N, |6 l) ^
  47. }9 s( J% K" o' O3 E) Y

  48. 2 n( G0 a! y4 A: B$ w6 X
  49. /***********************************************************************/( K# A. l$ H5 p' O8 I6 Y

  50. $ \0 v8 I, ~6 N4 ~" q
  51. int  EQ_is_zero (double s)
    ; _8 q5 W, S) g; x& e4 ?. r# b

  52. . w9 j$ K, a6 W; k4 b
  53. {
    ( @/ a# L3 s) ^% {

  54. & r9 \/ H4 N) b; Z4 L1 X
  55.   if (fabs(s)<= system_tolerance)  { return(1); } else { return(0) ; }6 h/ ?' W' I( S$ C" m' `3 l% s3 L
  56. " c5 q- c( z5 H  b$ R
  57. }: f7 f! S1 h; P9 W9 d5 E
  58. 5 J7 [6 Q3 k: p+ f* G8 W1 R
  59. //=============================================================. |8 T- [( D- `

  60. + {# F. u, I2 e. b1 X& H8 l
  61. double ARCTAN1 (double y, double x )) V1 z: I1 o5 C

  62.   \9 |( C" |# n8 p3 W3 m& \$ {- N
  63. //#=============================================================0 M8 z: c/ {$ X8 I
  64. / k) t* Q, Q; Z, ~. H" t" C0 Q
  65. {
    7 o" G  H' i# t3 Q# S4 x

  66. : l  _. t/ i% P; M3 O+ Y. |8 ]
  67.    double ang;! `9 \  Z4 x+ H; d2 l( H: W
  68. - ]" s; \# T4 `# ~; ?- O
  69.    if (EQ_is_zero(y)) { y=0; }
    1 w( S9 y! Y6 K9 M9 U1 h1 D8 t6 E

  70. $ @1 L! n& Z/ O! f
  71.    if (EQ_is_zero(x)) { x=0; }- X; l, K% C) P; _# S$ j4 Q

  72. . W3 f; v! `2 ~6 N- E* L. z8 S# N. s+ H
  73.    if (y == 0 && x == 0) { return(0); }
    , r& F$ j' @% N/ T, G

  74. 1 M' v* y/ [8 X; t5 L0 Q# ^
  75.    ang=atan2(y,x);
    2 c3 o, }5 M) g! W8 S% m( H
  76. ; q9 L1 R; r2 ?, J3 b
  77.    if (ang < 0 ) {* m) m7 R0 ^  w4 E3 H6 X

  78. ( @% J. D. e' F' y
  79.       return(ang + PI*2);( W4 d1 ?. ^$ i7 a& p  u0 {* L/ L

  80. 2 \& y1 ]* E2 I
  81.    }
    : M! I9 j: o* {6 ^# I4 A$ `" r
  82. 7 `1 z" s0 a; O+ J1 H
  83.    return(ang);5 J! t; M, w9 t- B  L4 ~
  84. ! `3 M& S9 `6 {" c$ @: H9 r+ K
  85. }
    . e- A, }2 x2 y- ]/ P: s

  86. - \4 k4 ?# J" g. g' X) G+ |$ I+ o3 P, Q
  87. //#=============================================================
    , a" M+ a# E: z

  88. 7 W6 n$ U% v+ I$ @2 h
  89. double ARCTAN2 (double y, double x )
    3 c5 @5 ~7 s2 |) w
  90. 7 K, Y) P# Z( o5 d" g2 z: R$ M
  91. //#=============================================================+ j% [4 i& V4 i: C" a% E

  92. ) C$ N2 {% G  E8 @) R: H( _. R1 q
  93. {4 s  Q- K4 G- S: @" r
  94. & A; I' [" O# l% w, k( o
  95.    double ang;: E5 g* V, a/ q; w5 W$ {

  96. 4 _& I& ^6 l" g' ^7 n
  97.    if (EQ_is_zero(y)) {
    ; ~# z' s7 O2 t

  98. & b( I, M3 W' m: [7 G2 f3 N7 W8 m' [# j
  99.       if (x < 0.0) { return (PI); }0 X% u/ `- d0 {* z( `% ~2 B
  100. & `5 [+ N- C  x- L0 z1 d7 ?/ ^) h2 N
  101.       return (0.0);
    ' [2 \& `( K7 N) ^* c' Z$ Q
  102. / `( A: `" D& i
  103.    }4 t/ z3 n/ l2 v! G" J6 a

  104. . I) g, L* r9 M5 \; {1 i+ s% E
  105.    if (EQ_is_zero(x)) {
    4 W; U( H! k" ]/ @1 |3 t, G" L/ x

  106. ( B8 n8 K, n$ }- F  @4 }8 @2 l6 S
  107.       if (y < 0.0) { return(PI*1.5); }* n( {* E& N, P  n
  108. 3 U9 n6 u; ~) E, R7 n
  109.       return(PI*.5);
    & w* c. ^$ Q" w; v+ Z
  110. # J4 d- a4 k' O: X) {* c( G/ J
  111.    }' H5 A3 Q; B% Y: B! Q; u9 N( U" v' e; q- g
  112. 7 {+ X. v  ]6 O
  113.    ang=atan(y/x);
    4 _' s7 O- C) y. P: p9 P

  114. " O; m- F% I, [& c" k  e+ D7 F7 T
  115.    if (x > 0.0 && y < 0.0) { return(ang+PI*2.0); }" t) a+ ^% ?0 q
  116. / P7 D% d1 M% S1 `0 j2 q2 i
  117.    if (x < 0.0 && y < 0.0) { return(ang+PI); }
      n$ q. t0 ^3 g. m' Y- [

  118. " B. ?( s4 \" w0 e" f
  119.    if (x < 0.0 && y > 0.0) { return(ang+PI); }5 z" n# O" l/ c  I  x+ Z5 Y3 ^
  120. 1 ?( f/ ^- R% X2 ?3 i6 c" M4 B
  121.    return(ang);: [' M3 V# N% {2 a; J

  122. 2 }6 ?5 D: p0 T9 L; s! T
  123. }$ R# H9 A4 X1 m+ v0 x% S
  124. " J+ R7 F4 O% \# @
  125. //#=============================================================
    ; Q/ x5 M( u5 ^* N  m* i
  126. 9 R3 k4 j  T7 ?& r# [3 c' p8 R
  127. double CheckConst ( double angle, double constvar  )* ]2 D$ {5 Z  ?) E9 e" o

  128. 3 B/ y2 e- {. R6 |- i6 F
  129. //#=============================================================0 U* X- r6 L) U. j+ ?! m0 ]

  130. # l# a; g* F: @  Q+ e
  131. {# W$ ]$ }, h. H9 {2 ]+ K+ O

  132. . w8 _. I& V4 O
  133.    while (angle < -constvar) { angle+=constvar ; }
    ( v0 o, o$ x0 n9 G  W

  134. " [$ b* W6 X+ n5 B
  135.    while (angle >= constvar) { angle-=constvar ; }$ B+ e- d1 h7 O4 N: l- H3 ^+ W# b
  136. 4 f# J$ N. K2 J3 S* b
  137.    return (angle) ;: `% A  V' ?) _9 Z: \& Q

  138. / W8 W3 r4 X& H, A* P- @
  139. }7 X- w! t' {- G, B5 [4 E$ r0 b7 D1 e
  140. 6 H2 F4 ^2 v3 C% w* v
  141. //#=============================================================/ l6 @- Z! n- X: j( z( Z
  142. * Z- N  q) x' l: z" `$ X! X
  143. double Check360 ( double angle )5 Y- |+ s' t8 R3 p0 ^

  144. . N+ {, @2 I, L
  145. //#=============================================================/ P9 @% t& o1 t& v
  146. 8 K  h7 d9 y7 Z8 U7 V
  147. {
      C# i, v# T- [* B" I% b3 F
  148. - E# V# e4 ?/ a: i
  149.    while (angle < -360.) { angle+=360. ; }6 B2 g% X" P% p, F. V

  150. $ U2 A8 y$ v* p5 f, k8 R) C
  151.    while (angle >= 360.) { angle-=360. ; }
    6 K1 E5 f' c+ R3 {+ G# ^  m- [" j

  152. : W& h  b3 O* m4 F3 t4 B
  153.    return (angle) ;8 [( ?4 J5 T! d! A7 z+ l% g% x

  154. 7 q7 Y+ ^/ z. c. f
  155. }
    ) f$ V6 C. u( `0 w( N* \. U

  156. + B: e3 b7 B( l! \+ X/ f8 J
  157. //#=============================================================
    6 t4 L7 j0 x- r7 M5 Y& l3 C

  158. ( P5 e% f+ Y' V
  159. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit )
    ; w* Y+ R: ]( |# l, \! F( ~
  160. ' n- z& V$ w& P1 s1 _0 I  H2 V
  161. //#=============================================================
    1 y1 W, Z% Y1 J9 }4 ]

  162. 7 U. u" r2 i& P& }: v
  163. {  r9 }1 f8 S9 @' {, l

  164. 7 K0 S8 c0 J2 v" ~& X) y2 `
  165.    while ((angle-kin_axis_min_limit) > 360.) { angle-=360. ; }
    8 l2 t! s8 J, c- M  m
  166. 3 Y1 e" i* @# V/ b) Z
  167.    while ((kin_axis_max_limit-angle) <= -360.) { angle+=360. ; }
    9 t6 Q. c# t8 z* C/ w. q2 N
  168. . T/ I* H' Y, \
  169.    return (angle) ;0 A. {9 t, a8 j7 \+ @
  170.   M; {3 j( R; ~- ~2 \% r. ]
  171. }
復制代碼
, e: p9 H' v! ~# v
以下為搖籃5軸計算過程代碼  b3 B7 R4 x1 p+ n  F
  1. i=sin(ang_rad[1]);  j=0.0;  k=cos(ang_rad[1]);
    ' ~' n$ b. p8 C- k1 R" ^0 T7 W: F

  2. . g  g- z# W  D  |
  3.          j=0.; B1=0.; B0=0.;" W' u: e, X" }& ~. s+ j+ c" D9 M  b

  4. & p; w$ J+ s! y$ ?6 I7 o
  5.           if (EQ_is_ge(i,0.)) {7 D8 a" T  F1 J$ L

  6. % u) q0 t, t6 ~" g+ X
  7.              if (EQ_is_gt(k,0.)) { B0=acos(k); B1=B0; } else { B0=acos(k); B1=B0; }8 G2 U/ v  ]$ e" G  i7 r

  8. ; b- P% d  ~8 U6 i5 Z
  9.           }" v# w& `' B, ?! j/ y2 k) ^

  10. 0 J, w8 w/ j% t  b" Q
  11.           if (EQ_is_lt(i,0.)) {
    " G- v+ c% x* q' \/ f2 j9 Q

  12. * Z. B1 F+ m" `+ ?
  13.              if (EQ_is_lt(k,0.)) {$ n+ ~, Z) {+ V3 H

  14. " T, _+ o" H$ H7 E& q
  15.                 B0=atan(i/k); B1=B0+PI ;: a4 v$ d8 m& S+ v) F$ ?. C

  16. 0 }3 ^% e) n2 \; F9 f
  17.              } else {
    4 m1 ~& T8 R! p6 L$ P; Z3 y

  18. : b7 s1 f" T& h
  19.               if (EQ_is_zero(k)) { B0=-PI/2. ; } else { B0=atan(i/k); }  i; v9 O  ]+ f0 i% o8 y7 `$ I
  20. 5 L% M% P; ?5 Y5 J+ \6 i$ J
  21.               B1=2.*PI+B0 ;3 z* r7 Q- U% b+ c; S( f
  22. 4 X% D6 P' l( _
  23.              }
    7 d9 F! h% w$ v, C
  24. * e/ B% ~# g8 [
  25.           }4 g$ G  d6 y3 z5 U

  26. 4 C: d- @2 z1 S% N# e
  27.           if (EQ_is_ge(B1,0.)) B0=1.; else B0=-1. ;
    $ R/ z6 [1 D* ]7 a5 n

  28. " {! c  e" d% s* [5 E. J
  29.           B2=(-1.)*B0*(2*PI-fabs(B1));. F- W6 W0 X% q) V

  30. 7 P  \: m; r$ ?0 `$ k1 n
  31.           ang_rad[0]=0.; ang_rad[1]=B1; ang_rad[2]=0.;1 G! T% V! m" L
  32. 6 r! ?$ P7 G7 g) \% f% S0 v* v
  33.           ang_rad[3]=0.; ang_rad[4]=B2; ang_rad[5]=0.;
復制代碼
: n4 f- h) \6 h' p& B
通過輸出的NC程序,反向輸出的刀軌數據與原始刀軌文件對比,其數據結果一致。, t1 h& {" y2 ]9 U. ^9 |' J# b
/ x4 ?3 d/ H) Q$ W! P* ~1 N' X9 y  P
+ u/ q  T. [' M3 G7 q7 y* f+ M
測試結果:6 m5 E9 A" B0 M+ W, l, p
* z1 U: c! z2 c) f+ l

# F( q% X5 C1 t% r& \反向測試結果 8 H% C# ], Y+ j# _, S5 {

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-20 22:45 , Processed in 0.277239 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清一级片 | 亚洲精品久久久久久久久久久久久 | 毛片小视频 | 国内久久久久 | 免费在线观看国产精品 | 日韩精品www | 男女瑟瑟 | 欧美日韩一级在线观看 | 日韩欧美精品在线 | 黄色91网站 | 午夜在线精品 | 开心春色激情网 | 亚洲黄色片视频 | 桃色激情网 | 九九国产视频 | 激情综合激情五月 | 成人吃奶视频 | 日韩成人精品视频 | 一级片一级片一级片 | 久久精品2 | www.亚洲天堂 | a在线| 毛片在哪里看 | 中文字幕观看在线 | 久久精品伦理 | 日本久久综合 | 二区三区视频 | 日韩av综合 | 求毛片网站| 国产精品久草 | 国产精品欧美激情在线 | 国产精品国产成人国产三级 | 欧美激情国产精品 | 天堂资源站 | 迪迦奥特曼中文版 | 亚洲第三区 | 日本人の夫妇交换 | 第一av| 亚洲免费成人在线 | 国产片91 | 国产一区二区在线播放 |