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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

查看: 6717|回復: 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);
    # P6 w) `( c  f3 k; c" y
  2. int  EQ_is_ge (double s, double t);$ Z4 u. O8 J$ A  _1 P, p# d
  3. int  EQ_is_gt (double s, double t);
      m" [$ Z1 r& Z/ l6 ^0 i
  4. int  EQ_is_le (double s, double t);
    2 |: g, v0 J( [1 D$ e7 y8 j3 i4 ]
  5. int  EQ_is_lt (double s, double t);& U/ o* r# X7 d: y( f
  6. int  EQ_is_zero (double s);- b+ ?; ~  g9 p' f2 f# k% G
  7. //=============================================================
    3 o. k- Z, v9 Q0 F
  8. double ARCTAN1 (double y, double x );
    / x( D5 y/ o& B
  9. //#=============================================================: ^+ b: V# B2 p1 {* A8 r2 D8 X
  10. double ARCTAN2 (double y, double x );# S$ E" f& T3 O# \0 A6 f7 h0 I9 z* ?$ Z
  11. //#=============================================================
    : L- t8 s7 C9 b" l7 R  \
  12. double CheckConst ( double angle, double constvar  );
    ' F& x' g( l9 o# R* r- s' \; [5 W3 b
  13. //#=============================================================
    0 E2 E3 ]: @' |; Y: _
  14. double Check360 ( double angle );
    # b" ^' ]8 C6 C0 w4 K
  15. //#=============================================================
    $ X( ^/ d3 `) ^; G
  16. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit );1 k5 y" u* f, }/ Z* K  |0 y
  17. //#=============================================================
復制代碼
; {. L; Z  q$ l
以下為部分源代碼,用于判斷,計算角度等
$ t8 }+ Q, l- n% @
  1. int  EQ_is_equal (double s, double t)' r( a& T, j+ I. ?
  2. 2 B0 F3 B0 F- r' {8 S: p
  3. {: o9 Y% u' z, P
  4. , f1 z! j# O- \. h3 z3 J8 T
  5.   if (fabs(s-t)<= system_tolerance)  { return(1); } else { return(0) ; }& A3 \$ ]  Q8 t- j, O2 g

  6. % Y* \7 Y% ?1 W# D9 b+ t
  7. }4 ^- p9 a- u6 n5 v3 f) O  D! j

  8. , M8 l  v5 P7 r) _
  9. /***********************************************************************/( C7 B3 J( ~2 B. S7 \4 o

  10. ) e" t7 a' s  d8 r4 r1 `) K6 S
  11. int  EQ_is_ge (double s, double t)' X7 R( z# ~2 L+ V2 q0 F% `* N
  12. 8 w$ B% B+ @! M* X& e2 {/ ^' H
  13. {
    9 h8 B. f$ q8 f* @5 h
  14. $ I' T5 t& z! u. \+ N; A, Q0 \2 U
  15.   if (s > (t - system_tolerance)) { return(1); } else { return(0) ; }3 ?$ y& M# U7 b- g# T5 k! X
  16. 0 U7 O/ {- U; A; F  e0 L
  17. }
    $ t! k, E+ [$ T& W, H- b
  18. ' A* J" w# t& [# K8 C, B3 L
  19. /***********************************************************************/
    6 F. o- m& ~5 P+ `4 v
  20. 3 b9 s- k2 ?  W! R- Z/ i
  21. int  EQ_is_gt (double s, double t)
    $ v8 T  D  U5 O

  22. * k) F/ U7 ^: W& B- s
  23. {
    & ?# v; c3 y  B2 j! N/ n5 g
  24. - g0 `$ \' [, t: }2 h+ V
  25.   if (s > (t + system_tolerance)) { return(1); } else { return(0) ; }
    + X" S0 j1 Y7 z9 g$ Q% |: \
  26. 0 x/ ?# c8 O! z- H8 b7 i
  27. }3 z3 o4 v# z+ S' z1 v. ?+ ]( X, e

  28. - }0 a+ F+ j7 c/ _* @2 S% Q' U
  29. /***********************************************************************/
    2 C$ C4 o1 r6 K" s+ Y' R# j7 e
  30. ! n; h. g1 W4 t7 I# Q; K. J* n# ]4 Z
  31. int  EQ_is_le (double s, double t)8 z6 s) i) ^1 l0 s! t6 u0 m7 ]

  32. $ A  x: J4 }% i
  33. {
    % f+ e/ e1 ?1 |
  34. . p* C1 N8 b: R* M
  35.   if (s < (t + system_tolerance)) { return(1); } else { return(0) ; }
    # m& y& g2 L  n
  36. " D- N# [) A% n$ W
  37. }
    # F! W5 j; V  f+ |) D8 p- e
  38. % `" h& F0 S/ L$ ]
  39. /***********************************************************************/
    2 h" F4 C' ~9 F1 ?  }
  40. 2 n) W3 J# K( N1 |. A7 o% _: U2 _: w
  41. int  EQ_is_lt (double s, double t)
    4 B0 X  F% k+ C: n9 N) c

  42. & l. r% [, {. Y: M" q( V
  43. {7 r. P6 p- T  K, L! Z! o! ?) K

  44. * ]$ d8 P$ @7 F" d. O; _
  45.   if (s < (t - system_tolerance)) { return(1); } else { return(0) ; }3 _8 s6 r( [6 Y9 c
  46.   \' s& N  O3 x9 Y. h; N
  47. }" ^2 R0 B1 E2 @4 o* c

  48. - Q+ g; n+ u: \, e+ n
  49. /***********************************************************************/
    . w9 q# Y3 F: d: z# o$ L

  50. 4 j4 ~0 [* `; I4 S
  51. int  EQ_is_zero (double s)1 {& U. Q+ D: [+ `7 @3 n

  52. 9 ]# Y; ^- r  D: o6 f
  53. {* F/ O  X6 L; C4 d. F+ u( }/ I! E

  54. : C! S( q5 T& F* ~4 u. k- ?7 x: [5 q
  55.   if (fabs(s)<= system_tolerance)  { return(1); } else { return(0) ; }
    & |1 `6 w8 i  ?! c" l, l* J, w
  56. ( o# n' {# i+ s& t: U: G0 C
  57. }
    ; @# @& v( t  F6 J

  58. ; ], y' h5 b5 }% s
  59. //=============================================================0 C  C  ]7 j5 z9 d5 w5 a% S4 F
  60.   H4 B; _1 J' y0 _
  61. double ARCTAN1 (double y, double x )# |, l2 v, A) x  j# B6 m7 `( C
  62. ) Q) |% `7 J  B- G+ s
  63. //#=============================================================, j: m* O) w, x
  64. 8 O" u6 l5 [0 T# P
  65. {: c8 ]1 O% d6 a9 `+ L
  66. 0 ^. O+ T! M+ F/ O9 H$ d( b
  67.    double ang;
    / |/ p; Z7 K0 V/ G8 R$ r

  68. 3 S* x; [5 b5 {* x# R7 E0 F3 b2 @. Z
  69.    if (EQ_is_zero(y)) { y=0; }) R, z. O' k2 _
  70. ! z3 T4 r6 z% X5 x1 F( T/ o- M; u
  71.    if (EQ_is_zero(x)) { x=0; }; D( s& ~9 {( |) A: d
  72. 7 a$ T. j5 A7 U6 O& |# J! G
  73.    if (y == 0 && x == 0) { return(0); }+ ^" {) c) H% `1 V- S$ ]! y8 n1 E* X6 b

  74. : M4 a, S. G! o) f( }+ A( @, V7 [
  75.    ang=atan2(y,x);
    ' b& [4 \0 P& p8 G; t- {

  76. 7 A; k* }! ]! X% n
  77.    if (ang < 0 ) {2 o5 o5 `9 E7 W2 a

  78. # _! J) u, z4 j9 V: o
  79.       return(ang + PI*2);
    : v2 j. h- t6 z3 w8 P% A* X
  80. $ ^4 @* k/ f! K# W) y
  81.    }4 H0 ?1 Y: R  ?& {' q

  82. & E3 Y/ a  s: @0 t8 I
  83.    return(ang);
    2 B* y" ~# W" I% J4 G/ e0 Q8 S: D
  84. * T) k/ U; J; A0 s9 j
  85. }' a) d4 v% `# y6 @8 N" N# Y

  86. / N% c6 k- E. g
  87. //#=============================================================
    : t& z( J& l# ~) W. `9 w

  88. 6 x- x. C+ j, p/ j) T( r& |7 y
  89. double ARCTAN2 (double y, double x )
    4 @1 K% v) Z# _8 o$ B
  90. & Z* C4 h- @6 j/ D
  91. //#=============================================================% M+ e; E) A" j3 _2 ~' W1 Y

  92. / A' l* S) k1 M1 {( Y# c
  93. {
    6 Y& ?! G0 d( J5 o: G: A/ H

  94. . R4 A. |, i' |
  95.    double ang;
    . y' c7 c+ I1 J% v: k
  96. - E& N& {1 x8 u7 g  W( j
  97.    if (EQ_is_zero(y)) {& T5 W0 ?- g% _3 C3 [1 K/ b; U
  98.   u1 K9 {# `  P
  99.       if (x < 0.0) { return (PI); }6 {9 Z) g- u# d. c% C. P2 V

  100. ) r0 E: K4 Z2 n) e# \6 V
  101.       return (0.0);; _6 h- u2 A2 v+ a

  102. 4 |% e5 Y- f9 b% \
  103.    }" f! L9 n+ W" g

  104. % X, b$ R# N  X% N$ k6 `4 x' r
  105.    if (EQ_is_zero(x)) {+ K  [0 P/ p  o( T9 t1 @

  106. * I" g' G& J' q: G
  107.       if (y < 0.0) { return(PI*1.5); }
    ! m) H7 H. e9 e
  108. : W  F$ v+ Z0 g9 o
  109.       return(PI*.5);
    . H4 ?9 Z* ]8 U  F1 U5 o& w5 E* b

  110. 1 i; ?. f, a" x& C
  111.    }: Z- H+ P, W& @' U
  112. + B9 B9 R$ ?% @7 z* T' m
  113.    ang=atan(y/x);# R$ q+ ^: n" ~% D6 U0 S6 l& ]$ k  i) \* D
  114. . a3 v- F- `% f
  115.    if (x > 0.0 && y < 0.0) { return(ang+PI*2.0); }
    ! J" ?+ G/ y0 c% w9 i/ R1 m8 ~

  116. ) Y/ o; |9 V0 B( ^0 _# L
  117.    if (x < 0.0 && y < 0.0) { return(ang+PI); }
    6 g$ G/ a9 w6 v8 e8 g, R+ t
  118. 9 N0 L: V& t6 h. J. a" _
  119.    if (x < 0.0 && y > 0.0) { return(ang+PI); }. P. n" q5 U5 W
  120. 6 B( h0 _0 b8 ~, T. f7 N- B; j
  121.    return(ang);
    2 v3 P% x+ r; ^1 t: J- t. j

  122. 5 k! o4 B5 _$ @" d( V) z/ j
  123. }
    ( M) a8 t8 g+ s
  124. 5 V' j. d. f. ^1 Q% S" s6 V9 w
  125. //#=============================================================5 h) S- o6 k% K  w! j6 b) c

  126. + Q4 t6 q' ~% g' R$ F' w: @) e
  127. double CheckConst ( double angle, double constvar  )
    : B0 F8 u8 [# ]5 f6 z
  128. 7 t: C; ?. I8 U9 Q8 p
  129. //#=============================================================% e( Y/ v- i8 n" l, O, Q
  130. ( _/ E# a# d  ~; `
  131. {
    1 ~+ ]: D2 X2 y5 V) D

  132. 1 G3 C  }" `2 q$ y
  133.    while (angle < -constvar) { angle+=constvar ; }
    : f- ^& W; v& n* e* k9 R8 P

  134. 2 j0 T' d" @; V6 J
  135.    while (angle >= constvar) { angle-=constvar ; }5 ?" f  X% E! {8 D$ i+ ]& _& R3 z
  136. : a6 p+ Z2 _( d8 z) f& F( Q
  137.    return (angle) ;
    " ?/ e/ M5 F% P3 E) i
  138. . y' T+ `  ]3 `  L
  139. }
    ! f! b* s9 J# |% g6 {

  140. + h& ~, K. d+ r6 C" ~: c
  141. //#=============================================================. S7 c5 ~* w, k8 S

  142. : O7 o! y+ B3 R1 }
  143. double Check360 ( double angle )
    . V. V) h0 B+ H3 F) l4 z

  144. . q% L# n  j7 a# Q& @. Y; a
  145. //#=============================================================
    - r6 ?) I: \. D" D  ^7 E5 Y; c
  146. & {- R& c6 D  M- E9 z- d
  147. {
    + ~$ x  U0 E2 C* R! {
  148. ) c9 Q9 x( ~( y' Q/ j1 t" G- j
  149.    while (angle < -360.) { angle+=360. ; }: W6 X& R0 a8 ^- s' I5 D" g
  150. - y0 [: F8 T  h# S* q, C6 `
  151.    while (angle >= 360.) { angle-=360. ; }& I* X; }! M! K  ^/ A
  152. , n6 S' H1 j! U4 L; T
  153.    return (angle) ;
    2 j2 x% L, r, M6 L0 k
  154. 3 O) G& ~( R$ q; H/ u% u7 c
  155. }. H2 T! J" _" i2 c, s, b3 M4 ~  W
  156. 1 n( m0 b6 A' e! {; D$ V
  157. //#=============================================================
    ) c, o% o6 H2 @# u, W$ n6 y
  158. % B. i3 Z  A  V7 W9 t9 n
  159. double CheckLimit ( double angle, double kin_axis_min_limit, double kin_axis_max_limit )
    5 L; u) c1 @, j4 {; j( j+ @: ~8 a
  160.   o) e8 T- g# `& p& L4 X) j  D, O
  161. //#=============================================================
    ; D7 F6 n! q- w# ]* a  x
  162. " L: V- M; H, o5 m
  163. {  {' N- T- v' B
  164. 7 Q. s7 J2 f; B; X7 D+ \. [2 Q
  165.    while ((angle-kin_axis_min_limit) > 360.) { angle-=360. ; }
    ; S1 T) a" r6 \; f

  166. 3 R, X: R5 k  \5 s+ ~& p" d# a
  167.    while ((kin_axis_max_limit-angle) <= -360.) { angle+=360. ; }
    3 ~1 v: r2 S" P& l  C7 S/ @

  168. 5 S, Q: Y3 [" m" k0 Y
  169.    return (angle) ;
    : o) z+ O! D  G4 ^& V8 W

  170. 9 @) B8 i/ Y+ o) m- k" i/ R
  171. }
復制代碼
1 M& [. w$ b3 H4 U: J/ u( B
以下為搖籃5軸計算過程代碼- |( `& G% k1 N
  1. i=sin(ang_rad[1]);  j=0.0;  k=cos(ang_rad[1]);
    , G6 N+ k. E5 X3 z& {* E# ~9 z% r
  2. & [8 ?: J" b$ g
  3.          j=0.; B1=0.; B0=0.;
    # z, o/ ^) g* c" c

  4.   g6 F# U/ i. h5 w( ^0 Q* A
  5.           if (EQ_is_ge(i,0.)) {, c8 ?6 Y( G! o( w" J/ H

  6. : t* m- o0 I8 K0 M8 t9 w8 T
  7.              if (EQ_is_gt(k,0.)) { B0=acos(k); B1=B0; } else { B0=acos(k); B1=B0; }
    # y8 d) z" l+ Q  n) S
  8. 9 x- I' v1 F/ L8 D0 ?4 s$ o
  9.           }
    & X4 d9 y3 k# z3 b

  10. * b6 {2 x6 X1 e
  11.           if (EQ_is_lt(i,0.)) {" R7 F' p) q- o: C) K0 h6 d

  12.   R, c9 L$ J; m$ S6 X
  13.              if (EQ_is_lt(k,0.)) {
    , d0 e7 F7 F5 K2 ^( T

  14. % i" n$ p* W9 \
  15.                 B0=atan(i/k); B1=B0+PI ;- c! M% [  z& Y$ a0 z; m! D9 p0 F

  16. 6 K& P# H3 o5 X
  17.              } else {
    ) y2 Q$ V6 A' ]# u

  18. - g0 b3 T4 Y5 v8 n9 w' F9 `
  19.               if (EQ_is_zero(k)) { B0=-PI/2. ; } else { B0=atan(i/k); }5 B# U" `/ \- r- {

  20. * x9 C3 B1 |# ^) h# x# |+ H/ k* F+ @: {
  21.               B1=2.*PI+B0 ;4 w! u: v; \# m3 X

  22. " ~+ P5 i1 T* e6 F( p. J
  23.              }9 K! W6 e; I1 i; e' Y2 r$ Y
  24. - ?4 v! T' M) H! k5 m& f
  25.           }
    & B# r7 B3 f- ?; `/ t

  26.   U3 E) @% C  y
  27.           if (EQ_is_ge(B1,0.)) B0=1.; else B0=-1. ;! u' v" t3 E; S% n
  28. 8 G, j3 N3 ^' d" ]
  29.           B2=(-1.)*B0*(2*PI-fabs(B1));
    & f: u' m! T5 v) s9 }" V9 h

  30. / V' a0 P. n% L" a8 W4 V5 ~) E# L
  31.           ang_rad[0]=0.; ang_rad[1]=B1; ang_rad[2]=0.;! ^, n" \; p7 {
  32. , y1 `5 n( E, I" t
  33.           ang_rad[3]=0.; ang_rad[4]=B2; ang_rad[5]=0.;
復制代碼
$ Z! P! X0 U" J8 b
通過輸出的NC程序,反向輸出的刀軌數據與原始刀軌文件對比,其數據結果一致。  k+ H: `3 v' b3 p5 T

( J! P! D4 g. Y0 C) v; x& G4 X
  d0 Q3 [8 Y5 n" Q8 W9 c: r  F3 \測試結果:
4 ]& m# T( C( k; p, x+ k$ | + W) D/ [0 s9 Y: l5 x

/ G1 u+ a1 s6 H* _5 R反向測試結果
- h# z( C5 v# B7 m' z8 }

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 23:47 , Processed in 0.228623 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产视频精品免费 | 亚洲一区在线免费 | 成人在线免费视频观看 | 精品久久一区二区 | 日本中出视频 | 婷婷在线免费观看 | 日韩精品一二 | 亚洲欧洲一区 | 91网址入口 | 91免费网站在线观看 | 亚洲第一av网站 | 国产欧美精品区一区二区三区 | 夜夜躁天天躁很躁 | 国产又粗又猛又爽 | 欧美三级视频 | 亚洲人天堂 | 日韩精品视频观看 | 日本午夜在线 | 久久精品一区二区三区四区 | 免费黄色国产 | 四虎黄色影院 | 四虎在线永久 | 国产精品久久久一区二区 | av片在线看 | 欧美特级特黄aaaaaa在线看 | 亚洲激情国产 | 久久成人免费视频 | 强开乳罩摸双乳吃奶羞羞www | h在线网站 | 亚洲免费在线视频观看 | 日韩有码在线播放 | 99热这里只有精品99 | 国内精品偷拍 | 成人午夜av| 91麻豆影视 | 亚洲永久av | 日本男人的天堂 | 可以看毛片的网站 | 91伊人| 国产性自拍 | 欧美亚洲视频在线观看 |