Zamocz

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: 2
Posty: 7853
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Zamocz

#1

Post napisał: tuxcnc » 06 cze 2021, 20:32

Co prawda mam sikacz do chłodziwa, ale postanowiłem go na razie nie montować, przede wszystkim z braku cichego kompresora, bo frezarka stoi w mieszkaniu i trzeba szanować zdrowie sąsiadów...
Alternatywą jest zanurzanie co jakiś czas narzędzia w pojemniku z olejem, bo problem dotyczy przede wszystkim obróbki aluminium i klejenia się wióra do frezów i wierteł.
Ponieważ ma być wszystko automatycznie, to narzuca się użycie jakiegoś kodu M.
Użycie definiowanych przez użytkownika kodów z zakresu M100-M199 jest nieporozumieniem, bo to ma być zwykły podprogram korzystający ze zmiennych Linuxcnc. Dlatego postanowiłem przemapować nieistniejący póki co kod M89.
Kodu nie ma ale przemapować się dał.
Nawiasem mówiąc, można go też wywoływać normalnie, czyli o<zamocz> call ale po co tyle pisaniny?
Zasadniczo wszystko jest w komentarzach, ale napiszę kilka słów.
Sekcja [LUBRICANT] w pliku INI opisuje położenie puszki ze smarem. ZPOS to wysokość na której ma się znaleźć koniec narzędzia, więc smaru musi być trochę wyżej.
Parametr Z_SAFE_POS dodany do sekcji [AXIS_Z] jest zasadniczo nadmiarowy, oznacza maksymalne górne położenie zetki w koordynatach maszynowych. Można by było to wyliczyć z innych parametrów w pliku ini, ale tak jest prościej, bezpieczniej i elastyczniej.
Program ma uwzględniać offset narzędzia, to znaczy że dowolne narzędzie ma być zanurzone o tyle samo.
Można dodać warunek sprawdzający parametr 5400 - Tool Number, i narzędzie o określonym numerze zanurzać mniej lub bardziej. Linia z G4 definiuje oczywiście jak długo narzędzie ma pozostać w kąpieli i też można sobie zmienić.
Co do samej jazdy, to są dwie zasady.
Pierwsza, że narzędzie ma wracać skąd wyruszyło, co jest raczej oczywiste.
Druga zasada wynika z moich prywatnych standardów. Otóż mam na maszynie zamontowanych kilka rzeczy na stałe, co grozi kolizją przy ruchach na przełaj. Dlatego istnieje założenie że w lewo nie ma niczego i na brzegach stołu nie ma niczego. Dlatego wszystkie ruchy których z zasady nie da się przewidzieć skąd się zaczną, odbywają się najpierw G53G0X0 a potem dookoła stołu. Przy innej maszynie może być potrzeba to zmienić.
Program zapamiętuje czy były uruchomione kody modalne zmieniane w programie i na koniec je przywraca.

UWAGA! Program nie był testowany na rzeczywistej maszynie. Na symulatorze działa, ale niczego nie gwarantuję. Trzeba sprawdzić i tyle.

Kod: Zaznacz cały

O<zamocz> SUB
(file zamocz.ngc)

(--- header ---)
(tuxcnc 2021)
(M89 routine for immerse tool in lubricant )
(replaces non existing M89 g-code)
(we assume that, lubricant can is permanently mounted)
(you must have the following in your INI file)
(without semicolons and you can change parameters)
;[RS274NGC]
;FEATURES = 4
;REMAP=M89 modalgroup=6 ngc=zamocz
;[LUBRICANT]
;XPOS = 230
;YPOS = 0
;ZPOS = -100
;[AXIS_Z]
;Z_SAFE_POS = 0
(--- end of header ---)

(---  store existing parameters  ---)
#<current_x> = #5420
#<current_y> = #5421
#<current_z> = #5422
#<absolute> = #<_absolute>  (remember in local variable if G90 was set) 
#<mist> = #<_mist> 	    (remember in local variable if M7 was set)
#<feed> = #<_feed>		 (remember feed value)
#<flood> = #<_flood>        (remember in local variable if M8 was set)
#<spindle_on> = #<_spindle_on> (remember in local variable if spindle was on)

