Keresés ebben a blogban

3D nyomtatásra történő előkészítés

Ez az oldal azért született, mert belefutottam egy munkával kapcsolatba olyan dolgokba, amik kellemetlenül befolyásolták a nyomtatás előkészítését.
Egyébként sok helyen olvasom a kezdőktől és a haladóktól is, hogy mi lehet a gond a tárgyakkal, mert nem lehet leszeletelni.
Mivel sokan gyártanak 3D tárgyakat és még többen nyomtatnak mindenhonnan a netről letöltött tárgyakat, sokszor nem érthető, miért nem tudják elvágni a tárgyat. Pedig ennek általában egyszerű okai vannak, csak azok nem mindig látszanak elsőre.

Alapozás a 3D szeletelő működésének megértéséhez

Amikor a szeletelő megkap egy STL állományt, akkor gyakorlatilag egy poligonhalmaz áll a rendelkezésére ahhoz, hogy létrehozza belőle a rétegenként bejárandó útat. Ezt ugye majd GCode-ban fogjuk megkapni, hogy a nyomtató is értelmezni tudja. Ezt azért fontos tudni, mert a poligonoknak nincs kiterjedése. Ők sík lapok a térben. Ha bezárnak egy tárgyat, mondjuk egy kockát, aminek hat oldala van és tizenkét poligonból áll, akkor az egy tömör tárgynak fog megfelelni. Amennyiben egymásba ágyazunk két kockát, akkor már 24 oldalunk lesz, és a szeletelő a két kocka oldalai közötti távolságot fogja a test tömör részének tekinteni. Ez pont olyan, mint amikor egy jó lukacsos emeltálit leszeletelünk. Ahol levegőbuborék volt benne, ott lukas is lesz, a köztes részeken meg ott a sajt.
A szeletelő program, a tárgy magasságán végigpásztázva, alulról felfele szépen a rétegvastagsággal elkezdi keresni a metszeteket a tárgyban. Ha megvan a metszet, akkor abból pályát épít vonalanként. Ez is fontos szereplő. Minél durvább vagyis alacsony poligonszámú(low poly) az objektumunk, annál durvább felületet fog a szeletelő is számolni. A szeletelő nem interpolálja a felületekhez tartozó vonalakat, azt számolja amit kap. 

Ha szeretnénk finomabb felületet akkor egy olyan alkalmazás kell majd, ami képes a poligonokat valamilyen smooth eljárással felosztani, amitől a felület részletessége megnőhet, és szebb nyomat lesz belőle.
Ezzel a megközelítéssel kell együtt élnünk amikor tervezünk. A CAD alkalmazások így gondolkodnak, a nem CAD alkalmazások, amik inkább a művészkedést helyezik előtérbe, néha nem így gondolkodnak. 

Mi a baj a 3D objektumok készítésével

