Dvě rychlosti G1 v jednom souboru

Uživatelský avatar
pafik
Příspěvky: 2907
Registrován: 10. 2. 2013, 5:07
Bydliště: Praha 4

31. 12. 2024, 2:34

Odborníci na LinuxCNC, mám drobný problém.
Dá se nějak jednoduše udělat, aby jela mašina v ose X jednou rychlostí G1 a v ose Y jinou rychlostí G1? Tak, abych nemusel na každej řádek psát:
.
.
.
G1X100.0F250
G1Y50.0F100
G1X0.0F250
G1Y51.0F100
G1X100.0F250
.
.
.
Prostě zadat do souboru dva parametry G1 a volat je jménem?
Uživatelský avatar
zz912
Příspěvky: 1475
Registrován: 25. 5. 2008, 7:16

31. 12. 2024, 3:10

Tohohle jde docílit i tak, že si nastavíš pro osu Y maximální rychlost 100mm/min a v programu F250.
V X a Z ti to bude jezdit 250mm/min a v ose Y 100mm/min. Bude se ti to tak chovat i v kruhove interpolaci.

Bohužel nevím co je tvým záměrem, takže nevím kam to směřovat. Pokud to tak chceš mít jen dočasně, tak tu maximální rychlost pro jednotlivou osu lze měnit i jen HAL parametrem. Najdeš ho ve skupině "ini".
LinuxCNC - MESA 7i96
zz912.webnode.cz
Milan199
Příspěvky: 3342
Registrován: 18. 8. 2010, 9:04

31. 12. 2024, 3:34

Nejsem odborník na Linux ...

Z toho výpisu programu cos napsal se jedná o nějaké řádkování.
Nedalo by se tedy použít opakování těch tří řádků, s tím že pojedeš přírůstkově?
Uživatelský avatar
Thomeeque
Příspěvky: 9314
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

31. 12. 2024, 4:12

pafik píše: 31. 12. 2024, 2:34 Prostě zadat do souboru dva parametry G1 a volat je jménem?

Kód: Vybrat vše

( obecny g-code )
#11=100
#22=200
G1X100.0 F#11
G1Y50.0 F#22
G1X0.0 F#11
G1Y51.0 F#22
G1X100.0 F#11

( LinuxCNC g-code )
#<FEED_X>=100
#<FEED_Y>=200
G1X100.0 F#<FEED_X>
G1Y50.0 F#<FEED_Y>
G1X0.0 F#<FEED_X>
G1Y51.0 F#<FEED_Y>
G1X100.0 F#<FEED_X>
zz912 píše: 31. 12. 2024, 3:10 Bohužel nevím co je tvým záměrem, takže nevím kam to směřovat.
+1
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Uživatelský avatar
pafik
Příspěvky: 2907
Registrován: 10. 2. 2013, 5:07
Bydliště: Praha 4

1. 1. 2025, 9:13

Thomeeque píše: 31. 12. 2024, 4:12
pafik píše: 31. 12. 2024, 2:34 Prostě zadat do souboru dva parametry G1 a volat je jménem?

Kód: Vybrat vše

( obecny g-code )
#11=100
#22=200
G1X100.0 F#11
G1Y50.0 F#22
G1X0.0 F#11
G1Y51.0 F#22
G1X100.0 F#11

( LinuxCNC g-code )
#<FEED_X>=100
#<FEED_Y>=200
G1X100.0 F#<FEED_X>
G1Y50.0 F#<FEED_Y>
G1X0.0 F#<FEED_X>
G1Y51.0 F#<FEED_Y>
G1X100.0 F#<FEED_X>
zz912 píše: 31. 12. 2024, 3:10 Bohužel nevím co je tvým záměrem, takže nevím kam to směřovat.
+1
Tomíku, to je v bleděmodrém totéž, co tam nechci. Myslel jsem něco v tomto smyslu:
nadefinovat:
H1=G1=100
H2=G1=250
a pak místo parametru G1 na začátku zadávat H1 nebo H2.
Uživatelský avatar
pafik
Příspěvky: 2907
Registrován: 10. 2. 2013, 5:07
Bydliště: Praha 4

