Jdi na navigaci předmětu

Semestrální práce ZS 2015/2016

Krystaly

Tématem semestrální práce jsou krystaly. Vaším úkolem je v programu OpenSCAD napsat modul, který umí generovat modely krystalů na základě vstupních dat (a modul, který generuje náhodné krystaly), vhodně připravit jeden z vám přidělených krystalů k tisku, vytisknout ho a provést případné dodatečné úpravy.

Generátor krystalů

Napište OpenSCAD modul crystal dodržující předepsané rozhraní, který na základě vstupních dat zobrazí/vytvoří krystal.

module crystal(thorns=[]) { ... }

Vektor (pole) thorns obsahuje definice jednotlivých výrůstků (hrotů) z krystalu. Jeden hrot je definován rotací, délkou, poloměrem a počtem segmentů.

thorns_abstract = [[[rotx, roty, rotz], height, circumr, seg], ...];
thorns_example = [[[0,0,0], 30, 3, 4], [[90,0,0], 25.5, 2.65, 7]];

Každý hrot má podobný tvar jako na tomto obrázku (obrázek jde zvětšit):

rect10491

Střed spodní strany leží na počátku souřadném. Před rotací hrot ukazuje směrem kolmo vzhůru (po kladné ose Z). Celková délka trnu je height, zlom je vzdálen třetí odmocninu height od vrchu. Trn má profil n-úhelníku, kde n je seg. Kružnice opsaná tomuto n-úhelníku má v místě zlomu poloměr circumr, na spodku hrotu je pak poloměr třetinový. Hrot je následně rotován vektorem [rotx, roty, rotz].

Krystal je pouze směsicí těchto hrotů.

Pro uvedený dvouhrotový příklad vypadá výsledek asi takto:

2example

Dalším úkolem je modul generující náhodné krystaly. Nedostává na vstupu tedy konkrétní data, ale jen jejich meze a počet hrotů.

module random_crystal(nthorns=350, rot=[-90,100], height=[20,40], circumr=[2,4.5], seg=[3,10]) { ... }
  • nthorns je počet hrotů
  • další argumenty jsou dvouprvkové vektory určující minimální a maximální hodnoty pro stejnojmenné vlastnosti hrotů (rot jsou meze pro rotx, roty i rotz)

Pro generování náhodných čísel můžete použít funkci rands(). Berte v potaz, že seg je (na rozdíl od ostatních náhodných hodnot) celé číslo. Jednotlivá celá čísla včetně krajních hodnot by měla mít stejnou šanci (uniformní rozdělení).

Pro výchozí hodnoty může vypadat krystal různě (je náhodný), například takto:

350example

Vaše krystaly

Každému z vás jsou přiděleny tři náhodně vygenerované krystaly. Máte je k dispozici jak ve formě dat pro modul crystal(), tak ve formě STL souboru. Je možné, že se vaše data budou v OpenSCADu pomocí F6 renderovat příliš dlouho. To je v pořádku, proto máte k dispozici i model ve formátu STL. Pro otestování funkčnosti modulu můžete použít podmnožinu vašich dat - ověřte, že se modul chová dle zadání.

Pokud přecejen chcete testovat váš modul nad vám zadanými daty, testujte ho pouze v režimu Compile (F5) a v případě problémů v nastavení OpenSCADu řádově navyšte hodnotu Turn of rendering at.

Vaše krystaly najdete na adresách:

Kde místo XXX dosadíte číslice z tohoto seznamu:

adameste 001 002 003
agapoele 004 005 006
arkhigle 007 008 009
balanole 010 011 012
beranpa8 013 014 015
borskjir 016 017 018
bynamich 019 020 021
cernyra3 022 023 024
chalufil 025 026 027
chaluluk 028 029 030
dotuantu 031 032 033
dolezjo3 034 035 036
dorazjan 037 038 039
drapafi1 040 041 042
dusekva4 043 044 045
dvoram58 046 047 048
dvorakl2 049 050 051
fabiape1 052 053 054
fiserad2 055 056 057
hanusmi3 058 059 060
horacj10 061 062 063
kadlele1 064 065 066
kalinmi2 067 068 069
kasnezde 070 071 072
keruloli 073 074 075
klempmil 076 077 078
kopecev1 079 080 081
labskdav 082 083 084
lagodali 085 086 087
lassama1 088 089 090
matejm14 091 092 093
melicma1 094 095 096
mikessta 097 098 099
milicpav 100 101 102
mosnadav 103 104 105
myslivo1 106 107 108
nagyluka 109 110 111
nesrotom 112 113 114
nguyelon 115 116 117
novakkry 118 119 120
novotvi4 121 122 123
ostroiul 124 125 126
palasale 127 128 129
panchjan 130 131 132
pazdebor 133 134 135
pekarvit 136 137 138
pichldom 139 140 141
stourane 142 143 144
pribyeka 145 146 147
rauchlad 148 149 150
schmipe5 151 152 153
sebelji1 154 155 156
skalamat 157 158 159
spakmaro 160 161 162
stembmi1 163 164 165
sterbsta 166 167 168
sturcmar 169 170 171
suvaanto 172 173 174
sykorto7 175 176 177
thieljan 178 179 180
trebidav 181 182 183
trefifil 184 185 186
vanclma1 187 188 189
vitovjos 190 191 192
vladyond 193 194 195
werneric 196 197 198
wijasjan 199 200 201
wijsmluk 202 203 204
zajicpa2 205 206 207
zemeklad 208 209 210
zhukomik 211 212 213

