Stránka 1 z 1

Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 11:36
od Pipik
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?

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 12:12
od Thomeeque
Když načteš gcode, tak ti v náhledu zobrazí jeho pracovní prostor (minimal a maxima na všech osách, minimálně těch lineárních).

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 12:14
od Milan199
ctrl + F "-Z"

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 12:26
od Pipik
Thomeeque píše: 14. 7. 2026, 12:12 Když načteš gcode, tak ti v náhledu zobrazí jeho pracovní prostor (minimal a maxima na všech osách, minimálně těch lineárních).
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.
Milan199 píše: 14. 7. 2026, 12:14 ctrl + F "-Z"
V kterým prostředí? Protože v AXISu ctrl+F nic nedělá.

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 12:35
od zz912
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.

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 12:38
od Lukas_2
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.

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 12:50
od Thomeeque
Pipik píše: 14. 7. 2026, 12:26
Thomeeque píše: 14. 7. 2026, 12:12 Když načteš gcode, tak ti v náhledu zobrazí jeho pracovní prostor (minimal a maxima na všech osách, minimálně těch lineárních).
To je sice hezký....
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ů.

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 12:56
od Milan199
Pipik píše: 14. 7. 2026, 12:26
Milan199 píše: 14. 7. 2026, 12:14 ctrl + F "-Z"
V kterým prostředí? Protože v AXISu ctrl+F nic nedělá.
To snad funguje v jakémkoliv prohlížeči ?

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 1:16
od zz912
Lukas_2 píše: 14. 7. 2026, 12:38 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.
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.

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 1:31
od Pipik
zz912 píše: 14. 7. 2026, 1:16
Lukas_2 píše: 14. 7. 2026, 12:38 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.
Pak bych teprve do toho vložil ChatGPT.
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.

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 3:00
od fupe
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

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 3:31
od Pipik
fupe píše: 14. 7. 2026, 3:00 Nicméně proti lidské blbosti to stejně dokonale neochraní. Stačí mít blbě delku v tabulce nástrojů a je vymalováno.
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.

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 4:46
od pafik
Milan199 píše: 14. 7. 2026, 12:14 ctrl + F "-Z"
Zapomněls napsat "otevřít vygenerovaný G-kod v notepadu" ... :)
Ale je to to nejjednodušší a nejrychlejší.

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 5:35
od Thomeeque
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ší.

Re: Kontrola dráhy před spuštěním programu

Napsal: 14. 7. 2026, 5:52
od Lukas_2
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).