1. 1. 2025, 9:18

zz912 píše: 31. 12. 2024, 3:10 Tohohle jde docílit i tak, že si nastavíš pro osu Y maximální rychlost 100mm/min a v programu F250.
V X a Z ti to bude jezdit 250mm/min a v ose Y 100mm/min. Bude se ti to tak chovat i v kruhove interpolaci.

Bohužel nevím co je tvým záměrem, takže nevím kam to směřovat. Pokud to tak chceš mít jen dočasně, tak tu maximální rychlost pro jednotlivou osu lze měnit i jen HAL parametrem. Najdeš ho ve skupině "ini".
To by šlo, dobrej nápad, musel bych to omezení nastavit v konfiguračním souboru, ale drobnej problém je, že bych to pro různý materiály musel měnit. Hliník jinak, ocel jinak. A to se mi nechce, to je složitostí na úrovni toho co dělám teď (pokud G-kód nebude mít pár set řádků).
Uživatelský avatar
CZ_Pascal
Příspěvky: 883
Registrován: 14. 1. 2008, 8:24
Bydliště: Brno

1. 1. 2025, 10:26

pafik píše: 1. 1. 2025, 9:13 nadefinovat:
H1=G1=100
H2=G1=250
a pak místo parametru G1 na začátku zadávat H1 nebo H2.
No tak to přece lze pořešit definicí podprogramů