Már írtam a blog-ban, hogy több fajta alkalmazással lehet 3D tárgyakat gyártani, művészkedni. Ettől még sajnos vannak szabályok aminek a betartása sajnos nem mindig sikerül.
Ennek a legfőbb oka, hogy sokan azt hiszik, hogy a nyomtatás csak abból áll, hogy megrajzolom a 3D objektet, aztán szeleteljük, majd ráengedjük a nyomtatóra.
Ez így is van, de az első lépésnél elkövetett hibák mindig visszadobják az embert a sor végére.
Hogy mikre kell figyelni, az attól is függ, mivel dolgozunk.
A CAD(Fusion360, Inventor, SolidEdge stb.) alkalmazások nagyon szabálykövetőek, ezért kevés esetben okoznak problémát a nyomtatásnál. Ha egy CAD alkalmazásban olyan visszahajlást csinálunk, ami problémás, akkor az alkalmazás figyelmeztet, hogy valami nem stimmel, és sokszor nem is hajtja végre a feladatot, amíg nem gyógyítjuk meg a hibás elképzelést.
Viszont a nem CAD típusú 3D objektum editorok(3DSMax, Blender, Newtek Modeler stb.) a poligonokat nem "tisztelik" eléggé, hogy jelezzék a lapvágási hibákat, vagy a kifordulásokat. Lelkesen megcsinálják a user kérését, és utána majd lesz valahogy. Hogy ez miért nem gond amikor 3D renderelésre megy a tárgy. Azért mert a kifordított poligonokat is le tudja számolni a render engine szépen, bár van, hogy ott is téveszt, de az kevésbbé látszik, illetve a rendernél minden poligonnak lehet két oldala, ami a nyomtatásnál sajnos nem létezik.
A 3D nyomtatásnak már gondot okoz a szeletelésnél egy kifordított poligon, mert a tárgy szeleteinek létrehozásakor a poligon normálokra is szüksége van a szeletelőnek, és ha azok sok helyen össze vissza állnak, akkor a szeletelő sajnos tévedni fog. Ugyan sok programban vannak erre vonatkozó algoritmusok, amik próbálják ezeket a hibákat kiküszöbölni, de azok se mindig sikeresek. A normálokat helyre lehet hozni, de ettől még nem mindig sikerül a rossz lapvágásokat is korrigálni, így 
ilyenkor bele kell nyúlni a tárgyba és helyretenni a hibás részeket. 
Legtöbbször ezt egyszerűbb a tervező programban elvégezni, mert az STL file szerkesztése visszadob minket a 3D szerkesztés hőskorába, amikor még poligononként raktunk össze tárgyakat, és figyeltünk a lapvágási hibákra, meg a normálok irányára. Mert akkoriba sajnos luk maradt a fordított poligonok helyén amikor rendereltük a tárgyakat.
Az ilyen hibákat a MeshMixer-el és a MeshLab-al lehet könnyen javítani, amennyiben képesek rá, mert ezek az alkalmazások se tudnak mindent megoldani. Itt jegyzem meg, hogy a MeshLab nagyon komoly pilótavizsgás alkalmazás, csak igazán merészeknek ajánlom.

Hogy tudunk szépen előkészíteni 3D nyomtatásra

A legegyszerűbb, ha CAD-et használunk, és az hisztizni fog ha valami anomáliát lát a tárgyban. Ha amorf(pl.: mellszobor), tárgyat csinálunk CAD-ben, akkor nagyobb esély van rá, hogy sikerülni fog a tervünk. 
Ha pontfelhőből gyártunk objektumot, akkor is figyelni kell, mert hiába a pontfelhőt kezelő alkalmazások, sajnos ott is van hiba a poligonok generálásánál. Nem árt átrajzolni amit lehet, mert később meghálálja a nyomtatáskor.
Ha valamelyik ténylegesen 3D modellező alkalmazást használjuk, amivel lehet fúrni, faragni és deformálni a tárgyakat, ott nekünk kell jobbára szemfülesnek lenni, mert sok hibát lehet belerajzolni egy tárgyba. Ennek két oka van, az egyik, hogy nem engedjük át a MeshMixeren a tárgyunkat, így nem tudjuk, hol van a hiba, a másik pedig az, hogy ezek a programok nem ragaszkodnak a méretekhez annyira erősen mint egy CAD alkalmazás. Ezt úgy kell érteni, hogy képesek vagyunk nanométeres tárgyakat is gyártani, ami nehezen nyomtatható a mi cuki FDM nyomtatónkkal. A másik dolog főleg a résekre és távolságokra vonatkozik, amit később tárgyalok, hogy nehéz tartani egy modellezővel a szükséges távolságokat. A CAD erre ügyel legtöbbször. Főleg ha parametrikusan tervezzük a tárgyat. 


Hogy gondolkozzunk tervezés közben

