Monthly Archives: April 2014

3D nyomtatás: "csak gyártod a sok műanyag szemetet"

A probléma Tegyük fel, hogy van egy párod, aki a poszt címében megfogalmazott támadással állná útját annak, hogy 3D printelj, pedig te imádod pazarolni az erőforrásokat és illatolni az ABS olvasztása során felszabaduló ciánt.

A megoldás

Találjunk valami háztartási problémát, amit csak új eszköz vásárlásával lehetne megoldani. Amint ez megvan, ereszd szabadon a benned bujkáló mérnököt és tervezd meg / gyártsd le az egyébként pótolhatatlan alkatrészt műanyagból! Mai delikvensünk egy közönséges fürdőszobai mosdócsap. Ha jól emlékszem, ez GROHE termék, kettő is van belőle otthon. Egyik hétvégén úgy értünk haza, hogy a csap végén a vízsugarat buborékosító zárószerkezetből kiestek a szűrők, az azokat tartó peremet pedig nagy eséllyel már rég elnyelte a csatorna. Leszereltem hát a csapvéget és magammal hoztam Krakkóba, hogy két tesztfuttatás között kitalálok rá majd valamit. Így néz ki a meghibásodott csapvég a buborékokat generáló szitákkal, amiket mára már nem tart a helyén semmi: bad-tap Ha kiszedem a szitákat, a foglalatukul szolgáló kis henger kitekerhető a csapból: bad-tap-disassembled A henger oldalán egymással párhuzamosan van két letörés, hogy egy fogóval meg tudjuk ragadni, ha mondjuk kézzel nem lenne kitekerhető, mert belegyógyult a vízkőtől: threaded-end-with-from-top A henger oldalának felső, ~5mm-es részén egy 24×0.75 mm-es metrikus menet lakik, a felső szélén pedig egy perem tartja helyén a tömítést: threaded-end-from-bottom Mivel a buborékképző sziták ~18 mm szélesek, a henger pedig ~23 mm átmérőjű, így marad elég falvastagság ahhoz, hogy az egész kényelmesen printelhető legyen. Mi a henger aljába is teszünk majd egy peremet – ez fogja helyén tartani a szitákat. Ez volt az ötlet leskiccelve: model Ez pedig a megvalósult ojjektum: finished-part-alone finished-part-on-its-place Voila, szombat estétől újra két csap üzemel a fürdőszobában! Ha ellenállhatatlan vágyat érzel a modell birtoklására, akkor viheted a Thingiverse-ről. p.s.: semennyire nem vág a poszt témájába, csak a fotók elkészítése közben jutott eszembe a dolog. A héten olvastam Handrásnál egy posztot, amiben arról ír, hogy AlieN Gergő egy telefonnal készít gyönyörű fotókat. A poszt után több olyan megjegyzést olvastam/hallottam, hogy ilyen precízen fókuszált képeket a telefonnal lehetetlen lőni. Nos, ennek a posztnak a képeit egy iPhone 5 készítette és azt gondolom, rendben van a fókusz. Megmutatom mi kell hozzá: tap-end-photography-backstage]]>

Depreszzív, húsvéti Exceles poszt