o100 sub (Podprogram pro posuv v X rychlostí 100)
G1 X [#1] F100
o100 endsub

o101 sub (Podprogram pro posuv v Y rychlostí 250)
G1 Y [#1] F250
o101 endsub

o100 call [123] (posuv v X rychlostí 100 na souřadnici 123)
o101 call [456] (posuv v Y rychlostí 250 na souřadnici 456)
Uživatelský avatar
zz912
Příspěvky: 1475
Registrován: 25. 5. 2008, 7:16

1. 1. 2025, 11:07

pafik píše: 1. 1. 2025, 9:18
zz912 píše: 31. 12. 2024, 3:10 Tohohle jde docílit i tak, že si nastavíš pro osu Y maximální rychlost 100mm/min a v programu F250.
V X a Z ti to bude jezdit 250mm/min a v ose Y 100mm/min. Bude se ti to tak chovat i v kruhove interpolaci.

Bohužel nevím co je tvým záměrem, takže nevím kam to směřovat. Pokud to tak chceš mít jen dočasně, tak tu maximální rychlost pro jednotlivou osu lze měnit i jen HAL parametrem. Najdeš ho ve skupině "ini".
To by šlo, dobrej nápad, musel bych to omezení nastavit v konfiguračním souboru, ale drobnej problém je, že bych to pro různý materiály musel měnit. Hliník jinak, ocel jinak. A to se mi nechce, to je složitostí na úrovni toho co dělám teď (pokud G-kód nebude mít pár set řádků).
Jak jsem psal, nemusíš to měnit v konfiguračním souboru. Stači změnit HAL parametr v "kategorii" ini. To můžeš udělat přes Halshow, nebo přes G-kód.
V G-kódě to půjde přes M67, nebo přes python, nebo Remapem volného Mka, nebo by to mohlo jít přes bash. S tím bashem si nejsem jistej.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
pafik
Příspěvky: 2907
Registrován: 10. 2. 2013, 5:07
Bydliště: Praha 4

1. 1. 2025, 1:36

CZ_Pascal píše: 1. 1. 2025, 10:26
pafik píše: 1. 1. 2025, 9:13 nadefinovat:
H1=G1=100
H2=G1=250
a pak místo parametru G1 na začátku zadávat H1 nebo H2.
No tak to přece lze pořešit definicí podprogramů

o100 sub (Podprogram pro posuv v X rychlostí 100)
G1 X [#1] F100
o100 endsub

o101 sub (Podprogram pro posuv v Y rychlostí 250)
G1 Y [#1] F250
o101 endsub

o100 call [123] (posuv v X rychlostí 100 na souřadnici 123)
o101 call [456] (posuv v Y rychlostí 250 na souřadnici 456)
Jo, takhle nějak jsem si to představoval. Jen jsem netušil, jestli půjde zkombinovat volání podprogramu rovnou s posuvem v ose.
Zkusím, díky.
Uživatelský avatar
pafik
Příspěvky: 2907
Registrován: 10. 2. 2013, 5:07
Bydliště: Praha 4

1. 1. 2025, 1:38

zz912 píše: 1. 1. 2025, 11:07
pafik píše: 1. 1. 2025, 9:18
zz912 píše: 31. 12. 2024, 3:10 Tohohle jde docílit i tak, že si nastavíš pro osu Y maximální rychlost 100mm/min a v programu F250.
V X a Z ti to bude jezdit 250mm/min a v ose Y 100mm/min. Bude se ti to tak chovat i v kruhove interpolaci.

Bohužel nevím co je tvým záměrem, takže nevím kam to směřovat. Pokud to tak chceš mít jen dočasně, tak tu maximální rychlost pro jednotlivou osu lze měnit i jen HAL parametrem. Najdeš ho ve skupině "ini".
To by šlo, dobrej nápad, musel bych to omezení nastavit v konfiguračním souboru, ale drobnej problém je, že bych to pro různý materiály musel měnit. Hliník jinak, ocel jinak. A to se mi nechce, to je složitostí na úrovni toho co dělám teď (pokud G-kód nebude mít pár set řádků).
Jak jsem psal, nemusíš to měnit v konfiguračním souboru. Stači změnit HAL parametr v "kategorii" ini. To můžeš udělat přes Halshow, nebo přes G-kód.
V G-kódě to půjde přes M67, nebo přes python, nebo Remapem volného Mka, nebo by to mohlo jít přes bash. S tím bashem si nejsem jistej.
HAL nepoužívám, a v ini se mi hrabat nechce. Furt to tam hledat .... :( .
Na M67 se mrknu, co se s tím dá dělat za kouzla. Díky.
Uživatelský avatar
zz912
Příspěvky: 1475
Registrován: 25. 5. 2008, 7:16

1. 1. 2025, 4:09

HAL nepoužívám.
LCNC je na HALu postavený, takže ho používáš akorát o tom možná nevíš. :-)
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
Pipik
Příspěvky: 1037
Registrován: 9. 11. 2016, 3:32
Bydliště: České Budějovice

2. 1. 2025, 11:27

uživatelský mkod, ve kterém jednou řádkou změníš nastavení maximální rychlosti osy, čímž dosáhneš toho co psal Zdeněk - zatímco jedna osa pojede nastavenou rychlostí, druhá bude omezena na nižší, i když má jet defacto stejnou rychlostí.

Když vydržíš, možná ti konkrétní řádek pošlu až budu v dílně.
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit :wink:
Uživatelský avatar
pafik
Příspěvky: 2907
Registrován: 10. 2. 2013, 5:07
Bydliště: Praha 4

2. 1. 2025, 6:56

zz912 píše: 1. 1. 2025, 4:09
HAL nepoužívám.
LCNC je na HALu postavený, takže ho používáš akorát o tom možná nevíš. :-)
Vím že tam je, ale nikdy jsem se s ním nebavil :) .
Uživatelský avatar
pafik
Příspěvky: 2907
Registrován: 10. 2. 2013, 5:07
Bydliště: Praha 4

2. 1. 2025, 6:58

Pipik píše: 2. 1. 2025, 11:27 uživatelský mkod, ve kterém jednou řádkou změníš nastavení maximální rychlosti osy, čímž dosáhneš toho co psal Zdeněk - zatímco jedna osa pojede nastavenou rychlostí, druhá bude omezena na nižší, i když má jet defacto stejnou rychlostí.

Když vydržíš, možná ti konkrétní řádek pošlu až budu v dílně.
Jo, to taky vypadá dobře.
Bohužel jsem nenašel manuál - komplexní knihovnu příkazů, jakou mám třeba k Machu (kterej už dávno nepoužívám). Jen knihovnu čistejch G-kodů.
Odpovědět

Zpět na „LinuxCNC - drive pod nazvem EMC2“