Van a nyomtatónak pár paramétere, amit ha figyelembe veszünk tervezés közben, akkor jobbára elsőre meg lesz a sikerélmény.
Az egész a fejszámolásra épül. Na jó, lehet számológépet is alkalmazni, de fejben elegánsabb. 
Szóval, van egy hegyünk, amin mondjuk 0.4mm-nyi anyag tud felkenődni az előző rétegre.
Van egy rétegvastagságunk, amivel dolgozni fogunk, mondjuk ez legyen 0.24mm. 
Ha a tárgyunk ezeknek az osztásával van megtervezve, akkor a szeletelő szebben fogja szeletelni a tárgyat.
Példával egyszerűbb, így végigmegyünk egy elméleti tervezésen.
Ha mondjuk egy 24mm magas tárgyat tervezünk, a 0.24mm-es rétegvastagsággal, akkor az 100 réteg lesz kereken. Ez így biztos jó lesz. Viszont ha 24.1-es a tárgy magassága, akkor a szeletelő a tetejét már nem fogja megcsinálni, vagyis az a 0.1-es réteg nem jön létre, így a tárgy továbbra is 100 rétegből lesz.
Ha a tárgyba szeretnénk egy üres csíkot rakni, ami keresztbe szeli a tárgyat, akkor a hegy átmérője a megoldás. Itt viszont figyelembe kell venni egy két apróságot. Amíg a Z tengelyen a rétegek nem befolyásolják a magasságot, mert ha minden rendben van a Z tengellyel, akkor az akkora lesz amekkorára terveztük. Addig az X-Y tengelyen sajnos a hegyátmérő, a nyomtatott filament típusa, az anyag hőmérséklete nagyban befolyásolja a méretet.
Az oka ennek az, hogy a 0.4mm-es hegy végén ugyan annyi anyag távozik, mert arra számolja a volumetrikát a szeletelő, de az anyag hőfokától és tágulásától függően a már kinyomott műanyag sajnos nem 0.4mm széles lesz. Lehet, hogy 0.5mm lesz. Ez adja a rétegek és a falak közötti tapadást, de közben a méreteket módosítja sajnos. Szerencsés esetben minimálisan, túlextrudálásnál, ez lehet nagyobb hiba is.
Ezt bele kell számolni, ha pontosak akarunk lenni. 
Ha mondjuk egy papírlap tartót gyártunk egy kockába, akkor a rés amit vágnunk kell nem árt ha 0.6mm-es, mert a két oldal felől 0.1mm-er anyagtorlódás lehetséges, ha minden jól van beállítva. Ekkor a rés amit terveztünk máris csak 0.4mm, vagy kevesebb. A rés mérete függhet az anyagtól is, mert vannak anyagok amik jobban folynak vagy épp tágulnak, amíg vannak anyagok amik jobban formatartóak. Ha alacsonyabb a hőmérséklet, akkor lehetséges, hogy az anyag se folyik meg annyira.
Az ilyen nyomtatásokhoz is van a thingiverse-en minta, amivel a tolerancia tesztet el lehet végezni a fenti távolság kérdésre.
A hegyátmérő kérdése a falvastagság is. Mert ugye nem mindig nyomtatunk tömör tárgyakat. Itt se árt figyelmet fordítani a fal méretével történő osztásra. Ha 4mm-es falat 0.4mm-es heggyel nyomtatunk, akkor az 10 egymás mellé helyezett réteg lesz, ha a úgy állítjuk be, hogy ne töltse ki a falakat. Ne feledjük, hogy itt is számolhat úgy a szeletelőnk, hogy a túlfolyást hozzáadja, ezért változhat a rétegek száma. Vagy ha úgy állítjuk be az alkalmazást, akkor pontosan annyit fog számolni amennyi nekünk tetszik. Itt viszont a tágulástól, mindig szélesebb lesz a fal. Ezzel is számolni kell.
Ha ezeket a szabályokat már tudjuk alkalmazni, akkor jöhetnek a törések és poligonok. Igyekezzünk úgy tervezni, hogy ahol hegyesszögek vannak, ott figyeljünk, hogy a poligonok ne forduljanak ki, hanem nagyobb mennyiségű poligonnal úgymond forduljunk be. Ekkor a szeletelő könnyebben leképzi a pályát a nyomtatáshoz.
Mivel eljutottunk a szögekhez, itt is van egy íratlan szabály. A hegyátmérővel tud fordulni a fej, vagyis egy 0.4mm-es hegy nem fog 0.1mm-es sarkot vagy hegyesszöget gyártani. Mert nem tud. Az 0.4mm-re lesz kerekítve. Vagyis, ha valami hegyes a tárgyon vagy éles szögben van, akkor ott ha megfeszülünk se lesz élesebb a tárgy mint a hegy átmérője.