Předzpracování

Vyberte si libovolný (podle vás nejednodušší) z vašich tří krystalů a připravte ho pro tisk. Můžete s ním dělat prakticky cokoliv (opravovat, otáčet, krájet, přidávat podpůrné struktury), ale je třeba zachovat při tisku rozměry a tvar krystalu. Výstupem je jeden nebo více STL souborů připravených na slicing a velmi stručný popis toho, co jste udělali a proč (ne nutně písemně, ale při odevzdávání je třeba postup vysvětlit a to i několik týdnů po vykonání vašich změn).

Slicing

Naslicujte libovolným programem vámi připravená tisková STLka s použitím vhodných nastavení. Pro Slic3r vyjděte z slic3r-config-bundle.ini.zip (tryska 3dráty, filament 1.75 ABS), pro KISSlicer jsou tady. Výstupem je použitý slicovací profil vyexportovaný z programu a jeden nebo více GCODE souborů. Jednotlivé části můžete tisknout najednou (pokud se vejdou na tiskovou plochu a pokud vám to připadá vhodné) nebo postupně, případě kombinaci obojího.

Tisk a postprocessing

V zápočtových akcích vypsaných v KOSu, probíhajících ve zkouškovém období, budete v laboratoři z ABS tisknout krystaly z vámi připravených GCODE souborů. Po dotisknutí je třeba výtisk náležitě opracovat - oddělat podpory, slepit atp. Výsledný krystal by měl vypadat co nejpodobněji zadanému modelu. Na jeden termín je celkem maximálně 5 hodin (tisk + postproccessing).

V případě absolutního selhání při tisku je možné tisk opakovat s novým GCODEm, ale pouze jednou. V případě technického problému na naší straně se samozřejmě o promarněný pokus nejedná.

Odevzdání, hodnocení a termíny

Do svého namespace na Eduxu nahrajte zip soubor libovolného vhodného jména, na který z vašeho namespacu povede odkaz. Veškeré slovní popisy uveďte přímo do svého namespace na Eduxu.

V souboru odevzdávejte:

  • scad soubor s moduley crystal a random_crystal
  • scad soubor volající modul crystal s vašimi vybranými daty (který jste si stáhli z Eduxu)
  • STL soubor s vaším vybraným krystalem z Eduxu
  • Tiskové STL soubory
  • Tiskové GCODE soubory
  • Profil pro slicovací program
  • Případné další potřebné soubory

Termín odevzdání je konec výukové části semestru, tedy 10.1.2016 včetně. Možnost pozdního odevzdání: Za každý další započatý týden (byť o vteřinu) je z celkového hodnocení strženo 10 bodů. Pokud je celkový součet menší než 0, je hodnocení za semestrální práci 0. V době započetí termínu klasifikovaného zápočtu (tisk v laboratoři), již musí být odevzdáno na Eduxu.

Hodnocení dle následující tabulky:

Moduly pro OpenSCAD10
Modul crystal funguje podle zadání3povinný v rámci části
Modul random_crystal funguje podle zadání4povinný v rámci části
Zdrojový kód je vhodně členěn a komentován3
Příprava na tisk10
Vhodně připravená tisková STLka5povinný v rámci části
Mesh ve všech tiskových STL je v pořádku5
Slicing10
Podpory (nejsou potřeba (5 b.), vhodné užití* (2.5 b.), zbytečné užití (0 b.))5
Vhodné nastavení parametrů tisku (perimetry, výplň, výška vrstvy)5
Tisk20
Jedná se o výtisk modelu dle zadání, výtisk je opracovaný (např. bez podpor, slepený atp.)5povinný v rámci části
Výtisk neobsahuje vady zjevně způsobené nevhodnou přípravou modelu7.5
Výtisk neobsahuje vady zjevně způsobené nevhodnou přípravou tiskárny (příprava tiskové plochy, nevhodné teploty)7.5
  • Pouze za podpory vygenerované při slicování se strhávají body. Protože jsme v části slicing.
Důležité:

Pro ovládání tiskárny při odevzdávání potřebujete vlastní počítač se schopností připojit se na wifi nebo kabelem do lokální sítě. Také potřebuje znát (umět dohledat) svou MAC adresu.

Hodnocení je rozděleno na 4 dílčí části. Povinný v rámci části znamená, že bez splnění tohoto úkolu student za danou část nedostane žádné body. V případě opravného tisku se již neopravují hodnoty bodů v ostatních dílčích částech. Pokud tedy například nezvládnete slicing, dostanete z něj nula bodů a (celkem logicky) fatálně selže i tisk, můžete v náhradním termínu dostat body za tisk, za slicing už ale žádné body nedostanete.