A jól dolgozó coder pecsenyéje
Az én apukám egy fel nem fedezett szobrász zseni
Büszke vagyok és meghatott!]]>
3D nyomtatás – scriptelünk
Előzmények
A Really Right Stuff fotós termékeibe pár évvel ezelőtt szerettem bele. Tőlük vásároltam állványfejet, valamint a géphez való, úgynevezett “L-plate”-et is. Az L-plate a fényképezőgépre csavarozható alumínium keret, ami lényegében egy Arca Swiss típusú befogósínt létesít a fényképezőgép alján és bal oldalán. Ennek az az értelme, hogy egyrészt mindig ott a gépen az állványra csatlakozó sín, másrészt a fényképezőgép portrait állásban is stabilabban áll az állványon. Megmutatom:
A gépemen van tehát egy Arca Swiss sín. Van egy ezzel a sínnel kompatibilis RRS Arca Swiss befogópofám (=quick release knob), amit rögzítenem kellene egy rúd végén. A pofa talpában egy darab 3/8″-os süllyesztett UNC csavar számára van kiképezve menet és süllyeszték:
3/8″-os UNC csavart és hozzá való anyát Európában alig kapni – ha mégis kapható, akkor az aranyárban van és leginkább nincs itt egy óra múlva. Sebaj, akkor majd gyártunk ilyet!
Gyártunk
Némi guglizás után rájöttem, hogy a mezei CAD alkalmazásban UNC menetet rajzolgatni nem lesz egyszerű feladat – legalábbis az én CAD skilljeimnek kicsit meredek a dolog. Ekkor jutott eszembe, hogy biztos kimatekozta ezt már valaki és létezik rá OpenSCAD script. Hellyel-közzel igazam is lett. Kezdetnek megtaláltam a Thingiverse-en aubenc által létrehozott Poor man’s OpenSCAD library-t, amelyben ő az 1/4″-es fotós csavart gyártotta le mintának. Szerencsére mindezt okos függvényekkel tette, úgyhogy némi küzdelem után én is megszültem a projecthez szükséges 40 mm hosszú, végig menetes, 3/8″-os süllyesztett fejű csavart:
A csavar elkészítéséhez a polyScrewThread library birtokában mindössze egy ilyen fikarcnyi kis scriptre van szükség:
includeEzután következett az anya:/* * hex_screw(15, // Outer diameter of the thread * 4, // Thread step * 55, // Step shape degrees * 30, // Length of the threaded section of the screw * 1.5, // Resolution (face at each 2mm of the perimeter) * 2, // Countersink in both ends * 24, // Distance between flats for the hex head * 8, // Height of the hex head (can be zero) * 0, // Length of the non threaded section of the screw * 0) // Diameter for the non threaded section of the screw * -1 - Same as inner diameter of the thread * 0 - Same as outer diameter of the thread * value - The given value */ hex_screw( 25.4*3/8, 25.4/16, 30, 40, 1.5, 2, 0, 0, 0, -1); lyuk = 2.5; difference() { rotate([0, 180, 0]) { cylinder(h = 2.6, r1 = 4, r2 = 6.25, center = false); } translate([0,0,lyuk/2-2.6-0.1]) { cube(size = [1.5,6,lyuk], center= true); } }
Az ő scriptje is vérbuta, mindössze egy kis plusz tágulást kellett belekalkulálni, hogy a printelt csavar és a printelt anya összetekeredjenek:
includeA két OpenSCAD script által generált STL file-t aztán CAD-ben leellenőrizve már jól látszott, hogy a plusz tűréssel együtt kompatibilisek lesznek a menetek:/* * hexa_nut(24, // Distance between flats * 8, // Height * 4, // Step height (the half will be used to countersink the ends) * 55, // Degrees (same as used for the screw_thread example) * 15, // Outer diameter of the thread to match * 0.5) // Resolution, you may want to set this to small values * (quite high res) to minimize overhang issues */ pla_extra_width = 0.8; hex_nut(14, 8, .25*(16/2.54), 30, pla_extra_width+25.4*3/8, 0.5);
0.5 mm hézag az esetek többségében elég szokott lenni – ezúttal picit szorosnak bizonyult, így 0.8 mm-es rést hagyva és a csavart párszor áthajtva a meneten már megfelelően egymásba szeretett apu és anyu:
Summa summarum, az OpenSCAD nem egy designerek álma eszköz, ám ha egyszer összerakunk benne valamit, azon gyerekjáték módosítani.]]>
Excel – this is how we roll
tiddle.co.uk:
I literally just fixed a bug that has plagued me for the last few days. I originally wrote the code using the terrible reference literature for Excel 03. The issue is actually that the index it tells you to use doesn’t exist! The text below is taken from the Borders object page, specifically relating to FormatConditions (the conditional formatting object) and is wrong:
Use Borders(index), where index identifies the border, to return a single Border object. The following example sets the color of the bottom border of cells A1:G1 to red.
Worksheets("Sheet1").Range("A1:G1"). _
Borders(xlEdgeBottom).Color = RGB(255, 0, 0)
Index can be one of the following XlBordersIndex constants: xlDiagonalDown, xlDiagonalUp, xlEdgeBottom, xlEdgeLeft, xlEdgeRight, or xlEdgeTop, xlInsideHorizontal, or xlInsideVertical.
I was trying to apply formatting to the bottom border, so obviously I used xlEdgeBottom, and hence continually received the aforementioned runtime error. After what seems like hours of [non-sequential] Googling, I found a post where someone was doing something similar enough to me, successfully, to learn from it. Almost immediately I saw the difference; their chosen indexes did not contain “Edge”. I removed them from my code, and voila it works perfectly, all errors were gone and the sheet formats beautifully.
Ok, so I probably should have found a better reference to the object library, but the Microsoft online one is no better or easier to use than the offline one, which coincidently loads faster! On a similar note, if you’ve ever looked up an error code to find a bug solution page by Microsoft, you’ll know the wide range of issues and limitations of their software that intersect in very weird ways. Surprising the main application runs really! I hope someone finds this and it helps them, as otherwise I just wasted time documenting this !
Mutatom, hogy néznek ki az emlegetett konstansok:
?xlEdgeLeft, xlLeft 7 -4131 ?xlEdgeTop, xlTop 8 -4160 ?xlEdgeRight, xlRight 10 -4152 ?xlEdgeBottom, xlBottom 9 -4107
Sub setBorder(ByVal myRange As Range, ByVal borderArray As Variant) ' call setBorder(Selection, array(array(xlEdgeTop, xlthick, xlContinuous))) Dim i As Long, j As Long For i = LBound(borderArray) To UBound(borderArray) With myRange.Borders(borderArray(i)(0)) .LineStyle = xlLineStyleNone .LineStyle = borderArray(i)(2) .Weight = borderArray(i)(1) End With Next i End Sub
3D nyomtatás – a sebesség oltára
A tőlem jóval tapasztaltabbak (és maga a Cura is) azt mondják erre, hogy nagyobb sebességre a precízen beállított printerek képesek. Én pedig azt mondom, hogy amíg a léptetőmotorok megnyúlni képes bordás gumiszíjakkal hajtják meg a fejet pozícionáló két acéltengelyt és nem direkt módon csatlakoznak hozzájuk, addig hiába a nagyobb sebesség, az ilyen hibák kiszámíthatatlanul jönnek majd elő. Jó példa erre a minták hátulján található felső hiba:
Direkt nem croppoltam le a képből a minták feljebb levő részét, hogy látható maradjon: az egyébként 150 mm/sec sebességgel dolgozó fej az utolsó hibát követően szépen egyenletesen dolgozott tovább, mintha valami varázsütésre “meggyógyult” volna a pozícionálás. Nos, szerintem ez azt igazolja, hogy a szíjhajtás miatt téveszt néha az eszköz.
]]>
Mozdul a film rovat
letterboxd, ami minden ilyen jellegű vágyamat teljesíti – and beyond! A mindig spoileres filmkritika rovat ezzel itt bezár és átköltözik oda.]]>
3D nyomtatás – a sötét oldal
Érdemes megfigyelni, hogy az extruder fej milyen mértékben képes összemocskolni magát.
Ez a probléma alattomos és kiszámíthatatlan. Ugyanezek a testek ugyanebből az anyagból ugyanolyan alkoholos tárgyasztal tisztítás után csont nélkül kinyomtatódtak, míg most szarrá ment mind.
Ha az Ultimakerhez lenne gyárilag hot bed, akkor ez a probléma nem létezne. Hot bedet akarok!]]>
3D nyomtatás – Tea Cup SlingsHOT
teafiltert kicsavaró bögrét:
Nagyon megtetszett, webshop link híján gondoltam gyártok én egy ilyet:
A modell rendben elkészült, ám ez jelen formájában egy FFF printerrel viszonylag nehezen nyomtatható. Nézzük meg, mi a baja!
Legegyszerűbb, ha fogjuk az STL file-t és berántjuk meshmixerbe, aki rögtön rak is rá egy olyan shadert, ami bepirosítja azokat a részeket, amelyek túllógnak és ezért csak úgy a levegőbe nem nyomtathatóak:
Ezzel még tudunk ügyeskedni egy kicsit: a talpat egyszerűen szintbe állíthatjuk, illetve a fül alja is leérhet a pohár aljáig, ez nem gond. A fül görbületét is lehet kevésbé meredekre venni: mondjuk egyszerűen kifúrjuk egy hengerrel és nagy eséllyel az már nyomtathatóvá teszi azt a részt.
A nagyobb probléma ezzel a résszel van:
Jól látszik, hogy a filter járatának teteje sajna egy hosszabb vízszintes felület. Ezt csak úgy tudjuk nyomtatni, ha supportot kérünk az egész bögrére.
Sajnos tapasztalatból azt mondom, hogy az ilyen szűk területekbe elég rendesen be tud állni a support, így nem biztos, hogy sok értelme van szutykolni vele. Azért persze a foxi sem ereszti olyan könnyen a lábtörlőt…
Leszeletelés után ez a bögre supporttal nyomtatva 7 és fél óráig készülne, 1360 HUF anyagot felzabálva. Mivel ez próbának már ijesztő mennyiségű idő/alapanyag kombináció, ezért ilyenkor érdemes kicsit trükközni még. Fogjuk a legproblémásabbnak ítélt részt, húzzunk rá egy bounding boxot (=egy téglatestet, ami magába foglalja a vizsgálandó objektumdarabot), aztán a boxból és a modellünkből készítsünk egy közös metszetet:
Az így kapott darab már csak 30 percet és 110 HUF pénzt zabál el – mindenképp megéri egy ekkora falattal kísérletezni ahelyett, hogy a teljes modell nyomtatása után görbüljön le a szánk. Nyomtassunk is egy support nélküli és egy supportos változatot és nézzük meg, mi lett belőlük.
Íme a support nélkül készült tesztdarab:
Jól látszik, hogy az átfeszített felületek ugyan elkészültek, de ronda kis göndör műanyagszálak lógnak be róluk – ez így useless.
Nézzük, mire megyünk a supporttal! Ilyen lesz a támasztékkal nyomtatott próbatest:
Elég masszív support képződött – lássuk, mennyire lehet kiszedni:
Szó mi szó, ez bűn ronda. Nem szívesen facsarnám ebben ki a teafiltert, még akkor sem, ha a mostanában gyártott piramis alakú teafilterek zacsija is ugyanabból a PLA-ból készül, mint amiből mi a bögrénket szándékoztuk nyomtatni.
Persze még ilyenkor sem kell elkeseredni, ha nagyon akarod a modellt IRL taperolni. Fel kell tölteni az objektumot valamelyik nagy 3D printre szakosodott oldalra, akik bérnyomtatást is vállalnak, aztán ők elkészítik neked professzionális 3D printerekkel, jó pénzért.
Az egyik legnagyobb ilyen gyűjtősite a Shapeways – zárjuk is az ő teaserükkel a postot:
]]>
3D nyomtatás – KitchenAid kolbásztöltő
Az ojjektumok szedhetőek innen.]]>