Radełko.

Dyskusje dotyczące działania obsługi programu LinuxCNC
Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 7861
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Radełko.

#1

Post napisał: tuxcnc » 16 kwie 2020, 21:58

Temat potraktujcie jako wyzwanie, może sposób na zabicie koronawirusowej nudy, a może i na zrobienie czegoś całkiem użytecznego ...
Od dawna chodziło mi po głowie napisanie programu na radełkowanie nożem tokarskim.
Oczywiście nóż musi być specjalny, bo kąty są wariackie.
Teoretycznie problem jest trywialny - należy naciąć gwint wielozwojny, prawy na lewym, i gotowe.
W praktyce już tak różowo nie jest.
Ale do rzeczy.
Może gdzieś to jest napisane, ale ja się nigdy tym nie interesowałem, więc było to dla mnie zaskoczeniem.
Otóż gdy kontroler napotka kod G33 to czeka na sygnał indeksu z enkodera na wrzecionie. Zasadniczo wszyscy o tym wiedzą, że jest to po to, żeby kolejnymi przejściami trafiać w już naciętą nitkę gwintu.
Ale nigdzie nie widziałem rozważań na temat tego, co się stanie gdy kilka kodów G33 wystąpi bezpośrednio po sobie. Otóż kontroler czeka na indeks enkodera tylko przy pierwszym, kolejne jedzie już po kolei bez sprawdzania pozycji wrzeciona.
Co jest jeszcze ciekawsze, synchronizowana jest wyłącznie prędkość, bez znaczenia jest kierunek. Żeby było jeszcze ciekawiej, jeżeli kolejne ruchy G33 odbywają się w innych kierunkach, to suport zwalnia prze zmianie kierunku, po czym przyśpiesza i ruch coraz bardziej się rozjeżdża względem indeksu wrzeciona.
Krótko mówiąc uruchamiając poniższą sekwencję otrzymamy dość przypadkowe cuda :

Kod: Zaznacz cały

G0 Z0
G33 Z100 K1
G33 Z0    K1
G33 Z100 K1
G33 Z0    K1
G33 Z100 K1
G33 Z0    K1
G33 Z100 K1
G33 Z0    K1
; i tak dalej ...
Ale ma to też dobrą stronę.
Mianowicie nie ma potrzeby robić wybiegu wzdłuż osi Z aby przesunąć względem siebie kolejne nitki gwintu wielozwojnego. Taki wybieg skutecznie uniemożliwia wykonanie gwintu w przypadku gdy dalej pojechać się nie da.
Wybieg można zrobić nawet wzdłuż osi X, ważne żeby miał odpowiednią długość, bo będzie jechany z prędkością zsynchronizowaną z wrzecionem.
Ważne jest jeszcze to, że jeżeli każdy z następujących po sobie kodów G33 ma być osobno synchronizowany z indeksem wrzeciona, to trzeba po wykonaniu poprzedniego zerwać synchronizację, na przykład wykonując ruch G0 o niezerowej długości. Można nawet pojechać o milimetr w tą i z powrotem i kolejne G33 będzie już czekało na indeks wrzeciona.
Dzisiaj osiągnąłem spore postępy, ale program jest daleki od ideału.
Testowałem jeszcze z G61 i trochę mi się linie rozjeżdżały, teraz jest wpisane G64P0.5, ale jeszcze nie sprawdzałem na tokarce.
Ogólnie maszyna fajnie wygląda gdy tnie te helisy, jakby to dopracować, toby fajne rzeczy można było robić ...
Program to sub ngcgui, poniżej listing, oraz plik w załączniku.

Kod: Zaznacz cały

o<radełko> sub

#<Material_Dia> = #1 (=100 Średnica)
#<Pitch> =  #2 (=3 Skok)
#<Mult> =  #3 (=10 Krotność) 
#<Z_Start> =  #4 (=1 Początek w Z) 
#<Z_End> =  #5 (=-0 Koniec w Z)
#<Rpm> = #6 (=170 Obroty)
#<Coolant> =  #7 (=1 <> Chłodziwo)
#<ToolNumber> =  #8 (=99 Narzędzie)
#<Passed> = 0
#<Base_Dia> = [#<Material_Dia> + 2*#<Pitch>] ; 2*pitch because diameter mode

