Kontrola dráhy před spuštěním programu
Zdravím
Že mi LCNC při spuštění gkodu zahlásí že program bude frézovat mimo limity stroje, to víme, to dělá.
Ale přirozeně není schopen - vzhledem k různým délkám nástrojů - ohlídat minimální výšku osy Z, to tak maximálně kdyby jela mimo rozsah samotné osy Z.
Určitě by ale šlo najít způsob, jak by při spuštění gkodu, nebo už při nahrání, to je jedno, zkontroloval, zda v gkodu nejde souřadnice osy Z do minusu.
Typicky - velká portálovka s vakuovým stolem, perfektně přerovnaným, čili v 99% případů frézuju ke stolu (nula je na stole). Nebudeme tu rozebírat proč, ostatně řada lidí už na to taky přišla proč je to výhodný. Ale hodila by se kontrola jestli náhodou není bota v programu a neposílá nástroj v ose Z do minusu, čili by frézoval do stolu. Občas se člověk totiž překlikne, sekáme to tu jak baťa cvičky, a je pak moooc fajn kytovat díry ve stole nebo zbytečně přerovnávat vrchní ztracenou desku o několik milimetrů níž.
Našli by jsme nějaký způsob kontroly?
Že mi LCNC při spuštění gkodu zahlásí že program bude frézovat mimo limity stroje, to víme, to dělá.
Ale přirozeně není schopen - vzhledem k různým délkám nástrojů - ohlídat minimální výšku osy Z, to tak maximálně kdyby jela mimo rozsah samotné osy Z.
Určitě by ale šlo najít způsob, jak by při spuštění gkodu, nebo už při nahrání, to je jedno, zkontroloval, zda v gkodu nejde souřadnice osy Z do minusu.
Typicky - velká portálovka s vakuovým stolem, perfektně přerovnaným, čili v 99% případů frézuju ke stolu (nula je na stole). Nebudeme tu rozebírat proč, ostatně řada lidí už na to taky přišla proč je to výhodný. Ale hodila by se kontrola jestli náhodou není bota v programu a neposílá nástroj v ose Z do minusu, čili by frézoval do stolu. Občas se člověk totiž překlikne, sekáme to tu jak baťa cvičky, a je pak moooc fajn kytovat díry ve stole nebo zbytečně přerovnávat vrchní ztracenou desku o několik milimetrů níž.
Našli by jsme nějaký způsob kontroly?
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit 
To je sice hezký, jenže pracovní prostor ohlídá jen v osách XY, a osu Z ohlídá jen směrem nahoru. Směrem dolů těžko, máš různě dlouhý nástroje. Pracovní prostor jsou defacto jen maximální rozjezdy, čili třeba když tam dám nástroj s průměrem 45mm, tak ti klidně budu odebírat materiál mimo maximum i minimum osy X i Y. A stejně tak když tam dám nástroj 150mm dlouhej, tak ti úplně v pohodě hrábnu pod minimum osy Z. To by se musely měnit minima a maxima os s ohledem na velikost nástroje, a to je samozřejmě nesmysl.
V kterým prostředí? Protože v AXISu ctrl+F nic nedělá.
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit 
Tyto kontroly probíhaj údajně při načítání ngc souboru do náhledu. Gmoccapy pro preview používá modul gremlin. Axis používá něco jiného.
Už ses naučil kompilovat LCNC ze zdrojáků? Pak už by to nemusel být problém tam přidat kontrolu Z<0 při G43.
Už ses naučil kompilovat LCNC ze zdrojáků? Pak už by to nemusel být problém tam přidat kontrolu Z<0 při G43.
LinuxCNC - MESA 7i96
zz912.webnode.cz
zz912.webnode.cz
To zní jako jednoduchý prompt pro chatgpt.
A připojit to buď k tlačítku cycle start nebo k tlačítku pro nahrání g Code.
A připojit to buď k tlačítku cycle start nebo k tlačítku pro nahrání g Code.
Aha, myslel jsem, že máš na jeden gcode jeden nástroj, u kterého dáváš touch-off Z=0 při dotyku nástroje se stolem, blbě jsem to pochopil. Jestli můžeš, přilož sem nějaký reálný gcode, který bys rád kontroloval. A tabulku nástrojů.
Naposledy upravil(a) Thomeeque dne 14. 7. 2026, 2:24, celkem upraveno 2 x.
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Dovolím si trochu nesouhlasit. Teď jsem s chatgpt dělal tracer pro analyzování spike při komunikaci PC -> Mesa karta. Pomáhám s testováním LCNC pod kernelem Xenomai4 místo Preempt-RT.
https://github.com/LinuxCNC/linuxcnc/issues/4236
S ChatGPT jsem zvládl neuvěřitelné věci (pro mě neprogramátora). ChatGPT mi pomohl s architekturou, s ukládáním do memory ring, pro přenášení dat mezi RT a userspace jsme použili shared memory atd. To jsou věci, které bych sám nezvládl.
Na druhou stranu mě ChatGPT neupozornil na to, že ten tracer dělám zbytečně, že všechny informace, které potřebuji už jsem znal z jiných nástrojů. Když už bych měl měl dělat tracer, tak bych měl měřit v jiných částech zdrojových kódů atd. Dále se mnou trochu vypekl, protože výsledná architektura tohoto traceru na konci byla jiná než jsme se na začátku domluvili.
Už jsem se sním naučil dělat tak aby se ChatGPT nezamotal do svých vlastních teorií, ale v některých věcech zatím je člověk nad ChatGPT.
Je potřeba pochopit, že LCNC je stavebnice a že jednu věc lze spustit ve více místech. Takže bych to do tlačítka cycle start, nebo do tlačítka k nahrávání kódu nedal. Stačí jiné GUI, nebo spuštění programu přes HALUI a máš problém.
Dále fylozofie ctrl F Z-, nemusí fungovat, když se pak v kódu objeví G54.
Kdybych to měl řešit já, tak bach se na EN fóru zeptal, kde v preview současné podmínky pro kontrolu jsou. Lidského developera bych se na začátku zeptal, zda je dobré tam přidávat další. Pak bych teprve do toho vložil ChatGPT.
LinuxCNC - MESA 7i96
zz912.webnode.cz
zz912.webnode.cz
No, tak s chatgpt bych to asi radši ani nekonzultoval. Nejen posledně mě zavedl do naprostých absurdit místo aby podal jednoduché řešení, a ve výsledku jsem s ním strávil podstatně více času než kdybych to hledal klasicky přes google...
Řešení s ChatGPT - 9hodin.
Řešení s google - 15minut.
Zdeněk má pravdu - spustíš program jinak než přes tlačítko (třeba přes pendant, že jo) a jseš v loji.
Při nahrání to dává smysl - je to prostá kontrola jestli je někde v gkodu souřadnice Z v minusu. Náhled projíždí i případné subrutiny, takže zkontroluje i ty.
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit 
Před lety jsem myslím pro uživate JIRKAM psal userspace componentu, ktera vyrobila piny něco jako minX maxX atd, který reprezentovaly hodnoty z G-codu. Tahalo to někde z hlubin plánovače. Vím, že sem bojoval s REMAPEM pro ATC aby dráhy výměny nástroje nezapočítával.
Na obrazovce byly čudliky "najed na stred", "objeď plochu" pro kontrolu jestli se gravirovani vleze do nastaveneho materialu, ale at hledam jak hledam, tak to v análech už nemám. MOžná by se to, jestli to Jirka ještě někde má, dalo použít jako základ pro vlastní bádání. Asi by se daly vytáhnout z tabulky i delky nástrojů a udělat patřičné kompenzace výpočtů. Jak už tu zaznělo, udělat se dá skoro všechno a to několika způsoby, otázka je co od toho očekáváš, kolik tomu věnuješ času atd atd.
Nicméně proti lidské blbosti to stejně dokonale neochraní. Stačí mít blbě delku v tabulce nástrojů a je vymalováno.
Martin
Na obrazovce byly čudliky "najed na stred", "objeď plochu" pro kontrolu jestli se gravirovani vleze do nastaveneho materialu, ale at hledam jak hledam, tak to v análech už nemám. MOžná by se to, jestli to Jirka ještě někde má, dalo použít jako základ pro vlastní bádání. Asi by se daly vytáhnout z tabulky i delky nástrojů a udělat patřičné kompenzace výpočtů. Jak už tu zaznělo, udělat se dá skoro všechno a to několika způsoby, otázka je co od toho očekáváš, kolik tomu věnuješ času atd atd.
Nicméně proti lidské blbosti to stejně dokonale neochraní. Stačí mít blbě delku v tabulce nástrojů a je vymalováno.
Martin
Jako jo, ale statisticky mi nejvíc zářezů do stolu vyrobilo to, že mi CAM vygeneroval dráhu v Z do minusu a já si toho nevšiml. Ať už tím že jsem blbě nastavil počátek obrobku (asi nejčastější), nebo jeden dílec z těch padesáti v nářezáku není zarovnaný s rovinou a pošle to níž, a nebo to spáchala nějaká 3D adaptivní operace, které občas někdy generují dráhy mírně pod obrobek.
Jako, asi bych si mohl spáchat nějaký skriptík co by to kontroloval třeba při odesílání souboru z počítače do mašiny, to by asi taky stačilo. Teoreticky jen projet soubor, a jak najde znaky "Z-" tak něco zařvat.
Ten blbec, kterej to vyrobil, pač mu zapoměli říct že to nejde vyrobit 
Leda "Z-" (nějakým regexem, aby to ignorovalo případné mezery atp.), musel bys hlídat, jestli se instrukce nevykonává v inkrementálním režimu a kdo ví, co ještě. Hodně nedokonalá varianta mojí původní rady podívat se na minimum v náhledu, která zadání neřeší.
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Myslel jsem aby chatgpt (nebo jiný model) napsal jednoduchý script na vyhledávání "Z-" v textu.
Pochopil jsem že to složitější být nemusí.
Já mám na strojích třeba funkci která mi v nahraném Gcode hledá příkazy M6. A vrací jednoduchou tabulku s číslem řádku a celé znění řádku. Dále je tam tlačítko převzít, storno a najít další. Při převzít automaticky skočí na daný řádek a mi stačí zmáčknout start ...
Jednoduchý script pro rychlou orientaci v programu.
Je to rychlé, jednoduché a efektivní.
... A chatgpt to dle mých představ napsal na první nebo druhý pokus (pamatuji-li se dobře)
Implementoval jsem si to už sám.
Kdybych ji psal já na svůj stroj, vyšel bych z toho jak funguje hledání M6 a jen bych to upravil.
Mám master funkci cycleStart, tak bych to nejspíš dal k ní.
Případně bych si udělal master funkci loadGCode a přidal bych to tam (ať tu funkci nemám jen lokálně v tlačítku).
Pochopil jsem že to složitější být nemusí.
Já mám na strojích třeba funkci která mi v nahraném Gcode hledá příkazy M6. A vrací jednoduchou tabulku s číslem řádku a celé znění řádku. Dále je tam tlačítko převzít, storno a najít další. Při převzít automaticky skočí na daný řádek a mi stačí zmáčknout start ...
Jednoduchý script pro rychlou orientaci v programu.
Je to rychlé, jednoduché a efektivní.
... A chatgpt to dle mých představ napsal na první nebo druhý pokus (pamatuji-li se dobře)
Implementoval jsem si to už sám.
Kdybych ji psal já na svůj stroj, vyšel bych z toho jak funguje hledání M6 a jen bych to upravil.
Mám master funkci cycleStart, tak bych to nejspíš dal k ní.
Případně bych si udělal master funkci loadGCode a přidal bych to tam (ať tu funkci nemám jen lokálně v tlačítku).