3D nyomatatás: Snapmaker – újabb csodaprinter?

Pár napon belül 6-7-en is kerestek azzal kapcsolatban, hogy mondjak véleményt erről a jószágról.

TL;DR

Ne vedd meg.

Bővebben

Ez kb. egy Kodama3D Trinus klón, ismeretlen gyártótól, ismeretlen szoftverrel, ismeretlen extruderrel, ismeretlen leveling mechanizmussal, ismeretelen anyagú + nem levehető + kis méretű tárgyasztallal. A szalagkábellel csatlakoztatott "color LCD screen" nevű üveggolyónak remélem senki nem dől be.

A tengelyek mozgatásáért felelős komponensekről mindössze ennyi derül ki: "precision acme leadscrews". Vajon miért titok, hogy ki gyártotta, mennyit adott már el belőle és mi a többi felhasználó véleménye?

A specifikáció két további aggályos dolgot állít:

  • heated bed max. temp: 80 ℃, valamint supported materials: ABS - az ABS-nek 100 ℃-os tárgyasztal kell, azaz ezzel nem fog menni
  • nozzle temperature: 250 ℃. valamint supported materials: etc. - nem véletlenül nincs részletezve a támogatott nyersanyagok listája, nylont pl. 250 fokos fejjel nem lehet nyomtatni

Nem kell ez nektek, srácok. Ha szűk a budget, akkor is ott van mondjuk a Creality Ender 3 csitrillió userrel és mindjárt jön a Black Friday is.

3D nyomtatás: házunk előtt 9 univerz áll

Mindenféle mobil eszközt megtartó dokkot akartam csinálni, ami olyan, hogy

  • kompakt méretű
  • gyorsan lehet nyomtatni, minél kevesebb anyagból, support nélkül
  • elfér rajta a 10.5"-es iPadtól a legkisebb iPhone-ig bármi
  • portraitben és landscapeben is megáll rajta az összes eszköz
  • szimmetrikus

9 iteráció után ebből lett az universal mobile mount névre keresztelt jószág:

Andris barátom a v3-nál látta a kütyüt, onnantól az ő esze is benne volt a játékban, ezer köszönet érte :)

További fenszi tulajdonságok:

  • portraitben és landscapeben is megállnak benne az eszközök
  • annyira kompakt, amennyire csak lehetett: 85 mm széles, az egyenlő oldalú háromszög élhossza 70 mm
  • szimmetrikus, így mindegy, melyik fele néz feléd, mikor beletámasztod a mobilt
  • a "B" oldala használható ceruzatartónak
  • a középső kivágásnak köszönhetően sem a home buttonnak, sem a home barnak nincs útjában semmi
  • bár ez szinte senki másnak nem szempont, de belül a CADben is szép minimalista a design: mindössze 1 sketch, 2 extrude és 3 fillet command az egész test ;)

Ha tetszik, viheted a youmagine.com-ról.

3D nyomtatás: naEzMi #24?

A feladat a szokásos: virtuális sörért kitalálni, mit hegesztek már megint: A méretek mm-ben vannak most is.

Most printeltem belőle kettőt, nagyon pöpec lett :)

Update #20181026: miután norek az első kérdésével levadászta a sört, kitettem a modellt a youmagine.com-ra.

3D nyomtatás: naEzMi #23?

A feladat a szokásos: virtuális sörért kitalálni, mit hegesztek már megint:

A méretek mm-ben vannak most is:

Szerintem most is gyorsan meglesz, úgyhogy hajrá!

Update: két nanoszekundum alatt meglett a megfejtés, granulálok a versenyzőknek. Tibb kért belőle egy háromszög alakú verziót, az ilyen lett:

Update #20180921: elkészült a print, szerintem a 90 mm-es átmérő az ideál (=körbejártam a lakást és mindent megmértem, ami csak kicsit is üveg formájú volt). A modellt viheted a youmagine.com-ról (feltettem 80-120 mm-ig 5 mm-es lépésközzel verziókat, vagy csinálhatsz magadnak spécit, ha birizgálod a Fusion 360 design d_bottle paraméterét). Ilyen lett a végtermék:

Songwhip

Utálod, hogy nem minden ismerősöd ugyanazt a streaming zenei szolgáltatót használja? Erre találták ki a songwhip.com oldalt: megkeresi neked a tracket minden streaming music service-ben és kiteszi a linkjeiket egy listába. Ordít róla, hogy ebből Alfred workflowt kell csinálni (Ottó régóta kérte már ezt tőlem, plusz tök jó érzés pont pénteken kipipálni egy pet projektet).

Csak egy kis Python kell hozzá XPath-tal és már ki is túrtuk a lényeget:

#!/usr/bin/python
import sys, os, json, requests
from lxml import html
 
# get url from clipboard
url = os.getenv('cb')
 
query = 'https://songwhip.com/' + url
page = requests.get(query)
url = page.url
tree = html.fromstring(page.content)
 
data = { "items": [] }
 
mods = {
	"cmd": {
		"subtitle": "Copy link to clipboard"
	},
	"alt": {
		"subtitle": url
	}
}
 
song = tree.xpath('/html/head/title/text()')[0]
 
data["items"].append({"valid": True, "uid": "00songwhip", "title": "SongWhip", "subtitle": song, "arg": url, "icon": {"path": "icon.png"}, "mods": mods})
 
items = tree.xpath('//a[@role="button"]')
i = 0
for item in items:
	i = i + 1
	title = item.text
	url = item.get("href")
	file_icon = "icons/icon.png"
	if os.path.isfile("icons/" + title + ".png"): 
		file_icon = "icons/" + title + ".png"
	mods = {
		"cmd": {
			"subtitle": "Copy link to clipboard"
		},
		"alt": {
			"subtitle": url
		}
	}
	data["items"].append({"uid": str(i).rjust(2,"0") + title, "title": title, "subtitle": song, "arg": url, "icon": {"path": file_icon}, "mods": mods})
 
sys.stdout.write(json.dumps(data))

Installáld a workflowt, másolj be egy music streaming URL-t a kedvenc streaming szolgáltatásodból a clipboardba, majd Alfredben add ki a "sw" keywordöt és voila:

Ha tetszik, viheted a packal.org-ról. Have fun!

3D nyomtatás: boxgyár

A dolog onnan indult, hogy meguntam visszapakolni a kis szar zacskójába a fogselymes műanyag fogpiszkálókat, amik a fürdőszobai polcon laktak. Terveztem is nekik gyorsan egy kényelmes méretű boxot, rövid, ám annál brutálisabb menetű kupakkal:

Kinyomtattam egyet, aztán rájöttem, hogy ez a fültisztító pálcikáknak is jó lenne... meg más méretben még egy csomó mindennek, úgyhogy a parametrikus Fusion 360 designnak hála, gyorsan csináltam is két másikat:

Innentől nincs messze a megalomán állat fázis, amikor csillió méretű dobozt akarsz azonnal. Persze minden codervérű lélekben azonnal behúz az utálkozás trigger, amint egynél többször kell neki a "beállítom a magasság paramétert + elindítom az STL exportálást" workflowt végrehajtania. Szerencsére a Fusion 360-hoz van cuki API, onnan meg már csak egyetlen lépés, hogy egy script exportálja helyettünk a csitrillió méretű dobozt STL-be.

A design hierarchia egyszerű, mint egy faék: egy komponensben lakik két body, az egyik a doboz, a másik a kupak:

Erre simán lehet lőni mondjuk Pythonnal:

import adsk.core, adsk.fusion, adsk.cam, traceback
 
def dumpSTL(design, body, filename):
    exportMgr = design.exportManager
 
    stlExportOptions = exportMgr.createSTLExportOptions(body, filename)
    stlExportOptions.meshRefinement = adsk.fusion.MeshRefinementSettings.MeshRefinementHigh
    stlExportOptions.sendToPrintUtility = False
 
    exportMgr.execute(stlExportOptions)
 
 
def run(context):
    ui = None
    try:
        app = adsk.core.Application.get()
        ui = app.userInterface
        design = adsk.fusion.Design.cast(app.activeProduct)
 
        folder = '/Users/fns/Desktop/'
        parentCompName = 'stick box'
        # get parameters
        h_box = design.userParameters.itemByName('h_box')
        w_box = design.userParameters.itemByName('w_box')
 
 
        # locate our component
        allComp = design.allComponents        
        for comp in allComp:            
            if comp.name == parentCompName:            
 
                bodies = comp.bRepBodies
                for body in bodies:
                    if body.name == "box":
                        body_box = body
                    else:
                        body_cap = body
 
                # dump cap
                filename = folder + body_cap.parentComponent.name + " - " + body_cap.name + " " + w_box.expression + '.stl'
                dumpSTL(design, body_cap, filename)
 
                # dump all boxes
                for h in range(10, 100, 10):
                    h_box.expression = str(h)
                    adsk.doEvents()
 
                    filename = folder + body_box.parentComponent.name + " - " + body_box.name + " " + w_box.expression + ' - ' + h_box.expression + '.stl'
                    dumpSTL(design, body_box, filename)
 
        ui.messageBox('Finished.', 'exportBoxes')
    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()), 'exportBoxes')

A Fusion 360 CAD file-t a Python scripttel és a generált STL-ekkel együtt szedheted a youmagine.com-ról.