M6 T#<ToolNumber> G43 ;chose tool and load offsets
M3 S[#<Rpm>] G4P3 ; spindle start CW and wait for full speed
G64 P0.5
G7 ; diameter mode
G18 ; select XZ plane
G21 ; millimeters

o1 if [#<Coolant> eq 1] 
   M8 
o1 endif 

G0 X[#<Base_Dia>]
G0 Z#<Z_Start>

o100  while [#<Mult> gt #<Passed>]

#<Start>=[#<Base_Dia>-#<Passed>*2*#<Pitch>/#<Mult>] ; 2*pitch because diameter mode

G0  X[#<Start>]
G33 X[#<Material_Dia>] Z[#<Z_Start>] K[#<Pitch>]
G33 Z[#<Z_End>] K[#<Pitch>]
G0  X[#<Start>]
G33 X[#<Material_Dia>] Z[#<Z_End>] K[#<Pitch>]
G33 Z[#<Z_Start>] K[#<Pitch>]
#<Passed>=[#<Passed>+1]

o100 endwhile

G0 X[#<Base_Dia>]
M5 M9               ; stop spindle, all coolant off
G0 Z#<Z_Start>

o<radełko> endsub
radełko.tar
(10 KiB) Pobrany 70 razy




zbimuch
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 1
Posty: 15
Rejestracja: 03 wrz 2007, 22:36
Lokalizacja: Grodzisk Mazowiecki

Re: Radełko.

#2

Post napisał: zbimuch » 18 kwie 2020, 22:00

podobne rozwiązanie i film do obejrzenia , przy pomocy noża do gwintów
https://www.forum.linuxcnc.org/show-you ... -emco-120p

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 7861
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Radełko.

#3

Post napisał: tuxcnc » 19 kwie 2020, 06:45

zbimuch pisze:
18 kwie 2020, 22:00
podobne rozwiązanie
No właśnie o to chodzi, że podobieństw jest niewiele.
Widać to na filmie od 11 sekundy, a dobrze sobie film zatrzymać na 17 sekundzie.
Nóż nie tnie dwóch helis, prawozwojnej i lewozwojnej, tylko takie popieprzone pętelki, które czasem wyglądają w miarę, a czasem tragicznie, zależnie od długości, skoku, krotności i tolerancji ścieżki narzędzia (G61/G64).
Poza tym jest spory wybieg narzędzia w osi Z, na co czasem najzwyczajniej nie ma miejsca.
U mnie działa to inaczej.

P.S.
Gdzieś przeczytałem, że gość zrywa synchronizację G33 kodem G80. Trochę to dziwne, ale warto sprawdzić.


mag999
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 2
Posty: 713
Rejestracja: 14 sty 2015, 18:59
Lokalizacja: Polska

Re: Radełko.

#4

Post napisał: mag999 » 19 kwie 2020, 07:50

Robiłem to radelko na fanucu i była lipa. Na swój użytek starczało
Załączniki
P_20190104_075440_vHDR_Auto.jpg

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 7861
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Radełko.

#5

Post napisał: tuxcnc » 19 kwie 2020, 08:15

mag999 pisze:
19 kwie 2020, 07:50
Robiłem to radelko na fanucu
"To", to znaczy które ?
Puszczałeś kod z Linuxcnc (który ?) na Fanucu, czy chodzi o sama zasadę ?
Natomiast problem mam podobny, niektóre nitki są przesunięte względem miejsca gdzie być powinny i to psuje cały efekt.

P.S.
Wbrew pozorom, cięcie radełka nożem ma sens, bo nie każdy materiał da się walcować moletką.


mag999
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 2
Posty: 713
Rejestracja: 14 sty 2015, 18:59
Lokalizacja: Polska

Re: Radełko.

#6

Post napisał: mag999 » 19 kwie 2020, 09:44

to znalezione na forum linux cnc i przerobione aby działało na fanucu.

pewne jest to ze im większy kat bym mniejsze obroty bo posuw masz duży i maszyna możne nie nadążać. najlepiej wychodziło mi około 25 stopni

któryś cykl toczenia gwintów oferuje wielozwojny i może nim trzeba by kombinować

powierzchnia nie będzie taka jak z radelka , o tym zapomnijcie ale na pewno nada się jak ktoś chce miedz po prostu taka powierzchnię dla lepszego chwytu albo tak jak u mnie był to przymiar na gwinty.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”