Ale wiem , że koledzy mają i używają. Tylko czemu nikt nie wystawia ?
Znaleziono 2 wyniki
- 04 gru 2025, 06:09
- Forum: LinuxCNC (dawniej EMC2)
- Temat: suby linuxcnc
- Odpowiedzi: 4
- Odsłony: 633
Re: suby linuxcnc
Niestety, kobyły nie mam i nie miałem. Była niezgodna z moją filozofią 
Ale wiem , że koledzy mają i używają. Tylko czemu nikt nie wystawia ?
Ale wiem , że koledzy mają i używają. Tylko czemu nikt nie wystawia ?
- 03 gru 2025, 10:35
- Forum: LinuxCNC (dawniej EMC2)
- Temat: suby linuxcnc
- Odpowiedzi: 4
- Odsłony: 633
Re: suby linuxcnc
Tak pięknie AI poprawiło mojego starego suba, że aż grzech trzymać go tylko dla siebie 
Kod: Zaznacz cały
( ------------------------------ )
( W I E L O K Ą T SPIRALNY )
( ------------------------------ )
( Kamar - zmodyfikowane )
( Wielokąt z ciągłym przybraniem )
( ------------------------------ )
( USTAWIENIA )
( ------------------------------ )
(info: Nacinanie wielokąta z ruchem helikalnym)
o<wielokat> sub
#<z_poczatkowe> = #1 (=0 wysokość początkowa)
#<frez> = #2 (frez)
#<rozmiar> = #3 (wymiar)
#<glebokosc> = #4 (głębokość)
#<predkosc> = #5 (=100 prędkość)
#<boki> = #6 (liczba boków)
#<przyrost_okrazenie> = #7 (=2.0 przybranie)
#<x_wyjazd> = #8 (=0 pozycja X wyjazdu)
#<y_wyjazd> = #9 (=0 pozycja Y wyjazdu)
#<z_wyjazd> = #10 (=5 pozycja Z wyjazdu)
( ------------------------------ )
( ------------------------------ )
( Wartość domyślna dla Z początkowego )
o10 if [#<z_poczatkowe> eq 0]
#<z_poczatkowe> = 5
o10 endif
( Sprawdzenie minimalnej liczby boków )
o11 if [#<boki> lt 3]
#<boki> = 3
o11 endif
( Sprawdzenie przyrostu )
o12 if [#<przyrost_okrazenie> eq 0]
#<przyrost_okrazenie> = 2.0
o12 endif
( Wartości domyślne dla pozycji wyjazdu )
o13 if [#<x_wyjazd> eq 0]
#<x_wyjazd> = 0
o13 endif
o14 if [#<y_wyjazd> eq 0]
#<y_wyjazd> = 0
o14 endif
o15 if [#<z_wyjazd> eq 0]
#<z_wyjazd> = 50
o15 endif
( Korekcja rozmiaru o średnicę freza )
#<rozmiar> = [#<rozmiar> + #<frez>]
( Obliczenie promienia w zależności od parzystości boków )
#<kat_pol> = [180.0 / #<boki>]
#<cos_kat> = cos[#<kat_pol>]
( Sprawdzenie parzystości: modulo 2 )
#<reszta> = [#<boki> - [fix[#<boki> / 2] * 2]]
o16 if [#<reszta> eq 0]
( PARZYSTE: rozmiar = klucz na płasko )
#<promien> = [#<rozmiar> / [2 * #<cos_kat>]]
o16 else
( NIEPARZYSTE: rozmiar = bok → wierzchołek )
#<promien> = [#<rozmiar> / [1 + #<cos_kat>]]
o16 endif
#<glebokosc> = [#<glebokosc> * -1]
#<kat> = [360.0 / #<boki>] ( kąt między bokami )
( Obliczenie przyrostu Z na jeden bok )
#<dz_na_bok> = [#<przyrost_okrazenie> / #<boki>]
g17 g21 g61
g0 z#<z_poczatkowe> m3 s1
( Start w pierwszym wierzchołku - góra )
#<x_start> = [#<promien> * cos[90]]
#<y_start> = [#<promien> * sin[90]]
g0 x#<x_start> y#<y_start>
g0 z2 m3 s1
m8
( Zmienna głębokości )
#<z_aktualny> = 0
( Pętla - schodzenie spiralne )
o100 while [#<z_aktualny> gt #<glebokosc>]
( Pętla rysująca wielokąt z jednoczesnym schodzeniem )
#<i> = 1
o200 while [#<i> le #<boki>]
( Obliczenie następnej pozycji XY )
#<kat_wierzcholka> = [90 - [#<i> * #<kat>]]
#<x_cel> = [#<promien> * cos[#<kat_wierzcholka>]]
#<y_cel> = [#<promien> * sin[#<kat_wierzcholka>]]
( Obliczenie następnej głębokości Z )
#<z_cel> = [#<z_aktualny> - #<dz_na_bok>]
( Sprawdzenie, czy nie przekroczyliśmy docelowej głębokości )
o210 if [#<z_cel> lt #<glebokosc>]
#<z_cel> = #<glebokosc>
o210 endif
( Ruch XYZ jednocześnie )
g1 x#<x_cel> y#<y_cel> z#<z_cel> f#<predkosc>
#<z_aktualny> = #<z_cel>
#<i> = [#<i> + 1]
( Jeśli osiągnęliśmy docelową głębokość, przerwij wewnętrzną pętlę )
o220 if [#<z_aktualny> le #<glebokosc>]
o200 break
o220 endif
o200 endwhile
( Jeśli osiągnęliśmy docelową głębokość, przerwij zewnętrzną pętlę )
o230 if [#<z_aktualny> le #<glebokosc>]
o100 break
o230 endif
o100 endwhile
( Jedno przejście wyrównujące od miejsca zakończenia spirali )
#<koniec_wyrownania> = [#<i> + #<boki>]
o300 while [#<i> lt #<koniec_wyrownania>]
#<kat_wierzcholka> = [90 - [#<i> * #<kat>]]
#<x_cel> = [#<promien> * cos[#<kat_wierzcholka>]]
#<y_cel> = [#<promien> * sin[#<kat_wierzcholka>]]
g1 x#<x_cel> y#<y_cel> z#<glebokosc> f#<predkosc>
#<i> = [#<i> + 1]
o300 endwhile
g0 z#<z_poczatkowe>
g0 x#<x_wyjazd> y#<y_wyjazd>
g0 z#<z_wyjazd>
m9
m5
o<wielokat> endsub