SütFőzMosogat: a szegy

A nagy BBQ guruk szerint a marhaszegy (englishül brisket) a low & slow barbecue Szent Grálja: nagyon sokáig tart mire elkészül, könnyű elrontani, de a jól megsütött eredmény kárpótol a fáradozásainkért. Én sokszor beleálltam már a brisket csatába, de a most szombaton elkészült darabra tudom csak azt mondani, hogy oké, megvan a titok. Ez a poszt azért készül, hogy megmaradjon, mit hogyan csináltam (és persze bátorítson téged is, hogy süss szegyet).

A brisket a marha mellkasából jön kb. így:

Ez egy púpos hús - a laposabb "flat" részre a "point" oldalon a púpot adó izmot egy elvékonyodó zsírrétreg ragasztja oda:

A szegyet alacsony hőfokon, sokáig kell sütni (itt szó nincs nem átsült húsrészről, a cél a füstös kérget kapott, nagyon szaftos, well done marhahús). A problémát épp az egyenetlen vastagság okozza: simán ki tud száradni a flat rész, mire a point elkészül.

Szerintem ennél a sültnél a marha ízének kell dominálnia, ezért nem pácolunk, nem varázsolunk semmiféle extra fűszerrel, hanem 1:1 arányú só:bors keverékkel szórjuk körbe a szegyet oszt jónapot. A húst megkentem vékonyan mustárral, de csak azért, hogy jobban ragadjon a rub (olívaolaj ugyanúgy megfelelt volna). A só közepesen szemcsés, a bors durvára őrölt volt, a fűszer alól kilátszott a hús bőven.

A sütéshez a kamadot használtam, 3 kg faszén ment bele és annak a tetejére két marék áztatott hickory chips füstképzőnek (a kamado egy dupla kerámiafalú, alul és felül légnyílásokkal ellátott kemence, ami hihetetlen takarékos és fantasztikusan tartja a hőt). A szén fölé egy kerámialap került (hogy a hús ne direkt hőt kapjon), a lapra egy alutálcában 2 liter forró víz, a tálcára grillrács és arra a hús. Sikerült egy méretes, 5.8 kg-os darabot találnom, amiről mindössze ~350 grammnyi zsírt és hártyát kellett csak leszedni:

Mivel egy előző sütésnél a rács két ellentétes oldalán nagyon eltérő hőmérsékleteket mértem, ezért most egy komplett hőmérő arzenállal álltam neki a sütésnek, hogy kitapasztaljam, hol lenne optimális a kemence hőjét mérni. Továbbá annak ellenére, hogy számos brisket guru azt javasolja, hogy a szegyet érzésre süssük és ne foglalkozzunk a hús maghőjével, én azért beszúrtam egy maghőmérőt a szegybe is, a flat legvastagabb részébe középre, az izomba.

Persze nem is lennék rendes kocka, ha a kemence temperálását mindössze holmi kézi vezérlésre bíznám. Ehelyett az amcsi BBQ Guru által gyártott DigiQ DX2 nevű jószággal oldottam meg az állandó hőfokon tartást. A kütyü lényegében egy hőmérséklet vezérelte ventillátor: beállítod a kívánt sütési hőfokot, ő pedig az alsó szellőzőbe illesztett ventillátorral a sütőtérben mért hőmérséklet függvényében adagolja a levegőt a faszénnek:

A DigiQ hőmérőjét a kemence dómjába belógó analóg hőmérő szenzorra csíptettem (és mint utólag kiderült, ez volt a lehető legjobb megoldás). Extra kontrolként bevetettem egy Maverick ET-733-at is - ez egy digitális hőmérő 2 db szenzorral; a szenzorok a sütőtér elejébe és hátuljába kerültek, közvetlenül a rácsra:

Végül, de nem utolsó sorban a szegybe is dugtam egy maghőmérőt - ezt a feladatot a Meater kapta. A Meater a maghőmérők Rolls Royce-a, a BBQ hőmérő Nirvana megtestesítője, a non plus ultra hússzenzor. Ha nincs ilyened, de sokszor sütsz vastagabb húsokat, szerezz be egyet, nem fogod megbánni:

Szóval 5 (!) hőmérő hadrendben, tűzgyújtás reggel 4:20-kor, 5:00-kor sütés indul, target temp 120 ℃:

A Meater szoftverét beállítom 72 ℃-ra (mindjárt elmagyarázom, miért), a hús és a beltér maghőjét a kis kütyü szépen logolja a hűtőre ragasztott iPad minin, aki pedig bridge-eli az adatot a többi mobileszközünkre, ha azt szeretnénk (=további geek kényeztetés ON). 77 ℃-ig minden úgy történik, ahogy az ember elképzelte (a zöld grafikonon pontosan látszik, hol nyitottam ki a sütőt megnézni húst a 4. óra elején - ezt lehetőleg ne tegyük sokszor):

