Tag Archives: software

3D nyomtatás: slicerek

Van egy téma, amiről idáig még nem meséltem, pedig legalább annyira fontos 3d print témában, mint maga a vas: ez pedig a szoftver, ami az STL modellünkből előállítja a nyomtató firmware-e által értelmezhető GCODE-ot. Most, amíg egy döglött printer porosodik mellettem az asztalon, ezt fogjuk pótolni.

Szóval megvan az STL formátumú modellünk. Az STL még csak a felület geometriáját definiálja, nem mondja meg, hogy a fizikai ojjektumunk hogy nézzen ki belül. Ezt a konverziót valósítják meg a "slicer" néven emlegetett alkalmazások. A "szeletelő" (=slicer) név elég találó: a programunk felszeleteli a nyomtatónk által kezelni képes rétegekre az STL modellt, kitalálja, hogy az adott réteg belül hogy nézzen ki, majd GCODE parancsokat generál, amik leírják a printernek, hogy melyik léptetőmotor milyen irányba mennyit mozduljon. Nem is olyan misztikus, ugye? Ha belegondolsz, ezzel meg is volnánk, hiszen a 4 motor (X, Y, Z, extruder) 2 irányba történő mozdításával már meg is rajzoltuk a modellünket.

Valóban ilyen egyszerű a dolog, illetve mégsem. A "szeletelőgépünknek" az alábbi paramétereket mindenképpen figyelembe kell vennie ahhoz, hogy az általunk kigondolt modellünket gyártassa le:

  • a modell külső felületének vastagsága
  • a tömör test belső kitöltöttségének mértéke és amennyiben nem teljesen tömör, akkor a kitöltés mintázata
  • a hotendből kilépő műanyagszál anyagvastagsága
  • a függőleges rétegek vastagsága
  • a nyersanyagfajtától függő hűlés során fellépő zsugorodás mértéke

Magyarul mondva egyáltalán nem mindegy, hogy egy vastagfalú vázát, egy minél könnyebb, zárt testet, vagy esetleg egy teljesen tömör alkatrészt akarsz készíteni ugyanabból a modellből.
Ezeket a paramétereket te konfigurálod a slicer algoritmus számára. Nem kell megijedni, a slicerek okosak, nem kell neked mindig mindent tuningolni, hacsak nem gerjedsz az ilyesmire :).

Általában 3 paramétert kell kézzel konfigurálnod, a többit a slicer kitalálja neked: anyagfajta, rétegvastagság, infill (=belső kitöltöttség %-ban). Vannak azonban helyzetek, amikor ezeken finomítanál, illetve vannak hozzám hasonló soha nem elégedett bolondok, akik folyton tuningolnának a "soha nem elég jó" outputon - na nekik a Nirvánát jelenti egy végtelenségig konfigurálható slicer alkalmazás.

A slicerek többsége összecsomagoltan érkezik a printert kontrolláló interfésszel (egy dolog a GCODE előállítása, meg egy teljesen másik dolog a GCODE kiküldése a printer buszára). Sok ingyenes slicer létezik: Pronterface/Printrun, Skeinforge,
Slic3r, az alapfunkcióit tekintve ingyenes KISSlicer, az Ultimakerekhez csomagolt ingyenes Cura, vagy épp a fizetős Simplify3D.

Én most csak eggyel fogok bővebben foglalkozni, aki még tegnap éjjel bekapcsolta bennem a posztíró gépet - ez pedig a Simplify3D.

A Simplify3D nem olcsó: 140 USD egy darab licenc, mégis átszoktam rá az ingyenes alternatívákról, mivel annyi hasznos plusz szolgáltatást nyújt, hogy csak pislogsz!

Kedvcsinálónak beszéljünk át pár tulajdonságot, amiben a Simplify3D kiemelkedik a slicer mezőnyből:

Régiókra szabható komplett slicer konfiguráció

A modelledet régiókra bonthatod és régiónként teljesen eltérő slicer konfigurációkat definiálhatsz. Így lehet pl. elérni, hogy egy modell talpa sűrűbb infillel készüljön.

Végletekig kifinomult támaszték (=support) struktúra generálás

Te állíthatod be a support kitöltöttségét, szabályozhatod, hogy a támaszték milyen távolságra készüljön a modelltől, definiálhatod, hogy +/- mekkora függőleges szögváltozás váltson ki support generálást. Ha több nyomtatófejed van, külön definiálhatod, hogy melyik fej készítse a supportot (a vízoldható polivinil-acetát (=PVA) azonnal értelmet nyer). Ha pedig mindez nem elég, kézzel szerkesztheted a slicer által generált támasztékot, eltüntetve az apró túllógások alá feleslegesen generált alátámasztásokat, amiket a printered még lekezel.

