Když jsem se po prvním rozhýbání tiskárny pokusil o prvotisk, vylezl samozřejmě totální paskvil. Nejprve to ve mě vyvolalo pocity silného zklamání, ale po prohledání několika webů jsem zjistil, že seřídit tiskárnu není úplně triviální záležitost. V tomto článku se proto pokusím popsat jak při uvádění do provozu postupovat.
Než začnu popisovat způsoby seřizování tisku, bude dobré se nejprve trochu zorientovat v bohaté směsici softwaru, který leží na cestě od prvotní myšlenky až k reálnému 3D modelu.
Prvním článkem řetězce potřebného softwaru jsou CAD (Computer Aided Design) programy, ve kterých se navrhují 3D modely součástek, které budeme chtít vyrábět. Éra, kdy CADům vládnul program AutoCAD je dávno za námi. Ten byl totiž prvotně určen pro tvorbu klasických 2D technických výkresů a teprve pod tlakem konkurenčních softwarů se do něj těžkopádně dostaly prvky 3D modelování.
Proto i sama firma Autodesk již před lety pochopila, že musí vytvořit CAD zcela nové koncepce, kterému bude vládnout tzv. parametrické modelování, a teprve druhotně bude schopen podle modelu vygenerovat technické výkresy. Tímto novým produktem se stal Autodesk Inventor. Samozřejmě je možné v tomto softwaru modely pro RepRapa vytvářet, ale podstatnou nevýhodou je, že Inventor je software komerční, a navíc protože je určen pro specializovanou profesionální sféru průmyslu, je velmi drahý (jeho cena několikanásobně převýší cenu RepRapa). Takže o této variantě mohou uvažovat snad jen studenti některých technických škol (například i té naší), kteří mají studentskou licenci zdarma. (Samozřejmě existuje celá řada dalších komerčních 3D modelerů, ale cílem tohoto článku není jejich popis.)
Z oblasti Free softwaru stojí v této kategorii za zmínku programy OpenSCAD a FreeCAD. Práce s nimi není rozhodně tak komfortní jako například s Inventorem, ale nadšenci, kteří se pustí do jejich zvládnutí, budou zanedlouho schopni v nich vytvářet podobně komplexní modely jako v komerčních programech.
Trošku jinou kategorií z této oblasti jsou tzv. 3D polygon mesh modelery. Práce v nich bývá sice trochu snadnější a přívětivější než ve free CADech, ale modely postrádají parametričnost, která může být pro tvorbu objektů velmi důležitá. V parametrickém CAD programu například navrhneme parametrické ozubené kolo, z nějž pouhou změnou jediného parametru "počet zubů" můžeme velmi snadno vytvářet různé instance. Něčeho takového v 3D polygon mesh modeleru nedosáhneme.
Důležitými zástupci free programů z této kategorie jsou například Blender nebo Google Sketchup.
Každý z výše uvedených (i dalších neuvedených) programů má svůj vlastní formát ukládání dat. Vzhledem k tomu, že s hotovými modely potřebujeme dále pracovat v CAM softwaru, je ovšem nutné je převést do nějakého standardního formátu. Snad nejdůležitějším takovým formátem je v oblasti CAM a rapid prototyping formát STL (ze slova STereoLitography). Ten dobře popisuje tvar modelu, ale bohužel se v něm se samotným modelem nedá téměř vůbec manipulovat. Proto nezbývá, než si modely ukládat ve vlastním formátu daného CAD softwaru a navíc je pro další zpracování exportovat do STL formátu.
Nejvýznamnějším místem pro ukládání STL modelů, jakýmsi "Vesmírem (3D) věciček" je server s příznačným názvem (Thing+Universe) Thingiverse. Protože těch "věciček" je tam více než 10 000 a neustále přibývají, musí se každý správný RepRaper zákonitě stát závislákem na tomhle místu v Internetu . Takže až budete uvažovat, co byste si tak pěkného dnes vytiskli, prohledejte třeba nejpopulárnější věci. A samozřejmě naopak, až něco pěkného sami zkonstruujete, šup s tím na Thingiverse.
Když už máme popis tvaru 3D modelu jakým je pro nás STL soubor, musíme z něj vygenerovat kód (tzv. G-code) pro tiskárnu. Touto činností se zabývají takzvané CAM (Computer Aided Manufacturing) programy.
Možná se zeptáte, proč se na Thingiverse neukládají už rovnou G-code soubory? Odpověď bude zřejmá, když si uvědomíme, co takový CAM program vlastně dělá. Obecně řečeno převádí 3D model do řeči stroje, který podle něj bude součástku vyrábět. Je jasné že ta "řeč" je úplně jiná například pro CNC frézu, laserovou vyřezávačky nebo stroj typu RepRap.
Ale i pokud bychom chtěli ukládat a sdílet G-code pouze pro stroje typu RepRap, nemohlo by to dost dobře fungovat. CAM programy pro rapid prototyping totiž zpravidla fungují tak, že model rozřežou na tenké plátky (dobrá představa je krájení salámu u řezníka) a jednotlivé plátky potom podrobí hlubší analýze a generování konkrétního kódu. Když si teď představíte, že každá tiskárna má například trošičku jiný průměr trysky, každé klubko materiálu může vykazovat trochu jiné vlastnosti (například vyžaduje trochu odlišnou teplotu), je jasné, že G-code se musí doslova šít na míru každé konkrétní tiskárně. A právě o seřízení parametrů CAM softwaru tak, aby šil kódy správně na míru Vaší konkrétní tiskárně, v tomhle článku nejvíce jde.
Ale abych nepředbíhal, free CAM softwary, které nás mohou nejvíce zajímat jsou: Skeinforge nebo případně RepRap Host software.
Než jsem přišel na to, že existuje Skeinforge, zkoušel jsem pod vlivem videí z Internetu popisujících tisky na RepRapu právě RepRap Host software. V době, kdy jsem ještě neměl materiál pro tisk a zkoušel jsem si tisk nanečisto, jsem v něm pár G-codových souborů vygeneroval, a měl jsem radost, že se jimi tiskárna rozhýbala, ale už tam mi přišlo silně podezřelé, jak rychle se točí extruder, a říkal jsem si, že takhle cívku materiálu proženu tiskárnou za jedno odpoledne.
Nechtěl bych tomuhle softwaru křivdit, ale mám dojem, že to byl takový alfa pokus psaný hodně na koleně, aby vůbec bylo možné rozhýbat první postavené Darwiny (překonaná první generace RepRapů). Dále se mu tedy nebudu věnovat a vše budu popisovat ve Skeinforge.
Než se pustím do Skeinforge, ještě krátce k tomu, co dále s vygenerovaným G-codem. Dnešní RepRapy s běžnými typy elektroniky a firmwaru umí tisknout ve dvou režimech. Prvním z nich (kterým se budu dále zabývat) je tisk G-code příkazů posílaných po sériovém (USB-sériovém) portu z počítače. Druhá možnost je nahrát G-code soubory na SD kartu a mít na elektronice přídavnou destičku se čtečkou SD karet, ze kterých se dá tisknout rovnou. Výhodou je, že tiskárna ke své činnosti nepotřebuje počítač, ale pochopitelně na to už musí být dokonale odladěná a technologie tisku perfektně zvládnutá.
I pro posílání G-code příkazů do tiskárny existuje několik variant softwarů od primitivních příkazů z příkazové řádky v Linuxu (Pronsole) přes jednoúčelové softwary s grafickým GUI typu Pronterface (oba jsou součástí balíku Printrun) až po softwary typu all-in-one, jejichž snahou je na jedné straně otevřít STL soubor a na druhé straně vytisknout hotový výrobek, přičemž se postarají jak o převod do G-code (pomocí Skeinforge), tak i o ovládání tiskárny.
Základním představitelem této kategorie je ReplicatorG. Zkoušel jsem ho nainstalovat, nějak sice funguje, ale funkční tisk jsem z něj zatím nedostal, takže zatím tuto cestu nebudu popisovat (možná někdy v budoucnu).
Pro začátek tedy doporučuji nainstalovat si Printrun a Skeinforge. Tyto softwary vyžadují verzi pythonu 2.6 a originál SUN javu (je možné že budou fungovat i s OpenJavou, ale na webech se výrazně doporučuje instalace SUN javy. Pro Ubuntu Linux, který používám pro tisk se předinstalace potřebných komponent provede následovně:
Protože SUN java není open software, Ubuntu pro ni nemá v běžně nainstalované verzi nakonfigurované repozitáře proto pro instalaci musíme udělat následující:
sudo add-apt-repository "deb http://archive.canonical.com/ubuntu natty partner"
sudo apt-get update
sudo apt-get install sun-java6-jre
A nakonec Ubuntu nakonfigurujeme tak, aby implicitně spouštěl právě SUN javu (vybereme volbu 2):
sudo update-alternatives --config java
Abych pravdu řekl, je ode mne dost odvážné, že tu píšu o něčem, o čem mám tak mlhavé představy jako o Skeinforge. Ale i získání těchto mlhavých představ mě stálo nemalé úsilí, tak doufám, že tenhle kousek textu dalším zájemcům pomůže k rychlejšímu startu. Pokud v mých popisech odhalíte nepřesnosti či chyby, budu rád, když mi pošlete mailíka, rád text upravím.
Co je to tedy Skeinforge? Skeinforge je obsáhlá sada skriptů napsaných v jazyce python, které se postupně v určitém pořadí podílejí na tvorbě a potřebných úpravách G-codu pro tiskárnu. Zde najdete obsáhlý manuál (který jsem zatím příliš nečetl ).
Tím, že Skeinforge je právě takto modulární systém, je obrovsky pružný, takže pokud víte, co děláte, můžete ho skutečně donutit generovat G-code přesně podle svých představ (respektive spíše představ Vaší tiskárny). Na druhou stranu není příliš přehledný a u začátečníka vyvolává při prvních seancích pocity čirého zoufalství. Ale nebojte se, zvládnout jeho základy není tak složité, jak by se na první pohled mohlo zdát.
První bariéra na kterou začátečník narazí je, jak se vlastně Skeinforge spouští. Samozřejmě lze spustit s řadou parametrů z příkazového řádku, takže na jeden příkaz provede rovnou převod STL souboru do G-code. Ale to nás bude zajímat možná až po dokonalém odladění parametrů. Zatím ho budeme spouštět následovně:
Když stáhnete a někam rozbalíte Skeinforge (já (čuňátko) jsem si ho rozbalil rovnou na plochu), vytvoří se adresář (pravděpodobně nazvaný Skeinforge) a v něm najdete podadresář skeinforge_application. Běžte do něj a najdete tam skript terminal.sh (pozor, stejný je i v nadřazeném adresáři, ale je jednodušší pouštět až ten v skeinforge_application). Dvojklikněte na něm a zvolte "Spustit v terminálu". Objeví se terminálové okno, ve kterém Vám návod říká, že máte napsat ./skeinforge.py a stisknout Enter.
Spuštění se projeví tím, že se objeví okno plné divně rozložených tlačítek:
Tlačítka která vidíte na obrázku v prostřední sekci reprezentují jednotlivé skripty a když na některé kliknete, ve spodní sekci se objeví parametry daného skriptu. Například na výše uvedeném obrázku je vybrán skript Carve (řezat, krájet, porcovat) a dole vidíte některé z jeho parametrů. Například modře podbarvený Layer Thickness udává tloušťku jednotlivých vrstev, které bude tiskárna vyrábět (mám dojem, že takto jsou podbarveny parametry s klíčovou důležitostí, ale zatím je to jen můj nepotvrzený dojem (některé jsou ještě podbarvené žlutě)).
V úplně horní sekci je pak výběr profilu. Výhodou Skeinforge je, že si veškeré nastavované parametry ukládá do takzvaných profilů, a těch si můžete vytvořit kolik chcete. Ne že bych to zatím dělal, ale určitě po relativně slušném rozchození tiskárny bude rozumné si profil uložit, a pro další experimenty si z něj naklonovat novou kopii, aby při případném rozházení parametrů bylo k čemu se vrátit.
Správu profilů najdete v menu aplikace Profile/Extrusion/Extrusion..., čímž se otevře dialog, ve kterém můžete profily vytvářet a mazat a hlavně tam vidíte, v jakém pořadí se jednotlivé skripty při převodu do G-code budou spouštět:
Není jich málo, že? Ale nebojte, všechny rozhodně nebudou potřeba. Pojďme tedy nejprve omezit množství skriptů na nezbytně nutné.
V hlavním okně aplikace nejprve vyberte Profile Type: Extrusion a Profile Selection ABS (pokud tisknete ze hmoty PLA, tak samozřejmě PLA).
Pod tímto výběrem klikněte na Craft (sestrojit) a proklikejte postupně následující vypsaná tlačítka a v dolní polovině okna v sekci parametrů u nich vždy odškrtněte hned první zaškrtávátko Activate jméno modulu:, čímž daný modul deaktivujete.
Cool - přidává mezi vrstvami čas na schladnutí (hodí se u malinkých objektů, které nestihnou schladnout během tisku vrstvy)
Hop - zvedá extruder kdykoliv zrovna neextruduje
Oozebane - ovládá vytékání hmoty (nevím zatím přesně, co se tím myslí)
Stretch - opravuje velikost děr, které mají tendenci se tisknout jako menší než mají být.
Unpause - urychluje tisk aby se kompenzovalo zdržení vzniklé v mikroprocesoru (nevím přesně co se tím myslí, jak jsem našel, tak předávám dál)
Comb - zlepšuje kvalitu tisku děr (méně otřepů uvnitř děr)
Polyfile - Výběr adresáře a názvu souboru (bez jeho použití se ukládá automaticky do adresáře, kde je STL soubor)
Wipe - Definuje cestu pro čištění hlavy (zatím přesně nevím jak)
Některé z těchto modulů samozřejmě v budoucnu použijeme, ale pro prvotní nastavení opravdu nejsou důležité.
Carve je modul, kterým začneme. Nejdůležitějším parametrem v něm je již zmíněná tloušťka vrstvy "Layer Thickness". Nastavte ji pro začátek raději na vyšší hodnotu (něco kolem 0.45 až 0.49). Když bude příliš velká, vrstvy na sobě budou špatně držet (model bude mít tendenci se loupat na jednotlivé vrstvy), když bude moc malá (řekněme pod 0.35), hlava se bude "utápět" v nižších vrstvách a pravděpodobně díky tomu ucpávat. Na další parametry zatím nesahejte.
Chamber - máte-li vyhřívaný stolek, nastavte zde jeho teplotu "Bed temperature". Doporučuji začít někde u 80 - 90°C. pokud tisknete na studenou podložku, můžete modul deaktivovat.
Fill - v tomhle modulu se nastavuje, jak hustě tiskárna bude "vyčmárávat" plné plochy, ale zatím s parametry raději moc nehýbejte, je to tam docela složité. V případě problémů s plnou plochou upravte pro začátek pouze žlutě podbarvený "Infill Width over Thickness".
Multiply - slouží pro vícenásobný tisk stejného dílu. My ho zatím použijeme pro posun dílu na podložce. Ujistěte se, že v něm máte hodnoty Number of columns a rows nastaveny na 1 a do políček Center X a Y uveďte souřadnice umístění středu výrobku. Zejména u vytápěné podložky je vhodné tisknout zhruba v jejím středu, kde je rozložení teploty nejrovnoměrnější.
Speed - tak tohle je snad to nejdůležitější místo, které musíte vyladit úplně jako první. Udává, jak rychle se bude hlava pohybovat při tisku Feed Rate a přesunech Travel Feed Rate. Já jsem to postupně dotáhl k hodnotám 33 pro Feed Rate a 38 pro Travel Feed Rate. A to nejdůležitější, jak rychle se během tisku bude točit motor extruderu, tedy kolik hmoty z trysky bude vytékat. To udává parametr Flow Rate Setting (float). Já jsem u něj dospěl k hodnotě kolem 20.
Temperature - neméně důležitý parametr udávající teplotu hlavy při jednotlivých situacích. Pro začátek doporučuji všude zadat teplotu kolem 220°C. Příliš vysoká teplota způsobuje ve vláknu tvorbu bublinek, příliš nízká malou přilnavost a ohebnost vlákna.
Raft - vytváří pod výrobkem základovou mřížku. To je nutné u velkých výrobků nebo při nerovném stolku, ale pro úplný začátek se možná obejdete bez aktivace tohoto modulu (první tisk bez něj zkuste určitě a dále uvidíte...).
Když všechno tohle nastavíte, klikněte dole na Save All. Tím dojde k uložení hodnot do profilu. Kontrolujte si v černém okně terminálu, že Skeinforge profil uložil, píše tam o tom informační hlášky.
Já jsem si dal za cíl jako první výrobek píšťalku. Je dostatečně malá, mírně problémová (má uvnitř kuličku, kterou je nutné po tisku vyloupnout), a pokud se povede, je to velmi efektní výrobek, který prostě funguje, a můžete se s ním chlubit známým.
Brzy po prvotním zavedení hmoty do tiskárny jsem ale pochopil, ze jsem přestřelil, a je třeba začít na něčem ještě jednodušším. Takže doporučuji pěkně pokorně vlézt na Thingiverse a stáhnout si STL soubor tenkého (jedna vrstva) čtverečku o rozměrech 2x2 cm.
Thingiverse je zpočátku trochu nepřehledný, protože download je až pod komentářema, kterých u některých výrobků není málo. Ale u čtverečku není moc co komentovat, takže Download (vyberte ten správný STL nikoliv SCAD) je hned vidět. Doporučuji udělat si třeba na ploše adresář třeba s názvem Tisk a do něj si ukládat jak STL soubory, tak generovaný G-code. Až budete mít STL soubor nahraný, klikněte ve Skeinforge vlevo dole na tlačítko "Skeinforge". Tím se otevře souborový dialog a vy můžete vybrat STL soubor čtverečku. Po kliknutí na "Otevřít" se honem přepněte do okna terminálu, kde uvidíte, jak Skeinforge postupuje a spouští jednotlivé skripty. U čtverečku to půjde velmi rychle, ale u složitějších výrobků můžete očekávat třeba 15ti minutovou seanci.
Na konci generování se otevřou dvě grafická okna SkeinLayer a Skeiniso, kde můžete procházet jednotlivé vrstvy a dívat se, jak se výrobek vygeneroval. Obě okna pak klidně můžete zavřít. Ve stejném adresáři odkud byl vybrán STL soubor vznikne nový soubor s G-cody. Je to textový soubor, takže se do něj pro zajímavost také můžete podívat editorem.
Kdykoliv pohnete s jakýmkoliv parametrem některého modulu Skeinforge, musíte G-code stejným způsobem přegenerovat. Právě proto je výhodné začít s úplně jednoduchým čtverečkem, jehož generování trvá pár vteřin a ne třeba s píšťalkou, jejíž generování na mém stařičkém pro RepRap dedikovaném notebooku trvá cca 6 minut.
Doporučuji úplně první tisky dělat nanečisto bez hmoty a teprve později jí zavést do extruderu.
Nejprve připojte tiskárnu k USB portu, a pak teprve zapněte napájení 12V zdrojem. (Když to uděláte pobráceně nic se nestane, ale takhle se procesor bezproblémověji zresetuje a uvede do chodu (dojde k menším zákmitům napájecího napětí).)
Spusťte si Pronterface (součást zmíněného Printrunu s názvem pronterface.py). Později je vhodné si na ploše udělat ikonu zástupce tohoto programu, protože ho budeme spouštět opravdu často. V okénku portu nahoře by měl jít vybrat port s názvem pravděpodobně /dev/ttyUSB0 (pokud nejprve spustíte Pronterface, a teprve potom připojíte tiskárnu, program port neuvidí a musíte ho vypnout a znovu spustit). Zkontrolujte rychlost, pokud máte standardní Sanguinololu, měla by být 115200 kbps a klikněte na tlačítko Connect. Za několik vteřin by se měl v hlavním okénku programu objevit nápis Printer is now online a případně SD init fail (nemá k dispozici SD kartu, což ale nevadí).
Zkuste zahýbat osami X, Y a Z, ale s extruderem zatím ne. Ve standardní verzi firmwaru totiž Sprinter (a asi i jiné firmwary) počítá s absolutními souřadnicemi extruderu. Takže když necháte vyextrudovat třeba 50mm hmoty a tisk pak začne extrudovat od 0, extruder se bude vracet zpět z té padesátky na nulu a pojede tedy opačně než by měl.
Zpočátku je to trochu nezvyk i při ručním ovládání pomocí Pronterface. Když například zavádíte hmotu, nastavíte si 50mm a kliknete na Extrude. Pokud se ale hmota nezavede a vy chcete přidat dalších 50mm, nestačí pouze znova kliknout na Extrude, ale musíte zadat absolutních 100 mm, a pak teprve kliknout na Extrude.
Až si pohrajete s osami X,Y, Z, najeďte do domovské pozice Home All. Tlačítkem Load file si otevřete před chvílí vygenerovaný soubor G-code. V okně se vypíše, kolik vlákna bude použito. Zatím nevím, co tahle hodnota znamená, ale každopádně to číslo je nějaké podezřelé. Pro čtvereček bez zapnutého Raftu mi to při výše uvedených hodnotách dává délku přibližně 1125.78 mm vlákna. Samozřejmě tohle číslo se u Vás může lišit, ale nemělo by se lišit řádově. Myslím, že tak hodnoty od 1000 do 1500 jsou přiměřené. Předehřejte Extruder (a stolek) tak, že si vyberete z okýnek Nozzle (a Bed) příslušnou teplotu, nebo jí do řádků zadáte ručně. Pak klikněte vždy na příslušné tlačítko Set a v okně se vypíše, že teplota byla přednastavena.
V pravém horním rohu si klikněte na zaškrtávátko Monitor a táhlem si nastavte monitorovací interval. Tak v okně uvidíte, jak se postupně teplota (teploty) mění. Nelekněte se, díky tepelné setrvačnosti dojde k přestřelu tak o 5°C, ale pak se teplota vrátí zpět a bude oscilovat tak +-2°C kolem nastavené hodnoty. Jakmile je nahřáto, klikněte na Print.
V mém nastavení jede extruder k výchozí poloze stráááášně pomalu, zatím jsem nevyzkoumal, čím se to dá ovlivnit, ale ono to nevadí, alespoň se mezitím stihnou ustálit teploty. Pak začne tisk, který už by měl mít rozumnou rychlost. Doporučuji si na přítlačné ložisko extruderu lihovou fixkou udělat čárky tak po 5 mm, abyste mohli sledovat, jestli se točí, a tedy jestli je drát hmoty do extruderu vtlačován nebo nastal nějaký zádrhel (např ucpaná tryska). Zatím, ale tiskneme bez hmoty, takže ložisko možná bude po transportním šroubu klouzat a točit se nebude. Pokud ano, mělo by tak od oka na každých 10mm dráhy ujeté tryskou posunout drát hmoty o cca 1mm. Ale je to skutečně velmi hrubý odhad. Velké kolo extruderu se na první pohled točí docela rychle, ale nezapomeňte, že průměr transportního šroubu je malý, takže drát se bude posunovat relativně pomalu.
Tak, jestli jste došli až sem, je na čase poprvé zavést hmotu. Dělá to trochu problém a musíte najít ten správný grif, a také si hodně povolit přítlačné ložisko a po dobrém zavedení hmoty ho naopak docela dost přitáhnout. Doporučuji to dělat při vypnuté a chladné tiskárně ručně, a naznačit si na drát zhruba délku, kterou by měla zalézt do extruderu, abyste odhalili, kdyby se někde po cestě vzpříčil.
Po prvním zavedení za studena také doporučuji z desky elektroniky (při vypnuté tiskárně) vytáhnout konektor připojení motoru extruderu, a pak tiskárnu zapnout a nahřát. Tak zůstane kolo extruderu volné a můžete nejdřív zkusit extrudovat ručním otáčením. Teprve po zjištění, že všechno jde hladce tiskárnu vypněte, znovu zapojte motor extruderu a zpátky ji zapněte.
Před každým novým pokusem o tisk vždy proveďte Reset tiskárny (tlačítko v Pronterface). Ten totiž vynuluje souřadnice a tedy i nakumulovanou absolutní souřadnici Extruderu. Až tiskárna znova naskočí zajeďte na home, nastavte teploty a počkejte až jich bude dosaženo. Hlava by před tiskem měla být asi na tloušťku kancelářského papíru nad podložkou, takže pokud tomu tak není, upravte jí pomocí posuvů osy Z o + nebo - 0.1 mm (a případně si pečlivěji seřiďte koncový spínač osy Z).
Pak už jen spusťte tisk a kochejte se činností tiskárny. Po nemalém úsilí věnovaném její stavbě je to skutečně slastný pocit jí pozorovat při práci.
Na tomto obrázku jsem shromáždil několik čtverečků s parametry už hodně blízko těch správných.
Zleva:
Držím palce, ať i Vaše prvotisky brzo dokonvergují ke kýženému cíli!