több, mint 80 országban futnak szerte a világban. Ezidáig nem találkoztam olyan problémával, aminél széttártam volna a kezem. A VBA interpreter telis-tele van hibákkal, de eleddig mindenre sikerült valamilyen workaroundot találni (nota bene: ha saccolnom kellene, nem kevés időt tenne ki a különböző fejlesztésekből az, hogy az interpreterben maradt bugokra gyógyírt találjak). Ma azonban találtam valamit, ami előtt jelenleg szét kell, hogy tárjam a kezem és azt kell, hogy mondjam a kedves ügyfélnek: sajnálom, ezt nem tudjuk implementálni. Utálok ilyet tenni, különös tekintettel arra, hogy a jelenlegi problémának egyszerűen nem szabadna léteznie. A feladat az volt, hogy egy cirka 1 millió cella méretű tábla kb. 10%-ban relatíve bonyolult képleteket kell generálni, majd miután az Excel elvégezte a számítási műveleteket, a cellákban szereplő képleteket le kell cserélni a kiszámolt értékekre. A tábla egy kb. 7 MB méretű dokumentumban lakik, a tábla teljes struktúráját és az abban levő összes képletet függvények generálják, a felhasznált adat jó részét szintén függvények importálják külső adatforrásokból, a végfelhasználó pusztán statikus számokat gépel bele a táblázat celláiba. A dolog egyszerűnek hangzik, mint egy faék – az is lenne, ha a mocsadék interpreterben nem bujkálna valahol egy ordas memleak. A képlet értékre cserélését VBA-ból többféleképpen is meg lehet oldani: az egyik művelet a clipboardot használja, kb. így:

srcRange.Copy
srcRange.Cells(1,1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Ebben az esetben a srcRange változó által mutatott Range tartalma megy a Clipboardba, majd a következő sorral a kiszámolt értékek visszakerülnek a képletek helyére. Az Application.CutCopyMode = False hivatott arra, hogy a Clipboardot felszabadítsa. A másik megoldás nem használ Clipboardot az adatcseréhez:
srcRange.value = srcRange.value
Mindezt elvégezzük egy ~2000 soros táblában, a sorokon egy ciklussal lépkedve, egy sorban ~500 cella tartalmát változtatva egyszerre. A gond ott jön, hogy ahogy halad a ciklus, a művelet látványosan lassul (annak ellenére, hogy a táblában levő képletek fokozatosan tűnnek el, tehát épp az ellenkezőjének kellene történnie), majd egy idő után az interpreter egyszerűen nem hajlandó az aktuális value paste műveletet végrehajtani és a kód futatása megáll, amit egy generic, semmire nem jó hibaüzenettel dokumentál a rohadék (1004 – Application defined or object defined error). Ha ezen a ponton fejlesztő kollégaként úgy éreznéd, hogy kommentálnod kéne a dolgot, mert mondjuk nagy eséllyel nem szabadítok fel valami változót a ciklus belsejében és az nyeli a memóriát, akkor kérlek ne tedd: minden lehetséges megoldást kipróbáltam már, fejlesztői oldalról a memleak esélye jelen esetben teljesen kizárt. Az teljesen nyilvánvaló, hogy a képletek értékre cserélése felzabál egy erősen limitáltan rendelkezésre álló RAM-ot (HEAP, STACK?), ami 2014-ben egy 2010-es szoftvert használva azért elég vicces (a kódot futtató gépben jelenleg 32 GB RAM van, mi meg egymillió darab lebegőpontos számmal dolgozunk). Cirka 7 óra knowledge base bújás és egyéb keresés után sem tudok olyan megoldást, ami a paste value művelet elvégzése után felszabadítaná a művelet által elemésztett RAM-ot, ezért ordas memleakre gyanakszom. Ez a poszt így ahogy van, elmegy a Microsoft Tech Supportnak, de sajna túl sok reményt nem fűzök ahhoz, hogy bármi érdemi választ kapjak (=sok rossz tapasztalatom volt korábban). Ettől függetlenül a lepényhal megy elöl, a remény hal meg utoljára, szóval ha érdemi válasz jön, azzal nyilván kiegészítem a posztot, hadd legyen még egy 100%-ig elégedett ügyfelem.]]>

3D nyomtatás: tervezzünk FIFO elemtartót AA méretű akksiknak

A probléma Sok újratölthető AA méretű akksit használunk a háztartásban, amikről feltöltés után nem tudjuk megmondani, melyikeket töltöttük legrégebben.

A megoldás

Gyártsunk egy akksitartót, amibe a tetején beledobáljuk az AA akkukat, az alján meg töltési sorrendben (=FIFO) szedegetjük ki őket. Ha már lúd, legyen kövér: készítsünk olyan dobozt, ami moduláris, azaz tetszőleges számú AA akksi férjen bele. Minden további szöveg helyett itt a megoldás egy közel 20 perces, hangtalan videóban, hátha kibírod:

Designing a FIFO AA battery holder in Fusion 360 from Gabor Penoff on Vimeo.

Az elviselhetőség érdekében 2.5-szeresére gyorsítottam a screencastot, azaz a valóságban szűk egy órába tellett, mire elkészült a modell. A printer jelenleg is izmozik vele, így még nem tudok sem késztermék fotót, sem STL file-okat prezentálni – majd ha kész az első darab, összeraktam és hibátlan, akkor jön ide a poszt végére update formájában az eredmény is. Stay tuned! Update: elkészült.]]>

Hogyan vegyünk meg egy 1000 Ft-ba kerülő csavarhúzót 4500 Ft-ért

WIHA-PicoFinish-arajanlat 1153 HUF bruttó az egy szem imbusz csavarhúzó ára, erre 2400 HUF rakódik rá, azaz több, mint kétszer annyi, mint amennyibe maga a csavarhúzó kerül. Persze vásárolhatnék 30001 HUF értékben és akkor mindkét extra költség eltűnne, na de könyörgöm: ez a tárgy egy 153x15x15 mm-es befoglaló téglatestben elfér – a DL-es boríték 220 mm hosszú. Miért kell 1500 HUF értékben GLS-t használni és további 900 HUF értékben kezelni az egy szem csavarhúzót? Mielőtt bárki nekem esne, hogy valószínűleg a kereskedő NAGY, a tétel meg KICSI, elmesélek egy múlt heti történetet, ami Lengyelországban esett meg velem. Egy Airport Expresst alakítottam át 5V-ról üzemeltethetőnek. A kis süti méretű Apple routert 3.3V feszültség hajtja, én meg USB-ről szerettem volna etetni, így szükség volt egy 5V->3.3V stepdown konverterre. Jó darabig csak az ebay-en, vagy a kínai site-okon találtam ilyet, mígnem a keresési találatokban előbukkant egy lengyel cég, a kamami.pl. Megtaláltam náluk a keresett alkatrészt, rendeltem két darabot mintegy 11 PLN (~900 HUF) értékben. A cucc másnap megérkezett postán, egy bélelt borítékban, egy szem savanyúcukorral együtt csomagolva, amire valaki egy mosolygó arcot rajzolt. A feladó 400 km távolságból küldte a cuccot, szállítási költségként a standard lengyel postabélyegnél talán ~100 Ft-tal fizettem többet. ]]>

3D nyomtatás: mire NE költsd a pénzt

Hrvoje Čop írt egy felháborodott posztot a frissen megjelent 3D systems CubePro printerrel kapcsolatban. Itt a videó, amiben promózzák a fent említett nyomtatót: A horvát kolléga részletesen kivesézi, mi a baja a szóban forgó printerrel, én csak elismétlem magyarul, pár screenshottal illusztrálva.

1. Igénytelenség a promo videóban

Nézd meg ezt az összemocskolt nyomtatófejet: not-so-pro-CubePro3 Hogy a francba nem volt képes a gyártó letakarítani a hotendet, mielőtt a videót felvették? Lehet, hogy elég gyorsnak gondolták a timelapse részt ahhoz, hogy a felhasználó ne vegye észre? Miért nincs a hotend oldalán hőszigetelés (btw már ez segítene, hogy ne mocskolja ennyire össze az olvadt nyersanyag)?

2. Ronda nyomtatási hibák

Ronda, nagy eséllyel anyagáramlási problémára visszavezethető hibák a demo printen: not-so-pro-CubePro1 Az újdonságként reklámozott több anyagos nyomtatási technológiájuk lyukat és megfolyást hagy a készterméken: not-so-pro-CubePro2 Mindez a sub $5000 árkategóriában indul. Ezért a pénzért ebben a kategóriában versenyző printerekből nagyjából két darabot kapsz. Nehogy bedőlj nekik!]]>

