Program pro generování G-code pro řezačku svépomocí? 
[14.12.2024]
Program pro generování G-code pro řezání křídel na CNC řezačce ze souřadnic profilů v .DAT formátu nebo výkresu .dwg není až tak složitá záležitost. Mě by vyhovovalo vycházet z modelu v Autodesk Fusion. Dovedu si představit, že bych model křídla promítal na dvě roviny představující roviny levého a pravého pojezdu. Fusion umí průmět exportovat jako DXF.
Jde potom o to vytvořit z geometrie v DXF síť bodů - souřadnic bodů, po kterých mají jet vozíky řezačky. Samozřejmě to není zas tak triviální. Nalezl jsem ale mezitím vyhovující řešení v programu Jedicut a touto myšlenkou jsem se přestal zabývat.
[22.9.2025]
Řešil jsem přípravu řezání křídla na CNC pro nový model a zase mě naštval francouzský program Jedicut. Import mého DXF souboru provázely problémy, Jedicut určil nesmyslně klíčové body, nedařilo se mi natočit DXF tak, aby Jeducut určil klíčové body správně. A bez těch klíčových bodů nejde v Jedicut pořádně nakreslit dráhy náběhů a výběhů z řezu. Po dvou hodinách blbnutí u počítače nad akcí, která by měla být za 15 minut hotová, bez vyhlídky na úspěšné pořešení problému jsem začal přemýšlrt, co s tím. Rozhodl jsem se utratit peníz za lepší program, kterým je podle referencí modelářů program DevFoam, i když chtějí asi 50€ ročně nebo 160€ za doživotní licenci. Program všichni chválí. Ale když jsem začal řešit nákup licence, narazil jsem na plno nejasností a dost mě to zviklalo.
Tak jsem se zase vrátil k myšlence sepsat si vlastní program a sepsal jsem (trochu z legrace) dotaz AI ChatGPT:
"Řezačku křídel z pěny ovládám programem Grbl hotwire. Program očekává G-code. Mám nakreslené profily křídla v dwg, jak z nich vygeneruji g-code pro stroj se čtyřmi osami?"
Následovala diskuze nad programy Jedicut, AdriFoam X4, DevFoam, které mi AI navrhovala použít. To už jsem ale měl vše prostudované - zde zdroj. Tak jsem zkusil:
"Pomůžeš mi s napsáním vlastního programu?"
ChatGPT řekl:
"Ano 👍, s tím ti pomůžu. Pokud ti Jedicut přijde neohrabaný a DevFoam/Profili jsou moc složité nebo drahé, pak má smysl napsat vlastní jednoduchý generátor G-code – čistě pro tvoji 4osou CNC řezačku řízenou GRBL."
Po nějaké další komunikaci, kdy jsem vysvětloval geometrické uspořádání stroje, vyplivnul kód programu v Pythonu ( wiki ). Jazyk Python má knihovnu ezdxf, která umožňuje načítat a analyzovat DXF soubory. Lze tak z DXF vyčíst body nebo interpolovat spline křivky. Použil ho i autor programu Jedicut.
[25.9.2025]
Po třech dnech - třech večerech mám program, který běhá, umí všechny vstupy a parametry. Generuje g-code, nakreslí simulaci řezání. Super! Při praktickém testování se ale ukazuje, že geometrické výpočty navržené Chat-GPT jsou úplná kravina! A to to AI uváděla jako "vyřešíme soustavu rovnic". 😃
[26.9.2025]
Vlastní výpočet geometrie jsem si navrhl sám, stačila půlhoďka nad papírem a v podstatě matematika základní školy, žádné soustavy rovnic. Strukturu programu, proměnné pro držení tvarů řezaných profilů, manipulaci s daty, to AI navrhla správně. Zkusil jsem připravit program pro obdélníkové křídlo, poslal jsem program do GRBL Hotwire a dopadlo to dobře. Program jsem si pojmenoval Dxf2GRBL, učesal jsem si kód, rozdělil do knihoven, názvy proměnných, jak je postupně navrhovala AI, jsem změnil tak, aby to mělo nějaký systém. Programování s AI se mi zalíbilo, AI mi významně zkrátila křivku učení jazyku Python,
[27.9.2025]
Pokusy s přímým křídlem dopadly dobře, já ale aktuálně potřebuji říznout křídlo, které se zužuje. Vyexportoval jsem DXF s profily řezání pro nový model, ale zpracování v mém novém programu dopadlo katastrofálně. Začíná kolotoč řešení stále dalších a dalších problémů, práce na modelu letadla se odsouvá o další dny, program pro říznutí křídla pro nový model stále nemám. Mohl bych použít jedicut, ale chci to stůj co stůj zmáknout v mém programu!
[30.9.2025]
Tři dny usilovného vývoje a debugování. Narazil jsem na problém s orientací křivek v DXF, musel jsem se naučit otáčet je tak, aby na sebe koncové body a počáteční body navazovaly. Narazil jsem na problém s otočenými souřadnicemi. Řez profilem, který mám ve Fusionu orientovaný tak, jak chci aby byl orientovaný v řezačce, je po načtení z DXF otočený o 180 stupňů. Ale jen někdy. Musel jsem se naučit otočit to celé v programu. Narazil jsem na problém se společnými body sousedních křivek, které se v datech z Fusionu liší na 7. místě za desetinnou čárkou a mě se v programu jeví jako body různé. atd. atd. Naučil jsem se v Pythonu vyrábět debug výpisy, naučil jsem se operace nad maticemi s body, to vše s podporou AI, která mě zbavila nudného prohledávání referenčních manuálů. Je to jako když se něco učíte a vedle vás sedí senior, který zodpovídá vaše dotazy a ještě přidá nějaký komentář se souvislostmi, protože si pamatuje, na co jste se ptali předtím, včera, minulý týden. Ale musíte vědět, co chcete udělat.
Od rozhodnutí napsat si program sám uplynul týden, týden jsem tomu obětoval večery a neděle na to padla celá. Nakonec to dělá co má a vypadá to, že budu moci program rutině používat. Zužující se a geometricky překroucené křídlo jsem programem g-code pro stroj vygenerovaný mým programem vyřízl bez problému, levou polovinu i zrcadlově stejnou pravou polovinu, kdy zrcadlení zařidil parametr v mém programu. Tak zase mohu v dílně pokračovat se stavbou modelu. Viz Dxf2GRBL.
AI mi vývoj výrazně urychlila. Jsem programátor, programuji v c# a v databázi Oracle, ale tady jsem byl v jiném světě geometrie s pro mě novým jazykem. Pro věci, které bych programoval primitivními obraty, mi AI navrhla použít knihovny a obraty, na které bych hned tak nepřišel, kdo ví, jestli vůbec. A ještě mi dělala společníka, kterému jsem se mohl vypovídat a v chatu s ní jsem se mohl vracet k diskuzi, kterou jsme vedli v minulosti.