open-scad

(upraveno z původní verze série článků pro hamik.cz)

Technologie 3D tisku – modelování a využití

Určitě znáte LEGO (plastové kostičky), a také Merkur (kovové dílky). Minulý rok nás zaujala také litevská stavebnice Totem (https://totemmaker.net), která originálním způsobem kombinuje skvělé vlastnosti obou výše zmíněných stavebnic. Černé plastové dílky se propojují různými typy kovových spojek a jednoduchým způsobem se dají vytvářet i složitější mechanické sestavy.

My jsme pro některé naše projekty používali i klasické elektroinstalační krabičky 82x82mm (z toho vznikly i moduly Hamík Cube 82). Pozorujeme však, že řada kroužků, škol, ale i domácností už má k dispozici i 3D tiskárnu. Nové možnosti „vyrábění“ dílků z už hotových podkladů, nebo přímé vytváření vlastních, tak může využívat stále větší počet bastlířů.

Vytváření 3D podkladů k tisku

Pokud potřebujete 3D model k následnému tisku, máte několik možností.
■ Existují specializované portály, kde si můžete stáhnout soubor – zdrojový model, častěji jeho export „stl“, nebo přímo tisková data. Například na thingiverse.com, kde publikuje i octopusLAB, jsou tisíce podkladů pro tisk.
■ Můžete si nechat 3D model zhotovit u známého nebo využít služeb jednotlivců či firem. Jenom na Facebooku je několik skupin, které to zprostředkují a nebo vám alespoň poradí, pokud si nebudete vědět rady.
■ A do třetice – můžete si 3D model vytvořit sami.

Na tvorbu 3D modelů je opět několik dostupných možností, od profesionálních CAD programů až po jednoduché cloudové aplikace – například onshape.com.
Před pár lety jsem zkusil program, který se od klasických kreslicích nástrojů lišil. 3D objekty se v něm totiž „programují“, a i když to vypadá složitě, dá se v něm vytvářet i náročnější projekt. Tento program také disponuje řadou knihoven a rozšiřujících modulů. Na úplně jednoduché modely si proto klidně také zkuste openscad – skvělý open-source nástroj. A jelikož se jedná o „programové textové soubory“, spoustu zajímavých podkladů naleznete i na githubu.

Open SCAD – modelování programováním

Modelování jednoduchých tvarů se dá často zjednodušit na skládání základních objektů (kvádr, válec, …). Toto „skládání“ se provádí pomocí sčítání nebo odčítání (jsou to „množinové“ operace nad 3D objekty – sjednocení, průnik, a pod.). První, co jsme potřebovali, byla „distance“ (vysoká podložka), pro šroubek M3. Můžeme jí „naprogramovat“ následujícím způsobem:

Odečteme (difference) jeden válec (cylinder) od druhého. Příkaz translate pro posun by tu ani nemusel být (je totiž 0,0,0). Válec je určen poloměrem podstavy r nebo průměrem d (d=2*r) a svojí výškou h. Defaultní výšku máme nastavenu na 5 (mm), ale výška se dá parametrem h měnit. Proto se tomu někdy říká „parametrické modelování„.
Pro druhou verzi spojky, vzniklé spojením dvou distancí, toho využijeme. Jednu distanci jsme ponechali vysokou 5 mm (h1) a druhou (h2) chceme mít 10 mm, proto model zavoláme: spojka2(h2=10); (h1 zůstane 5 mm).









V modulu distance jsme také použili jiný formát pro transpozici objektu obj, translate([x,y,z]) {obj} jsme nahradili sekvencí xmove(x) ymove(y) zmove(z) obj, která je v některých případech přehlednější a jednodušší na zápis, především v případě potřeby rotace – tam postačí použít zrot(90) pro rotaci kolem osy z o 90°. Využili jsme pro to jednu z knihoven na githubu: https://github.com/revarbat/BOSL, kterou je nutno v záhlaví inicializovat:

include <../BOSL/constants.scad>
use <../BOSL/transforms.scad>
//include <../octopuSCAD/boards.scad>
$fn = 60; //details

Testujeme použitelnost i jiných dílků, hlavně jak se s nimi manipuluje, zkoušíme jejich konstrukční pevnost a dlouhodobě budeme vyhodnocovat i životnost. Na obrázku vidíte i kombinaci s bílou 82×82 krabičkou a další moduly (akumulátorový konektor, tlačítka, držáky displeje a pod.).




Open SCAD – rozšíření a další možnosti

Seznámili jsme se s funkcí difference() – „odečtení“ a nyní zmíníme další: union()sjednocení, sdružení, spojení. K čemu se nám to hodí? Pokud chceme například vytvořit „složitější“ model krabičky s různými otvory a drážkami, často nám postačí „odečíst“ (difference) od základního tvaru (cube) sdružené (union) objekty (na obrázku červeně).

Asi všichni znáte klasickou stavebnici Merkur. Kovové dílky se spojují pomocí šroubků. Jednotlivé prvky mají totiž v řadách nebo větších skupinách otvory, které jsou přesně 1 cm od sebe.
Před nedávnem oslavila tato firma výročí 100 let od založení a my jsme se byli podívat i v továrně, kde se stavebnice vyrábí. (https://www.octopuslab.cz/merkur100let/)
Víte jak vznikají jednotlivé dírky? Z pásku plechu, do kterého se raznicí vyrazí „všechny“ otvory najednou (u větších dílků po skupinách). Takže to vlastně odpovídá konstrukci Open SCAD:
difference()
{
plech();
raznice();
}

Raznici vytváříme pomocí spojení (union) všech tvarů, které se od hlavního objektu odečítají.

Program Open SCAD má i cyklus
for (index=[od:do]) {…},
což nám usnadní vytváření opakujících se objektů (například řadu kruhových dírek posouváním jednoho válcového otvoru). Parametricky pak můžeme vytvářet dílek o libovolné délce, která je dána počtem dírek.

Další možností je využití větvení „programu“ pomocí podmínky
if (podmínka) {…} else {…}.
Pokud vytváříme 3D podklady pro různé varianty dílků, ušetří nám to mnoho řádků kódu. Na místo několika modulů dílek3_s_drážkou(), dílek5_bez_drážky()… máme jediný parametrický modul dílku (strip), který voláme s příslušnými parametry:
strip(n, socket), kde n je počet dírek a socket (true/false) je možnost dílku s drážkami nebo bez drážek.
strip(n=5,socket=true) ve výchozím nastavení je s drážkou, proto postačí strip(n=5).
Pro stejný dílek se třemi dírkami, ale bez drážek použijeme příkaz strip(n=3,socket=false).
V definici modulu máme totiž podmínku:
if (socket==true){„udělej drážky“}.

Všechny (a i některé další) ukázky hotových zdrojových kódů jsou zde:
https://github.com/octopusengine/hamik_cz/blob/master/openscad/octopuslab_lib1.scad


K oblíbené elektroinstalační krabičce 82×82 si vytváříme sadu menších modulů. Dodržíme-li metrické otvory (1 cm od sebe), můžeme je kombinovat i s dílky stavebnice Merkur nebo Totem. Moduly se dají spojovat pomocí malých „H“ spojek nebo kombinovat s jinými držáky či příchytkami.

Povšimněte možnosti spojení modulů do kompaktní krabičky. Jsou tak využitelné pro tlačítko, potenciometr, můžete do nich vmontovat i konektor nebo jinou součástku. Úpravu v Open SCADu už také zvládnete, takže si klidně vytvořte vlastní sestavu. Jednoduché a rychlé připojení bez šroubu si rychle oblíbíte. Tyto moduly jsou pro slaboproudé využití i dostatečně izolovány a částečně chráněny. Tvoří elegantní stavebnici, pro rychlé oživení a testování i složitějších elektronických zařízení.


3D anketa:

a) 3D tiskárnu mám a tisknu na ní
b) mám přístup k 3D tiskárně a využívám ho
c) mám přístup k 3D tiskárně, ale nevyužívám ho
d) 3D tisk je pro mne zatím nedostupná technologie
e) 3D tisk mě nezajímá

Odpovězte prosím na mail: anketa@octopuslab.cz