Ha tervezésnél erre figyelünk, főleg az illeszkedő alkatrészeknél, akkor a nyomtatás után sokkal kevesebb utómunkával tudjuk a tárgyakat illeszteni. Érdemes ezekre is tesztet csinálni, hogy lássuk a nyomtatónk és a filamentünk viselkedését. Saját tapasztalatom, hogy a PETG jobban folyik, és hajlamosabb a fordulásoknál a torlódásra mint a PLA. Ezért is szeretik sokan a PLA-t, mert ténylegesen egyszerűbben lehet pontosabb tárgyakat csinálni.
Másik dolog amire felhívnám a figyelmet, azok a kivágott lukak, négyzetek. Ha a kockánk oldalában szeretnénk egy nyílást, akkor az nem árt ha a rétegvastagság osztásának határán kezdődik, és a rétegvastagsággal osztható magasság. Ez azért fontos, mert így pont ott lesz a nyílás, ahova terveztük. Nem fogja a szeletelő egy picit arrébb tenni a saját kedvére. Ez megint csak az illesztések esetén fontos. 
Nekem volt már olyan tárgyam amit, ha leszeleteltem, akkor minden alkalommal mást számolt az alkalmazás és másképp szeletelte. Ez okozhat anomáliákat a tárgyban.
Ilyenkor a legjobb megoldás, ha a két vagy több részes, illeszkedő tárgyat egyben szeleteljük és nyomtatjuk, és akkor az összes hiba amit beleszámolhat a szeletelő, mindenhol ugyan az lesz, így talán jobb az esély a pontosabb illesztésre. Ha több menetben kell nyomtatni, akkor elszámolhatja az alkalmazás annyira magát, hogy jöhet a reszelés.


A tökéletesre törekedve

Sajnos tökéletes nyomtatás nincs az FDM érában. Meg kell békélnünk egy bizonyos fokú hibával, ami mindig is jelen lesz a nyomtatott tárgyakban. De ezt lehet optimalizálni, ami jó, mert csökkenthetjük az utómunka idejét.
A precizitás és egy kis matekozás átsegíthet bárkit a pontatlan állapotokon. 
De ne feledjünk mindig tesztelni, mielőtt ráeresztjük a végleges sokórás nyomtatást.
Ez alatt azt értem, hogy nem árt CAD-ben csinálni a tárgyunk kétséges részeivel kapcsolatban egy egy teszt objektumot.
Ilyen a rések tesztelése a végleges filamenttel és a végleges szeletelési beállításokkal, vagy mondjuk egy illeszték beállítása, ha mondjuk két tárgynak egymásba kell csúsznia.
Persze ez anyagpazarlás és plusz idő. De ha képesek vagyunk várni 30-100 órákat egy tárgyra, akkor a teszt 1-2 órája már jó befektetés lehet, hogy ne kelljen kidobni az eredményt, vagy épp utólag kínlódni a pontosítással, akár hozzáadni akár elvenni kell a tárgyból.

Nincsenek megjegyzések:

Megjegyzés küldése

Nyomtassunk rönkből, a fa alapú PLA veszélyei

A gőzkieresztéses bejegyzésem mellé raknám ezt a szöszenetet. Mivel sokfajta fa bázisú PLA van és most már egyre többet adnak elfogadható ár...