Author Archives: eFi

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á!

Merülj fókákkal!

Smetana Moldvájára raktam össze bő 12 percet a felejthetetlen merülésből. A 4k-ban felvett videot 480p-ben élvezheted, köszönhetően a nálam elérhető 1 mbps uplink maximumnak. A youtube már két kézzel integet, hogy copyrightos tartalom van a videóban (szegény Smetana 1884 óta halott, nem tudom meddig tilos még felhasználni a műveit), úgyhogy nézd meg így egyben, amíg még le nem némítja a tartalommegosztó:

Csináltam egy rövidebbet arra az esetre, ha Smetana allergiád lenne:

3D nyomtatás: hexagonal cookie cutter a.k.a. Ger edition

A 17-es naEzMihez Ger végül kitalálta a megoldást, majd kaptam egy emailt tőle:

Ha már ezt a toolt kitaláltam, akkor lepjed meg a mestert egy hatszögletű verzióval! Feleségem szerint a visszahajtott füleket nem érdemes sok krémmel terhelni, mert akkor lelapulnak (így tanítják a cukrásziskolában), bár én biztosan cakkosra csináltam volna a sarkon lévő L-alakot, hogy a fülek is cakkosra (=ropogósabbra) süljenek és tuti nem édesre töltenének, hanem sósra...

A gyerekek épp jöttek hozzánk, nem sok időm volt ezzel foglalkozni, de megígértem neki, hogy mindenképp megcsinálom a hexa változatot. A mail persze szépen kicsúszott a látóhatár szélére, így szinte el is feledkeztem róla, de a múltkor a levelek pakolászása közben ráakadtam, aminek ez lett az eredménye:

Gernek elküldtem az STL file-okat, a ma reggeli postában meg jött két fotó egy újabb mailben az eredményről:

Linzertészta az egyszerűség kedvéért, saját, idei meggybefőttel ill. opcionális meggylekvárral. A lányaink (3,5 és 5,5 évesek) gyártották, miután anyjuk kiképezte őket és át is mentek az auditon.

Enném azonnal :)
Ger, a lányoknak külön gratula és köszi a fotókat!

Ha kedvet kaptál, a modellt szokás szerint szedheted a youmagine.com-ról.