Semestrální práce ZS a LS 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):

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 pravidelného ("rovnostranného") 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:

Dalším úkolem je modul generující náhodné krystaly. Nedostává na vstupu tedy konkrétní data, ale jen jejich meze (uzavřené intervaly) 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 prorotx
,roty
irotz
)
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í), pozor, toto se v případě nesplnění bodově postihuje.
Pro výchozí hodnoty může vypadat krystal různě (je náhodný), například takto:

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:
bilekon1 001 002 003 burkoric 004 005 006 busfyadr 007 008 009 cernyda7 010 011 012 chovamar 013 014 015 drhovkla 016 017 018 fedortom 019 020 021 grankdan 022 023 024 hongsewo 025 026 027 hsiehhs2 028 029 030 kabelja5 031 032 033 karpeale 034 035 036 karpoale 037 038 039 kimkyun2 040 041 042 klempjan 043 044 045 klingdav 046 047 048 kolesmat 049 050 051 kopecmi8 052 053 054 kostema3 055 056 057 krakovoj 058 059 060 kubeljit 061 062 063 leahulum 064 065 066 moravm15 067 068 069 motykvac 070 071 072 moudrmi1 073 074 075 niklmate 076 077 078 ocenamic 079 080 081 parkjaej 082 083 084 roustoma 085 086 087 rymeskar 088 089 090 sandgjon 091 092 093 slademi2 094 095 096 smidfil3 097 098 099 sochapet 100 101 102 solankar 103 104 105 strammar 106 107 108 sultatog 109 110 111 svecvac1 112 113 114 svobot19 115 116 117 veselj43 118 119 120 vigriali 121 122 123 zorinand 124 125 126 zoudujir 127 128 129
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 (profily navolte jako na cviku, tzn. ne -default-). Profily pro případné jiné programy pro vás nemáme, ale smíte si vytvořit svoje. 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
arandom_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 KTERY JSTE POUZILI
- Případné další potřebné soubory
Termín odevzdání je 19.6.2016 včetně (případně začátek vašeho zápočtového termínu, pokud se tento koná dřív). 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.
Zkouškové končí 1.7.2016, nemáme nic proti odevzdání a zápočtovým termínům i po tomto datu, ale je třeba se na tom explicitně domluvit a přijmout riziko z toho plynoucí.
Hodnocení dle následující tabulky:
Moduly pro OpenSCAD | 10 | |
---|---|---|
Modul crystal funguje podle zadání | 3 | povinný v rámci části |
Modul random_crystal funguje podle zadání | 4 | povinný v rámci části |
Zdrojový kód je vhodně členěn a komentován | 3 | |
Příprava na tisk | 10 | |
Vhodně připravená tisková STLka | 5 | povinný v rámci části |
Mesh ve všech tiskových STL je v pořádku | 5 | |
Slicing | 10 | |
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 | |
Tisk | 20 | |
Jedná se o výtisk modelu dle zadání, výtisk je opracovaný (např. bez podpor, slepený atp.) | 5 | povinný v rámci části |
Výtisk neobsahuje vady zjevně způsobené nevhodnou přípravou modelu | 7.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.