Raft, skirt, brim kezelése

A szoknya (=skirt) arra való, hogy a modell nyomtatásának indulásakor a nyomtatófej biztosan teljesen fel legyen töltve olvadt nyersanyaggal - ezért a modell rajzolása előtt "körberajzoljuk" azt.
A skirt tesója a karima (=brim), ami ugyanilyen körvonal, csak épp hozzáér a modellünkhöz. Ez akkor hasznos, amikor a testünknek apró részeinek kell a tárgyasztalhoz tapadni - a karima ezt a tapadást segít fokozni.
Végül a tutaj (=raft) a tárgyunk alá készülő, a tárgy alapjánál nagyobb talapzat. Ennek az az értelme, hogy egy elválasztó réteget képezve csökkentse az alsó rétegek hűlése során fellépő zsugorodás (=warping) mértékét. Természetesen a raftnak is megvan a maga tapadást segítő szerepe.

Mindhárom segédelemnek választhatunk itt is dedikált extrudert és számos offset definiálásával tudjuk egészen finomra hangolni a méretüket, kitöltöttségüket, illetve céltárgyhoz kapcsolódásukat.

Bed leveling wizard

Ha minden jól megy, nemsokára automatikus tárgyasztal kalibrálást kap a tetszhalott printerem, de ettől még nagyon fontos a Simplify3D jól átgondolt szintező algoritmusa: egyrészt képes arra, hogy az aktuális printelendő modell adatai alapján szintezzen, másrészt akár te is definiálhatsz neki tetszőleges számú szintezőpontot, amit ő sorra végigméret veled.
Ettől pedig semmi nem fontosabb: az első rétegnek tökéletesnek kell lennie.

A tegnap megjelent 2.2-es update a fentiekhez további elképesztően hasznos új paramétereket tett hozzá - ebből mutatok most hármat:

Falvastagítás

Ha csak ez az egy feature létezne a standard slicer funkciók mellett, már ezért megvettem volna az alkalmazást!

A vékony falú modellek általános problémája, hogy a slicerek csak pár párhuzamos vonallal rajzoltatják meg azokat. Ha a printer nem hajszálpontos, van egy minimális légáram print közben, a nyersanyagáram nem tökéletesen egyenletes vagy épp elfelejtettél print előtt fekete kakast áldozni teliholdkor, akkor ennek az lesz az eredménye, hogy az egymás mellé rajzolt csíkok nem tapadnak össze, hanem a print végén gusztustalanul szétválva röhögnek ki, emlékeztetve arra, hogy megint kidobtál egy csomó nyersanyagot a szemétbe.
Ha idáig eljutottál az olvasásban, akkor igazán megérdemelsz minderről egy fotót, amely a TepiDuzzog stáb jelenleg még csak elfuserált állapotában létező kameraállványáról készült:

thin-wall-slicer-problem

Erősebb infill

Gyatra anyagáramnál igazán hasznos tulajdonság a szimpla 1 vonalnyi vastagságnál vastagabbra rajzolt belső kitöltőminta.
A gyatra anyagáram simán jöhet abból, hogy:

  • koszos a hotend belül (mert mondjuk port hordott bele a műanyagszál, vagy mert túlhevítettél benne valamilyen nyersanyagot)
  • nem elég meleg a fej az adott nyersanyaghoz (mert mondjuk noname kínai szart vettél fele pénzért, ami egyenletlen minőségű)
  • nem egyelenes a nyersanyag átmérője (mert mondjuk noname kínai szart vettél fele pénzért, aminek az átmérője 0.05 mm-nél többet ingadozik)
  • a nyersanyag a tárolás során vizet szívott magába a levegőből (ezért kell vákumzártan csomagolt nyersanyagot venni, vagy egy jól záródó dobozban tartani a nyersanyagot egy vödör noname rizs társaságában, ami elvon minden párát a tárolótér levegőjéből)
  • túl gyorsan nyomtatsz és a hotend/extruder nem képes a nyomtatás tempójában megfelelő mennyiségű olvadt nyersanyagot biztosítani
  • nem áldoztál fekete kakast előző teliholdkor

Ilyen, amikor rendben van az infill:

infill-OK

És ilyen, amikor nincs rendben:

flow-problem

BTW az már régóta megy a Simplify3D-nek, hogy akár minden n. réteget tömörre nyomtasson, ezáltal is fokozva a belső struktúra merevségét.
Persze azért hacsak nem az van, hogy gyorsabban akarsz nyomtatni, akkor a fenti problémákat nem árt kiküszöbölni.

Változó sűrűségű támaszték