Szóval eddig minden jól ment, majd innentől bő 4, borzasztóan nehéz óra következett, amikor ezt láttam a logon:

A lila csík a hús maghője, ami kb. 4:30-tól 8:30-ig fokozatosan csökkent, dacára annak, hogy a kemencében 100 ℃ feletti hőmérséklet uralkodott.
Ez az a rész, ahol nem szabad megijedni és nem kell feljebb állítani a sütő hőmérsékletét. Ami történik, azt a szakirodalom "stall"-nak hívja. A 4. óra körül a kollagén elkezd szétesni és a sejtközötti folyadék új utakra indul a húsban, szép lassan csökkentve a maghőjét. A stallt az általam is bekajált "széteső kollagén - kötőszöveti folyadék" teória helyett szimplán az okozza, hogy a hús felületére kiváló folyadék párolog. Ez nagy türelemjáték, ugyanis a "stall" fázis hossza múlik a hús méretén, zsír és víztartalmán, a zsír eloszlásán egyaránt, szóval nem nagyon lehet megjósolni, hogy meddig fog tartani.
Abban az esetben, ha a stall kezdetekor fóliába vagy zsírpapírba csomagoltuk volna a szegyet, a komplett stall fázis kimaradhatott volna - viszont így inkább fő egy picit a hús és tompul kicsit benne a domináns marha íz, amit én nem akartam.

Szóval eljött a 8 és feledik óra és a 72 ℃-ot mutató Meater egyszer csak 73 ℃-ra váltott, majd szép lassan megindult felfelé. 85 ℃-ig hagytam, majd bő 12 és fél órával a sütés kezdete után ismét kinyitottam a fedőt és ez fogadott:

Meglökdöstem picit, rezgett, mint a kocsonya :) Zsírpapírba, majd egy törölközőbe csomagolva bebújtattam egy szigetelt dobozba 45 percre, aztán felvágtuk:

Szummárium

Sokat tanultam ebből a körből, itt a lista, mit hogyan csinálok legközelebb:

  • a rub és a mustáros ragasztás tökéletes
  • 2 liter forró víz simán elég a teljes sütés idejére, nem kell utántölteni
  • a DigiQ-nak a kupola tetejében, a régi hőmérő csonkján kell célhőmérsékletet mérni
  • a rács két oldalán akár 30 ℃ eltérés is lehet; a kupola tetejében mért célérték és a Meater húsból kiálló szenzora bőven elég biztonságot ad
  • semmi szükség a stall elejénél becsomagolni a szegyet
  • a maghőmérséklet ellenőrzése igenis nagyon sokat segít (=minimum kevesebbet nyitogatod a sütőt)
  • 72-78 ℃ között jön a stall, és akár 4 és fél órán át is tarthat - bírd ki, hogy nem emelsz sütő hőfokot
  • már 80-82 ℃ maghő is elég lesz, hogy a flat is ultraszaftos maradjon (a szakirodalom 92 ℃ értéke egész biztosan túlszárítaná a flat-et)
  • 45 perc pihentetés pont elég volt a ~6 kilós szegynek (ezt a legnehezebb kivárni, de muszáj :))

Poliptámadás

Vettem egy éve egy Rylo nevű 360 fokos kamerát és egy hozzá gyártott víz alatti tokot, amit még januárban elvittünk Perthbe és a Rottnest Islanden egy pici strandon lecipeltük magunkkal sznorizni. Pár perc elteltével találtam egy kis polipot, aki szerencsére ugyanolyan kíváncsi volt, mint a fajtársai, úgyhogy gondoltam megnézem, mit kezd a kamerával. Íme az eredmény:

A kis genya egy percen belül kitalálta, hogy nyissa ki a víz alatti tokot és hogy csórja belőle el a kamerát. A felvételt csak azért tudom megmutatni, mert

  • utánamentem az ártánynak és elkoboztam tőle a lopott szajrét
  • rendeltem egy másik kamerát, amivel elő tudtam állítani a beázott társávak rögzített 360 fokos videóból a fent látható változatot

Ugyan nem mértem, de érzésre nekem tovább tartott első alkalommal kitalálni, hogy hogy nyílik a tok, mint amennyi idő alatt a kis barátunk rájött.

3D nyomtatás: naEzMi #22?

A feladat a szokásos: virtuális sörért kitalálni, mi a fenét hegeszthetek már megint:

Kicsit félek, hogy a jellegzetes forma miatt túl könnyű lesz :) A rajzon levő méretek most is mm-ben vannak. Hajrá!