suby linuxcnc

suby linuxcnc

Dyskusje dotyczące działania obsługi programu LinuxCNC

Autor tematu
plemnik7
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 204
Rejestracja: 31 lip 2016, 16:52
Lokalizacja: Polska

suby linuxcnc

#1

Post napisał: plemnik7 » 27 lis 2025, 10:40

Witam
szukam suba którego kilka lat temu stworzył MIKI pod tokarkę
dokładnie chodzi mi o tak zwaną " kobyłę " wersja ostateczna , poprawiona , bez błędów w pełni działająca

może ktoś posiada ?

z góry bardzo dziękuję




kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 17166
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

Re: suby linuxcnc

#2

Post napisał: kamar » 03 gru 2025, 10:35

Tak pięknie AI poprawiło mojego starego suba, że aż grzech trzymać go tylko dla siebie :)
Obrazek Obrazek

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


Autor tematu
plemnik7
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 204
Rejestracja: 31 lip 2016, 16:52
Lokalizacja: Polska

Re: suby linuxcnc

#3

Post napisał: plemnik7 » 03 gru 2025, 22:38

Bardzo dziękuję kamar -przyda się na ploter/frezarkę
Szukam rozbudowanego suba pod tokarkę tak zwana "kobyłę" tam była możliwość wykonania kilku podstawowych operacji w jednym subie - Pad dysk w starym kompie i bida.

Wiem że twoja biblioteka jest obszerna 😁.

Może coś na tokarkę ze "starych zapasów" znajdziesz ?
Do dziś korzystam z Twoich subow dostępnych na Twojej stronie www.


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 17166
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

Re: suby linuxcnc

#4

Post napisał: kamar » 04 gru 2025, 06:09

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 ?


IMPULS3
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 7992
Rejestracja: 25 gru 2010, 21:55
Lokalizacja: LUBELSKIE

Re: suby linuxcnc

#5

Post napisał: IMPULS3 » 04 gru 2025, 07:01

Tez nie używam kobyły i nawet chyba nie mam jej bo jest zbyt dużo tabelek, ale temat o niej ponizej, tylko nie wiem na której stronie była wersja finalna, :)
ngcgui-toczenie-mocno-rozbudowana-proce ... 2a#p301658

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”