3D nyomtatás: csata az ABS-szel

akrinitril-butadién-sztirolt, mely egy hőre lágyuló polimer, amelyet a nevében felsorolt három monomer alkot: ABS resin formula Az ABS remek műanyag, 105 ℃ körül van az üvegesedési átmenete, amit mi most nagyon szeretni fogunk. Az üvegesedési átmenet azt jelenti, hogy ezen a ponton az anyag egyfajta amorf kristályszerkezetet vesz fel – nekünk egyszerű embereknek ez az ABS esetében annyit tesz, hogy 100 fokig a műanyagunk nem lágyul meg, ellentétben a másik igen népszerű nyomtató-nyersanyaggal, a PLA-nak rövidített politejsavval, ami képes egy melegebb nyári napon elalélni az autó szélvédője mögött. E tény ismeretében ne nyomtassunk hozzám hasonlóan birka módon GoPro tartókeretet a kocsiba PLA-ból. A PLA üvegesedési átmenete 60 ℃ környékén van, de ez egy másik történet, most inkább kínozzuk magunkat az ABS-szel! A LEGO kockák alapanyagául is szolgáló ABS-t akarunk nyersanyagnak használni. ABS-t találsz a háztartásodban szinte bármilyen műanyagban, amerre csak nézel. A LEGO kocka is, csak úgy, mint a többi nagy sorozatban gyártott műanyag alkatrész egy “injection molding” nevű eljárással készülnek. Az injection molding lényege, hogy a megolvaszott műanyagot óriási nyomással (1300-2000 bar) egy két féldarabból álló öntőformába préselik. Az injection moldinghoz használt szerszám előállítása baromi drága dolog, így prototípust tervezni nem volt túl olcsó mulatság korábban. A 3D nyomtatás pont ezen segített nagyot. Ha kicsit izgat az injection molding, akkor bővebben ez a videó segít megérteni: Szóval nekünk pont jó lenne az ABS – elég erős, jól tűri a hőt, és működnek vele bizonyos 3D printerek, amelyeket ABS printelésre felkészítettek. A felkészítés jelen esetben egyrészt fűthető tárgyasztalt, másrészt opcionális temperált kamrát jelent. Ezekre azért van szükség, mert az ABS meglehetősen nehezen tapad oda bármihez, amit mi általánosságban tárgyasztalnak használunk. A fűtött tárgyasztalunk felülete tükörsima kell, hogy legyen. Az általánosan elterjedt gyakorlat az, hogy vagy egy üveglapot, vagy egy marógéppel precízen vízszintes felületűre mart alumínium lapot használnak erre a célra a népek és nagyjából 100-110 ℃ hőmérsékletűre melegítik elő a tárgyasztalt. Tárgyasztal fűtőelem létezik 12, 24 és 230 V-os kivitelben – ez utóbbit nyilván élni szerető ember nem használ (mivel a tárgyasztalt szoktuk kézzel piszkálni), így marad a két gyengeáramú törpefeszültségű verzió. A fűtőelemek többsége elég nehezen éri el az ABS által szeretett 100-110 ℃ hőfokot, én azonban találtam egy meglehetősen gyorsan fűtő szilikon betétet a QU-BD-nél, ami 1-2 perc alatt felforrósodik. Az ABS még így sem nagyon szeret tapadni, ezért aztán kétféle trükkhöz folyamodik a felhasználók többsége. Az egyik az, hogy közönséges hajlakkal fújják le a nyomtatási felületet egy vékony rétegben, a másik, hogy úgynevezett “ABS juice”-szal törlik át a tárgyasztalt (az ABS juice nem más, mint acetonban oldott ABS). Mindkét eljárás azt a célt szolgálja, hogy a legelső réteg megfelelően tapadjon. Aki az így nyert tapadással nem elégedett, az a heated bed felületére még egy Kapton-nak nevezett poliimid filmet ragaszt és arra keni/fújja a plusz kötőanyagot. Az egész hajlakkos-dzsúzos tárgyasztal előkészítés elég nagy macera, ám kísérletező kedvű felhasználók rengeteg más anyagot is kipróbáltak fűthető platform gyanánt, mígnem ráakadtak a PEI-nek rövidített politherimidre. A PEI nagyjából 170 ℃-ig bírja a hőt és a felmelegített felületére brutálisan jól tapad mind a PLA, mind az ABS. A Reprap nyomtatóknál kvázi standard tárgyasztal méretben, 214×214 mm-ben forgalmaz is ilyen lapot a német reprapsource.com. A nem túl olcsó műanyagot különlegesen jó hőtűrő tulajdonsága miatt a repülőgépgyártásban használják előszeretettel. Megvan a tárgyasztal, továbbá tudjuk, hogy az ABS-t 230 fokon érdemes nyomtatni, nosza nyomtassunk: ABS-crap A fenti fotón látható szemétmennyiség annak az eredménye, hogy elhittem, ennyi tudás elég ahhoz, hogy PLA-ról simán ABS-re váltva nyomtassak. Hát nem. Kezdetben 90 ℃-os tárgyasztallal indultam neki. Az eredmény ordas felpöndörödés (=warping), minimális méretű test esetén is: ABS-warping A gonosz warping picit melegebb tárgyasztallal csökkenthető (bár ahogy említettem, sokan inkább a kaptonnal bevont, ABS juice-os üveglapra esküsznek), illetve ha “bedobozoljuk” a printerünket, azzal szinén emelhetünk a hűlő ABS rétegek hőfokán valamennyit: Ultimaker-chamber Aztán a 230 ℃-os hotend hőmérséklet bizonyult kevésnek. Nyilván nyersanyaga válogatja és az is simán előfordulhat, hogy hazudik a nyomtatófejbe épített termisztor vagy épp nem túl precíz a kalibrációs táblázata, de summa summarum érzésre 250 ℃-t szeretett az ugyanabból a forrásból származó piros és fekete nyersanyag is. Jön a többi probléma, szép sorjában. ABS-szel nem nyomtatunk kapkodva – az én printerem kifejezetten utálta, ha 50 mm/s sebesség fölé kívántam menni és az alábbi típusú outputtal figyelmeztetett erre: ABS-flow-problem Ha a sebesség is rendben lenne, akkor ideje lenne némi hűtésről gondoskodni, hiába látod a legtöbb ABS-t nyomtató printeren azt, hogy hiányzik róla a hűtőventillátor. Ha nem teszed, akkor ronda élek figyelmeztetnek: ABS-without-cooling1 ABS-without-cooling2 ABS-without-cooling3 Majd jön a “pillowing”-nak keresztelt típushiba: ABS-pillowing A ventillátorokkal azonban vigyázni kell, mivel ha rosszul pozícionálod őket, kihűtik a nyomtatófejet. Korábban próbálkoztam mindenféle légterelő megoldással, de végül a két darab, 45 fokban a tárgyasztalra fújó ventillátornál kötöttem ki úgy, hogy közben autóipari szilikonból gyártottam egy megfelelő hőszigetelést biztosító “gigabugyit” a kicsit ormótlan Ultimaker hotendnek: Ultimaker-head-insulation-with-fans Nagyjából ennyi. Mindez kb. ennyi print volt, mire minden turpisság kiderült: ABS-failed-prints Summa summarum, ami nálam ABS esetében bevált:

  • PEI print bed, 100 ℃-ra melegítve
  • 250 ℃-os hotend
  • max. 50 mm/s nyomtatási sebesség
  • nyomtatott tárgy hűtése két oldalról egyszerre, hogy ne legyen egy porcikája sem szélárnyékban a nyomtatófej miatt
  • a hűtőventillátorok 100% helyett 40-50%-on üzemeltetése
  • zárt akril kamra, ha nagyobb testet nyomtatok
]]>