A support ot a slicerek általában konstans sűrűségűre generálják, ám annak igazán a talpán és a támasztott rész közelében a tetején kellene megfelelően sűrűnek lennie, a közbenső rész maradhatna ritkásabb, anyagot spórolva ezzel az endusernek. A Simplify3D-nél kódoló srácok pont ezt valósították meg most. Az alábbi ablakon látszik, amiről beszélek: ahogy közeledik a barnás színű support a támasztandó zöld területhez, úgy változik a struktúrája és válik egyre sűrűbbé:

Simplify3D-v2_2-variable-support-density

Nota bene a modell végén az a kékülés azt jelzi, hogy a slicer ott csökkenti a nyomtatási sebességet, mivel apró részletről van szó és finomra kell csinálni azt a darabot is :) Mindezt nem én definiálom, ők találják ki - ez aztán az attention to details!

Sok más apró finomítás érkezett még, a rengeteg új printer támogatásától kezdve a változtatható anyagáram mértékegységen keresztül a preview tárgyasztalra rajzolt grid vonalsűrűségének definiálásáig. A szoftver köré aktív közösség épült, a fejlesztő srácok nagyon figyelnek a felhasználók igényeire, a support pedig egyszerűen elképesztő - bármikor írok nekik, perceken belül jön a válasz. Így kell ezt csinálni!

Az OS X esete a tagekkel

Az OS X régóta (fds tudja mióta, de talán 10.5) tárol a fileokhoz különböző metaadatokat - teszi ő ezt azért, hogy a beleintegrált Spotlight keresőmotor a metaadatok alapján is képes legyen gyorsan megtalálni valamit az általunk épített adatdzsungelben. A Mac óperenciás rendszerébe integrált metadata engine kivesézését már jóval korábban megtette a kiváló John Siracusa az Ars Techina divjein - ez a post igyekszik inkább a felhasználóbarát, kevésbé nerd oldalról hozzátenni egy keveset, amikor azt mondja: itt az ultimate tagging megoldás a Gravity Applications Tags nevű software-e személyében:

A Tags az openmeta standardot használja, s a tageket szabványos "extended attribute"-ként (=xattr) tárolja.
Az openmeta project wiki oldalán számos software közül választhat az OS X user, ha épp a Spotlight motoron túl saját metaadatot gyártani támadna épp kedve - az én választásom több próbálkozás után a Tags-re esett (az igazat megvallva jó rég láttam először, de mostanában angelday hívta fel rá a figyelmem).
A Tags UI korrekt, kedvelem. A keresője egy okosított Spotlight: a találatokon SPACE-t nyomva ugrik azonnal elő a QuickLook ablak (igen hasznos featúra), a találatok között szereplő folderekben mászkálhatok még a kereső ablakon belül, a találatok szabadon draggelhetőek. A sebessége is teljesen jó (nota bene: a gyári Spotlight kereső ugyanúgy használható egy tag keresésére a tag:amitkeresel szintaxissal).

A legvégére maradt a legfontosabb kérdés: "de minek taggelsz kézzel, eFi?"

A választ javarészt a képként pdf-be scannelt hivatalos papírok adják meg. Jó két éve vásároltam egy Fujitsu ScanSnap S500M nevű dokumentumscannert - azóta minden egyes beérkező hivatalos levél átmegy a scanneren, aki egyszerre olvassa a papír 2 oldalát, majd a képként behúzott dokumentumot beágyazza egy pdf-be és időbélyegző-szerű névvel ellátva elteszi egy folderbe. Ezek a file-ok aztán megkapják a tagjeiket és onnantól bármikor egy mozdulattal előránthatóak.
De ugyanígy taggelhetem a Safariban/Firefoxban olvasott oldalt, vagy akár a Mailplane-ben olvasott levelet is - a támogatott alkalmazások listája erre.

A Tags jelenleg a 2.0.2-es verziónál tart. Az aktuális változatban találtam egy fura hibát: ha egy másik, szintén openmetát használó tagging app már felvett egy ő vagy ű karaktert tartalmazó taget, akkor azt a Tags nem hajlandó felismerni és alkalmazni sem egyetlen dokumentumon sem. A bugreport ment a fejlesztőknek, egy napra rá jött a köszönőlevél, melyben írják, hogy dolgoznak rajta és értesítenek, amint kész a fix.

Egy szó, mint száz, eddig tetszik.

Update: fds Mester elmondja a historyt (ezúton köszönjük az infot):

xattr támogatás 10.4 óta van, resource forkok meg classic mac óta, meg a Finder comment mező HFS-ben.

Érdekességképpen Mefi postja 2 évvel ezelőttről: Címkézett vincseszter