G90 (absolute mode)
M9 (coolant off)
M5 (spindle off)
G53 G0 Z[#<_ini[AXIS_Z]Z_SAFE_POS>] (spindle up to safe position)
G53 G0 X0
G53 G0 Y[#<_ini[LUBRICANT]YPOS>]
G53 G0 X[#<_ini[LUBRICANT]XPOS>]
G53 G0 Z[#<_ini[LUBRICANT]ZPOS> + #5403]
G4 P1
G53 G0 Z[#<_ini[AXIS_Z]Z_SAFE_POS>] (spindle up to safe position)
G53 G0 X0
O<restore_spindle_on> if [#<spindle_on>]
    O<restore_spindle_cw> if [#<_spindle_cw>]
    M3
    O<restore_spindle_cw> else
    M4
    O<restore_spindle_cw> endif
O<restore_spindle_on> endif
G0 Y#<current_y>
G0 X#<current_x>
G0 Z#<current_z>

(--- restore parameters ---)

O<restore_inc> if [#<absolute> NE 1]
    G91 (restore only if it was set on entry:)
O<restore_inc> endif
O<restore_mist> if [#<mist>]
    M7 (restore only if it was set on entry:)
O<restore_mist> endif
O<restore_flood> if [#<flood>]
    M8 (restore only if it was set on entry:)
O<restore_flood> endif

(--------------------------)

O<zamocz> ENDSUB
M2



Awatar użytkownika

adam Fx
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 5562
Rejestracja: 04 lip 2004, 16:03
Lokalizacja: Gliwice

Re: Zamocz

#2

Post napisał: adam Fx » 06 cze 2021, 21:21

Dobry jesteś nie wiedziałem że się da tak zmapować. Pewnie przyda się to do jakiegoś projektu nie koniecznie do moczenia. Dzięki że się podzieliłeś :)
sorki za wszystkie błędy ... (dyslektyk) :?
Zobacz moje filmy http://www.youtube.com/user/pokachontass/videos

Awatar użytkownika

gluk
Stały bywalec (min. 70)
Stały bywalec (min. 70)
Posty w temacie: 1
Posty: 73
Rejestracja: 31 paź 2020, 10:59
Lokalizacja: Polska
Kontakt:

Re: Zamocz

#3

Post napisał: gluk » 06 cze 2021, 22:04

kawałek solidnego kodu :)
jeśli mogę dorzucić swoje 2 grosze, zastanawia mnie tylko czemu tak wcześnie włącza się wrzeciono. Czy nie lepiej byłoby zamiast:

Kod: Zaznacz cały

...
G53 G0 X0
O<restore_spindle_on>
...
O<restore_spindle_on> endif
G0 Y#<current_y>
G0 X#<current_x>
G0 Z#<current_z>
...
włączyć wrzeciono dopiero nad zapamiętaną pozycją XY na bezpiecznym Z i dopiero zejść na zapamiętane Z

Kod: Zaznacz cały

...
G53 G0 X0
G0 Y#<current_y>
G0 X#<current_x>
O<restore_spindle_on>
...
O<restore_spindle_on> endif
G0 Z#<current_z>
...
zawsze to trochę więcej oleju na frezie dotrze do celu?


drzasiek90
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1758
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: Zamocz

#4

Post napisał: drzasiek90 » 06 cze 2021, 22:24

tuxcnc pisze:
06 cze 2021, 20:32
Alternatywą jest zanurzanie co jakiś czas narzędzia w pojemniku z olejem, bo problem dotyczy przede wszystkim obróbki aluminium
Serio?
I jak często planujesz moczyć narzędzie? Przecież to nie chodzi tylko o smarowanie. Np frezujesz duży okrąg, będziesz dzielił go na kilka łuków żeby co chwilę zatrzymać wrzeciono , pojechać, umoczyć, włączyć wrzeciono, poczekać aż się rozpędzi i robić dalej? To będzie okrutnie irytujące i trwało będzie długo. Poza tym, jak to zrobisz w camie żeby dzielić duże kształty i wtrącać tam komendę?

Awatar użytkownika

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

Re: Zamocz

#5

Post napisał: tuxcnc » 06 cze 2021, 22:34

gluk pisze:
06 cze 2021, 22:04
zawsze to trochę więcej oleju na frezie dotrze do celu?
Ważniejsze żeby wrzeciono zdążyło się rozpędzić.
Ale wszystko zależy od konkretnej maszyny.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”