POSTPROCESOR PRO ZVOLENÝ STROJ K SW FREECAD SVOČ FST 2018 Bc. Martin Frnoch Západočeská univerzita v Plzni, Univerzitní 8, 306 14 Plzeň Česká republika ABSTRAKT Tato práce se zabývá tvorbou postprocesoru pro software FreeCAD. K čemuž je využit programovací jazyk Python. Zmíněný postprocesor je vytvářen pro zvolený stroj, kterým je EMCO Concept MILL 105 s řídicím systémem Sinumerik 828D. Po navržení postprocesoru dojde k otestování jeho výstupů přímo na stroji. Práce si klade také jako druhotný cíl představit FreeCAD, jakožto bezplatný, open-source CAD/CAM systém a rozšířit tak povědomí o tomto software. KLÍČOVÁ SLOVA Postprocesor, Python, CNC, FreeCAD, CAD, CAM, Open source, ISO kód, EMCO Concept MILL 105, Sinumerik 828D ÚVOD CAM systémy se využívají především využívají tam, kde jsou se výrobě nasazeny CNC stroje pro výrobu. Tyto systémy přinášejí řadu výhod, zejména usnadnění vytváření obráběcí technologie pro složitější obrobky. Pro ty by tvorba programu v dílenském programování u stroje byla časově náročná nebo dokonce nemožná, zejména v případě tvarových ploch. Jednou z velkých nevýhod těchto systémů je vysoká pořizovací cena a poměrně vysoké roční poplatky za technickou podporu softwaru. Právě proto je cílem této práce vytvoření postprocesoru právě pro modul Path bezplatné aplikace FreeCAD. Tato aplikace spadá pod licenci LGPL a je ve fázi vývoje, což lze poznat podle toho, že označení aktuální stabilní verze softwaru je 0.16 a další vyvíjená verze má označení 0.17. Běžně má první publikovaná hotová verze kteréhokoliv softwaru označení 1.0. Stále se tedy jedná o vývojovou verzi, která není zdaleka úplná. Práce chce tak přinést určiý příspěvek k vývoji systému FreeCADu, protože jeho součástí jsou i postprocesory. Na obrázku (Obrázek 1) je možné vidět dráhy nástroje vytvořené v Path modulu aplikace FreeCAD pro jednu ze vzorových součástí. Model byl vytvořen pomocí CAD části FreeCADu, tedy PartDesigin modulu. Dráhy byly vytvořeny pomocí CAM části (Path modulu). Zelené křivky značí pracovní posuv a červené křivky rychloposuv. Obrázek 1-Dráhy nástroje Obrázek 2-EMCO Concept MILL 105 [1] Po vytvoření postprocesoru je dalším cílem ověření jeho funkčnosti, a to vygenerováním ISO kódu pro předem zvolený stroj. Tímto strojem je EMCO CONCEPT MILL 105, k vidění na obrázku (Orázek 2). Jde o malou tříosou frézku, která se využívá pro účely výuky v prostorách katedry technologie obrábění, fakulty strojní Západočeské univerzity v Plzni. Jedná se o stroj s poměrně malým pracovním prostorem o rozměrech 200(X),150(Y), 250(Z) mm a stejně tak i jeho výkonem o 1,1 kw. Předpokládaným systémem, pro který má být postprocesor vytvořen, je tedy Sinumerik 828D. Totiž v průběhu práce se očekává změna řídicího systému z aktuálního Sinumeriku 840D emulovaného přes WinNC právě na plnohodnotný řídicí systém Sinumerik 828D.
Nejprve bylo nezbytné si ujasnit všechny vstupní informace a okolnosti související s řešením problematiky tvorby postprocesoru. Proč se zabývat právě tvorbou postprocesoru? Jedním z důvodů je, že tato oblast si zaslouží podrobnější prozkoumání neboť postprocesing, tedy překlad výstupu CAM systému na funkční vstup pro obráběcí stroj, paří mezi klíčové kroky při realizaci obrábění z hlediska automatizace. Další odpovědí, která zároveň zodpovídá na následující otázku, proč byl zvolen právě již zmíněný software FreeCAD je, že povědomí o existenci tohoto softwaru je velmi nízké. Většina uživatelů a to jak pro profesní, tak i pro soukromé účely zvolí raději komerční varianty. Vzniká zde určitá averze proti těmto bezplatným softwarům. Například na katedře technologie obrábění se používají z CAD/CAM systémů hlavně CATIA a SolidWorks. Práce si tak také klade nepřímo za cíl, kromě příspěvku k tématice tvorby postprocesoru, i představení této bezplatné aplikace. Je jednoznačné, že FreeCAD se zatím s těmito komerčními velikány v oboru nemůže v žádném případě měřit. Na druhou stranu jde ale o bezplatný software, který je stále ve vývoji a pomalými krůčky se stává stále více sofistikovanějším. Každý open-source software začíná jako podřadná napodobenina té nejpoužívanější a nejznámější komerční varianty. Příkladem pro srovnání zde může být kancelářský komerční software Office Word od společnosti Microsoft a bezplatný Open Office (Libre Office) Writer od The Document Foundation, který po stránce funkčnosti dosahuje na úroveň komerčního Wordu. ANALÝZA STÁVAJÍCÍ SITUACE Před samotnou tvorbou postprocesoru bylo nezbytné, se podrobněji seznámit s touto problematikou. Tedy podrobně analyzovat veškeré aspekty vstupující do tématu tvorby postprocesoru. Sem patří oblasti rešeršního charakteru, a to sice problematika postprocesorů jako taková, která zkoumala způsoby získání postprocesorů a také druhy a rozdělení jednotlivých postprocesorů. Další rešeršní oblastí byl průzkum dosavadních výsledků se zaměřením na FreeCAD. Kde byly zjištěny dostupné postprocesory a samotný způsob jak postprocesor pro FreeCAD získat. Zde bylo zjištěno, že jediným možným způsobem je vlastní tvorba pomocí programovacího jazyka. Tímto programovacím jazykem je Python, což je open-source, bezplatný, multiparadigmatický software. Dalším bodem analýzy bylo detailní seznámení se s FreeCADem a prozkoumání jeho možností. Předmětem zkoumání byly CAD části (Part Design a Part modul) a především CAM část (Path modul). Na obrázku (Obrázek 3) je možné vidět vytvořené modely vzorových součástí včetně drah nástroje. Předlohou pro tyto modely (výkresovou dokumentaci) byla bakalářská práce L.Vintra [2] Důvodem je, že cílem této práce byla tvorba vzorových součásti pro výuku NC programovaní se zaměřením právě pro stejný stroj jaký je použitý v této práci a sice EMCO Concept MILL 105. Modely byly vytvořeny v PartDesign modulu a dráhy nástroje pomocí Path modulu. Obrázek 3 - Modely vzorových součástí s vytvořenými dráhami Pro tvorbu postprocesoru je nezbytné znát v jaké formě vystupují data z CAM systému. V podstatě jde o interní kód softwaru, který v sobě nese jednak geometrické informace o poloze nástroje a take technologické informace tykající se řezných podmínek. Tomuto kódu se říká CL data 1. V případě FreeCADu má tento kód tvar podobný spíše ISO kódu, kde G0 reprezentuje rychloposuv (Rapid) a G1 pracovní posuv (Feed). Podobnost s ISO kódem je patrá i pro operaci výměny nástroje, neboť ta je řešena stejně jako v příapdě ISO kódu přes příkaz M06 s parametrem T a číslem nástroje. 1 Cutter Location data informace o poloze řezného nástroje
Přesto tento kód není samostatně použitelný pro správné fungování na cílovém stroji. Vývojáři se pro tento tvar rozhodli kvůli minimalizaci nutnosti překladu interního kódu na ISO formát, což je velmi sofistikované pro tvorbu dalších postprocesorů. Na následujícím obrázku (Obrázek 4) je ukázka CL dat FreeCADu získaných pomocí dumper postprocesoru, který generuje interní kód systému beze změny do editoru kódu a neukládá soubor na disk. První část jsou úvodní komentáře v kulatých závorkách, kde je oznámeno, že jde o výstup generovaný pomocí dumper postprocesoru. Další informací je, že následující data nejsou použitelná pro samotné řízení stroje, jak je na první pohled patrné, ale slouží pouze pro inspekci syrových dat. Uživateli je dále doporučeno aby pro zvolil postprocesor přímo pro svůj cílový stroj. To v případě stroje EMCO Concept MILL 105 však není možné, neboť takovýto postprocesor zatím neexistuje. Po této úvodní části, následuje již sekvence samotných příkazů. Kde jsou jednotlivé příkazy G a M s jejich argumenty, rozdělené po jednotlivých operacích. Před každou operací, která má jiný nástroj než ta předchozí následuje výměna nástroje a to pomocí příkazu M06 s argumentem T. Obrázek 4 - Ukázka CL dat FreeCADu Postprocesor tak bude mít za úkol převést výše zobrazená data na formát ISO kódu. Příklad tohoto překladu je znázorněn v následující tabulce Tab. 8. Jde tedy o odstranění řetězce Command dále o převedení informací v hranatých závorkách a odstranění dvojtečky u hodnot argumentu. Další nesrovnalostí je že všechny hodnoty které nejsou zadány jako celé číslo, mají čtyři desetinná místa za tečkou, což bude nutné zmenšit na tři a v případě posuvů na celé číslo. Mimo to je nutno NC program vybavit bloky obsahující informace, které nejsou obsaženy v CL datech. Tyto informace se tykají uvodní části programu jako například nastavení nulového bodu (G54) či pracovní roviny (G17) atd. Vstupní CL data Výstupní ISO formát Command G1 [ F:3.3333 X:83 Y:67 Z:12.5 ] G1 X83 Y67 Z12.5 F3.33 Tabulka 1 - Ukázka převodu dat z CL dat na ISO kód
NÁVRH POSTPROCESORU Stěžejním bodem práce je návrh postprocesoru pro FreeCAD pomocí programovacího jazyka Python. Zjednodušeně lze kód samotného postproceosru rozdělit na 2 funkce. Na následujícím obrázku (Obrázek 5) je ukázka jedné části postprocesoru. Jde o definování exportní funkce, která se odkazuje na další důležitou funkci postprocesoru a to sice parsovaní (parse), neboli syntaktickou analýzu. Vstupními parametry do exportní funkce je seznam objektů, které exportuje FreeCAD při použití funkce Postprocesing a název souboru. Pokud je v nastavitelných proměnných nastavená hodnota True u Hlavicka, Uvodprg, Konecprg je krom hlavní části kódu definované interním kódem přidáno k výstupu několik dalších informací, které nelze získat z CL dat. Například název výstupního souboru, čas exportu ale především úvodní části NC programu. Obrázek 5 - Exportni funkce postproceosru Na obrázku (Obrázek 6) je možné vidět uživatelsky nastavitelné hodnoty. Sem patří Hlavicka, která vypisuje v komentářích název postprocesoru a čas exportu. Parametr Modal při hodnotě True neopakuje stejné příkazy a při hodnotě False vypisuje vše. Další parametr CISLA_RADKU přidává na začátek každého řádku řetezec N a číslo, které se při každém dalším řádku zvětšuje o hodnotu 10. Uvodprg je paramter přidávající na začátek kódu komentář (Úvodní část programu) a dále několik přípravných funkcí. Stejně tak je tomu u parametru Konecprg, ovšem s tím rozdílem že jeho umístění je na samotném konci celého NC programu Obrázek 6 - Globální proměné
Druhou důležitou funkcí postprocesoru je parse, neboli parsování. Jde o sytaktickou alalýzu a převod vstupních dat na požadovaný cílový tvar, v tomto případě ISO kód. Na obrázku (Obrázek 7) lze vidět definici funkce parse, do níž vstupuje pathobj, tedy interní informace z Path modulu. Jednotlivé objekty jsou buďto brány jako skupina, což se týka například jednotlivých obráběcích strategii, ovšem Path modul může obsahovat i osamocené dráhy. Objekty bez atributu Path jsou vynechány neboť nejsou nezbytné pro převod dat, například polotovar. Objekty s atributem Path mají své jméno a parametry. Jménem v tomto případě jsou samotné příkazy G a M. Kompletní seznam paramterů je možné vidět na obrázku (Obrázek 7) v pátém řádku. Parametry jsou přidány k jednotlivým příkazům a jejich formát kdy parametry F,S,T nemají žadné desetiné hodnoty a ostatní parametry ze seznamu mají tři desetinná místa. Příkaz je pak uložen a cyklus for se opakuje. Obrázek 7 - Funkce parsovani Na obrázku (Obrázek 8) je vidět část výstupu z postprocesingu pomocí vytvořeného postproceosru. Kdy jednotlivé příkazy Command byly odstraněny k jejich jménum přidány argumenty v definovaných formátech. Obrázek 8 - ISO kód
ZÁVĚR A DOPORUČENÍ V nejbližší době dojde k ozkoušení samotných výstupů postprocesoru na zvolném stroji. V současné době postprocesor funguje jako překladač interního kódu FreeCADu na ISO kód. Vzhledem k neustálému vývoji FreeCADu, bohužel nelze zaručit jeho funkčnost do budoucna pokud dojde například k razantním změnám v koncepci samotného Path modulu, nebo pokud FreeCAD zanikne jako mrtvý projekt. To bohužel bývá někdy smutnou realitou těchto open-source projektů. Vytvořený postprocesor je funkční, ale nelze ho nazvat dokonalým a je zde tak prostor pro další vylepšování či pro tvorbu dalších, lepších postprocesorů i pro další stroje, ostatně což bylo také zájmem této práce. LITERATURA [1] KTO ZČU. Výuková laboratoř NC programování - UL211. [Online] 2018 [Cit. 15.04.2018] Dostupné z: https://www.kto.zcu.cz/o-katedre/vybaveni_katedry/ul211.html [2] VINTR, Lukáš. Tvorba vzorových příkladů pro výuku NC programování pro nerotační součásti. Plzeň, 2010. Bakalářská práce. Zapadočeská Univerzita V Plzni. Fakulta strojí. Katedra technologie obrábění. Vedoucí práce Jiří ČESÁNEK