Překlady této stránky:

Semestrální práce LS 2016/2017

Alternativní zadání práce: Po dohodě s Mirem Hrončokem můžete místo této semestrální práce řešit issues projektů ADMesh. Kolik jich musíte vyřešit a jak budete bodově ohodnoceni, závisí na proběhlé dohodě. V případě zájmu se prosím ozvěte co nejdříve, je zde jen omezené množství práce a tedy je alternativa k semestrálce možná jen pro malý počet studentů.

Trubky

Úkolem je vytvořit křižovatku pro tři trubky na vodu. Každá trubka má určitý profil a průměr. Křižovatka sama o sobě nesmí zpomalit průtok (teoretickou) vody z dvou libovolných trubek do třetí (či z jedné do dvou).

Generátor křižovatek

Napište OpenSCAD modul splitter dodržující předepsané rozhraní, který na základě vstupních dat vytvoří křižovatku tří trubek.

module splitter(pipes=[...], wall_thick=2.5) { ... }

Vektor pipes obsahuje 3 položky popisující 3 trubky vystupující z křižovatky.

Každá trubka obsahuje následující údaje v uvedeném pořadí (poslední závorka je interval validních rozsahů (nevalidní hodnoty nemusíte ošetřovat)):

  1. profil trubky (string, viz dále)
  2. délka trubky od středu spojení (20, 50)
  3. vnitřní průměr trubky (dle zvoleného profilu) (10, 40)
  4. úhel, jenž svírá trubka s vodorovnou podložkou (-30°,30°)

Parametr wall_thick udává tloušťku stěny v celém objektu. Pokud tedy parametr bude např. 2.5, tloušťka musí být v celém objektu 2.5 (drobné deviace v oblouku jsou přípustné). Průměry trubek jsou vnitřní, šířka stěny tedy zvětšuje vnější rozměr modelu a nesnižuje průchodnost trubek.

(Na výchozích hodnotách parametrů modulu nezáleží.)

Profily trubek

Profily

Váš modul musí podporovat všechny zde uvedené profily trubek. Na otočení profilu záleží! Profily jsou znázorněny tak, že spodní strana leží dole (v rámci následnicích obrázků), jsou vždy kolmo na osu trubky a znázorňují pohled zevnitř ven. Druh profilu je určen řetězcem, například tedy Square. (Rozhraní nebude automaticky testováno, zvolte velikost písmen dne uvážení.)

Proměnná d na obrázku znázorňuje, co pro daný profil znamená výraz průměr v rozhraní modulu.

Není možné použít externí knihovny (ani knihovnu MCAD). Na rozdíl od úkolu je však možné manipulovat s $fn (což by se mohlo hodit, mrk, mrk).

Vzájemná pozice

Při pohledu shora svírají trubky se sousedícími trubkami úhel 120°.

Pohled z vrchu

Proměnné na obrázky l a d jsou délky a průměry trubek. Indexy a, b a c označují jednotlivé trubky. Při pohledu shora jsou trubky řazeny kladným směrem (proti směru hodinových ručiček). Vhledem k absenci automatického testování je jedno, kterým směrem bude ukazovat první trubka.

Při pohledu z boku svírá každá z trubek s podložkou úhel z intervalu (-30°,30°), zde na obrázku jsou dvě další trubky rovnoběžné s podložkou pro lepší znázornění, ale v praxi to tak vždy není. Středové osy trubek se protínají ve středu celé křižovatky. Kladné číslo zde znamená směr vzhůru, záporné dolů.

Pohled z boku

Vnější zakřivení trubek může být libovolné, zvolte jej ale tak, aby dávalo smyl a nesnižovalo průchodnost trubkou. Myslete na to, že váš model musí být parametrický.

Zadání k tisku

Každý z vás obdrží 2 zadání, které má vytisknout. Z nich si vybere to, které se mu víc líbí. Tloušťku stěny však volíte vhodně sami tak, aby se podařilo model vytisknout a přitom se to stihlo.

Pozor, pokud bude vzdálenost od středu příliš krátká a konce trubek by se překrývali, smíte (musíte) je patřičně prodloužit, nikoli však více, než je potřeba. Tuto skutečnost řádně okomentujete. Není nutné tento stav ošetřovat v parametrickém modelu!

Vaše řešení v OpenSCADu musí podporovat všechny profily trubek, ne jen ty, které máte zadány.

Abisogomyan Sergei: [['Pentagon', 32, 32, 30], ['Star', 46, 22, 3], ['Circle', 31, 28, -15]]
Abisogomyan Sergei: [['RippedSquare', 24, 25, -11], ['Square', 41, 11, -10], ['Star', 25, 40, 15]]
Bigarová Jana: [['Star', 33, 12, 12], ['Pentagon', 29, 39, 3], ['Square', 37, 24, -23]]
Bigarová Jana: [['RippedSquare', 50, 10, 17], ['Square', 20, 21, 20], ['Star', 46, 10, 25]]
Bubeníček Tomáš: [['Star', 27, 33, -19], ['Pentagon', 38, 10, 7], ['Circle', 37, 34, -11]]
Bubeníček Tomáš: [['Square', 25, 39, 28], ['RippedSquare', 27, 29, 21], ['Pentagon', 48, 18, 16]]
Čapek Tomáš: [['Star', 30, 23, -6], ['Pentagon', 22, 15, 0], ['Circle', 35, 31, 17]]
Čapek Tomáš: [['Square', 49, 25, -25], ['Circle', 37, 11, -7], ['Star', 38, 30, -5]]
Do Duc Huy: [['Star', 22, 37, -10], ['Pentagon', 31, 18, 20], ['Circle', 36, 17, 25]]
Do Duc Huy: [['RippedSquare', 47, 11, 0], ['Square', 46, 10, -2], ['Star', 25, 15, 22]]
Havrda Tomáš: [['Pentagon', 22, 29, 4], ['Star', 48, 16, 23], ['RippedSquare', 28, 35, 27]]
Havrda Tomáš: [['Circle', 33, 12, 4], ['RippedSquare', 47, 29, 26], ['Pentagon', 48, 14, -30]]
Hejda Jakub: [['Pentagon', 40, 32, 1], ['Star', 48, 26, 26], ['Square', 43, 11, -12]]
Hejda Jakub: [['Square', 27, 30, 6], ['Circle', 25, 28, 24], ['Star', 34, 10, 11]]
Hendrychová Vanda: [['Pentagon', 43, 24, 24], ['Star', 20, 12, 4], ['Square', 24, 15, -26]]
Hendrychová Vanda: [['Circle', 44, 14, -11], ['RippedSquare', 46, 36, 27], ['Star', 36, 15, 10]]
Hollmann Otto: [['Pentagon', 50, 33, -15], ['Star', 21, 28, -12], ['Circle', 42, 32, 27]]
Hollmann Otto: [['RippedSquare', 37, 39, 24], ['Circle', 44, 29, -9], ['Star', 25, 31, 15]]
Homolka Jakub: [['Pentagon', 24, 37, -12], ['Star', 40, 26, 28], ['RippedSquare', 34, 10, 20]]
Homolka Jakub: [['Circle', 48, 36, 8], ['Square', 45, 34, -26], ['Star', 29, 34, -4]]
Kello Tomáš: [['Pentagon', 47, 27, 8], ['Star', 22, 37, 26], ['Circle', 36, 36, -1]]
Kello Tomáš: [['Square', 50, 20, -13], ['Circle', 46, 17, 23], ['Pentagon', 23, 17, 8]]
Laskov Boris: [['Pentagon', 24, 33, -30], ['Star', 36, 24, 27], ['RippedSquare', 21, 31, 22]]
Laskov Boris: [['Circle', 49, 20, 15], ['Square', 38, 20, -26], ['Pentagon', 47, 33, 17]]
Lišhák Filip: [['Pentagon', 40, 36, -11], ['Star', 44, 40, -19], ['Circle', 45, 28, -6]]
Lišhák Filip: [['Square', 50, 27, -23], ['RippedSquare', 46, 28, -2], ['Pentagon', 50, 36, 18]]
Nechiporenko Valeria: [['Pentagon', 44, 22, -16], ['Star', 41, 15, 10], ['Circle', 30, 35, 10]]
Nechiporenko Valeria: [['RippedSquare', 49, 20, 15], ['Square', 24, 40, -4], ['Pentagon', 37, 26, -27]]
Polačok Juraj: [['Star', 44, 14, 18], ['Pentagon', 35, 12, 24], ['Square', 50, 38, 19]]
Polačok Juraj: [['RippedSquare', 20, 19, 23], ['Square', 47, 10, -5], ['Pentagon', 41, 24, 29]]
Samek Jakub: [['Star', 20, 22, 27], ['Pentagon', 24, 11, -18], ['RippedSquare', 38, 31, -19]]
Samek Jakub: [['Circle', 32, 21, -6], ['Square', 24, 17, 23], ['Star', 29, 25, -2]]
Sauer Petr: [['Pentagon', 33, 24, 24], ['Star', 30, 12, -27], ['RippedSquare', 42, 20, 25]]
Sauer Petr: [['Square', 42, 35, 25], ['Circle', 45, 21, 27], ['Star', 21, 11, -10]]
Šedivý Richard: [['Star', 36, 11, -4], ['Pentagon', 47, 35, 8], ['Circle', 47, 35, 25]]
Šedivý Richard: [['Square', 21, 31, -19], ['RippedSquare', 38, 37, 17], ['Pentagon', 23, 11, -29]]
Selvek Róbert: [['Pentagon', 47, 20, -18], ['Star', 46, 24, -26], ['RippedSquare', 32, 29, 29]]
Selvek Róbert: [['RippedSquare', 35, 26, 24], ['Circle', 35, 38, -25], ['Pentagon', 37, 18, 23]]
Shatrovskii Aleksandr: [['Pentagon', 21, 34, -28], ['Star', 42, 11, -13], ['Square', 46, 31, 17]]
Shatrovskii Aleksandr: [['Circle', 30, 38, 15], ['Square', 29, 14, -23], ['Pentagon', 30, 37, 6]]
Schmidt Daniel: [['Pentagon', 21, 29, 18], ['Star', 49, 38, -30], ['RippedSquare', 48, 39, 13]]
Schmidt Daniel: [['Square', 33, 34, -30], ['Circle', 39, 22, 6], ['Star', 33, 15, 15]]
Srogončíková Jana: [['Pentagon', 38, 36, 11], ['Star', 28, 36, 28], ['Square', 22, 24, 5]]
Srogončíková Jana: [['Circle', 36, 15, -25], ['Square', 41, 31, 19], ['Star', 21, 11, -18]]
Topič Jakub: [['Star', 24, 34, -20], ['Pentagon', 32, 24, -24], ['Circle', 36, 39, -19]]
Topič Jakub: [['Square', 38, 26, 25], ['Circle', 28, 40, -26], ['Star', 30, 27, -13]]
Zotkina Olga: [['Pentagon', 23, 37, 22], ['Star', 36, 15, 20], ['Square', 34, 31, 20]]
Zotkina Olga: [['Circle', 27, 28, 11], ['Square', 23, 22, -13], ['Star', 32, 16, -18]]
Bulíř Hynek: [['Star', 46, 10, -10], ['Pentagon', 38, 32, 8], ['Circle', 41, 40, 4]]
Bulíř Hynek: [['Circle', 47, 27, -15], ['Square', 34, 33, 21], ['Star', 24, 20, -22]]
Cafardy Clair: [['Star', 27, 30, 13], ['Pentagon', 43, 28, -6], ['Square', 32, 37, -14]]
Cafardy Clair: [['Square', 40, 39, 20], ['RippedSquare', 32, 11, -3], ['Star', 36, 35, -24]]
Klepoch Marco: [['Star', 27, 37, -6], ['Pentagon', 26, 28, 6], ['Circle', 22, 10, -29]]
Klepoch Marco: [['Circle', 42, 16, 28], ['RippedSquare', 40, 17, -7], ['Pentagon', 21, 21, -21]]
Lebe David: [['Pentagon', 29, 17, 27], ['Star', 32, 33, -30], ['Square', 35, 25, 4]]
Lebe David: [['RippedSquare', 26, 28, 3], ['Square', 29, 32, -5], ['Star', 46, 20, 1]]
Martinovská Tereza: [['Star', 22, 18, 12], ['Pentagon', 45, 10, 0], ['Square', 28, 33, 28]]
Martinovská Tereza: [['Circle', 22, 39, -7], ['RippedSquare', 25, 36, -21], ['Pentagon', 25, 16, -5]]
Petrášová Jaroslava: [['Pentagon', 44, 24, -29], ['Star', 38, 11, 7], ['RippedSquare', 21, 30, -12]]
Petrášová Jaroslava: [['Circle', 40, 36, -28], ['Square', 31, 15, 25], ['Star', 30, 29, 3]]
Sivák Dominik: [['Star', 40, 20, 6], ['Pentagon', 34, 13, 15], ['Circle', 48, 22, 28]]
Sivák Dominik: [['RippedSquare', 50, 24, -17], ['Circle', 31, 13, 7], ['Pentagon', 32, 36, -20]]
Widmark Sondre Johan: [['Pentagon', 48, 25, -27], ['Star', 25, 37, -13], ['Circle', 27, 35, -25]]
Widmark Sondre Johan: [['Square', 30, 38, 16], ['Circle', 34, 24, -24], ['Pentagon', 26, 35, -17]]

Předzpracování

Vyberte si jednu (podle vás nejednodušší nebo nejzajímavější) z vašich zadaných křižovatek a připravte STL model pro tisk (můžete si zvýšit $fn, aby byla vaše křižovatka hezčí). Můžete s ní 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 křižovatky dle zadaných pravidel a dat. 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).

Jak řezat STL soubory? Jde to jistě i v OpenSCADu, ale to je zbytečně komplikované. Připravili jsme proto krátký návod pro program MeshMixer - doporučují tři ze čtyř cvičících.

Nejde vám v Meshmixeru dobře alignovat? Zkuste program Cura. Obsahuje funkci Lay flat.

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 křižovatku 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á křižovatka by měla vypadat co nejpodobněji požadovanému modelu. Na jeden termín je celkem maximálně 5 hodin (tisk + postprocessing).

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

Odevzdává se na GitHub, na tomto odkazu si vytvoříte repozitář. Veškeré slovní popisy uveďte přímo do README (či README.md apod.) v repozitáři.

V repozitáři odevzdávejte:

  • scad soubor s modulem splitter - jeho deklarací/definicí
  • scad soubor volající modul splitter s vašimi vybranými daty (bez deklarace/definice modulu splitter)
  • STL soubor s vaší křižovatkou, tak jak byla vygenerován OpenSCADem
  • Tiskové STL soubory
  • Tiskové GCODE soubory
  • Profil pro slicovací program, který jste použili (např. ze Slic3ru exportujte Config Bundle)
  • Případné další potřebné soubory

Termín odevzdání na GitHub je 11.6.2017 včetně (případně začátek vašeho zápočtového termínu, pokud se tento koná dřív), tisknout můžete i potom. 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 GitHub.

Zkouškové končí 30.6.2017, 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 rizika z toho plynoucí.

Hodnocení dle následující tabulky:

Modul pro OpenSCAD 10
Modul splitter funguje podle zadání 7 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 10
Jedná se o výtisk modelu dle zadání, výtisk je opracovaný (např. bez podpor, slepený atp.) 4 povinný v rámci části
Výtisk neobsahuje vady zjevně způsobené nevhodnou přípravou modelu 3
Výtisk neobsahuje vady zjevně způsobené nevhodnou přípravou tiskárny (příprava tiskové plochy, nevhodné teploty) 3

* Pouze za podpory vygenerované při slicování se strhávají body. Protože jsme v části slicing.

Pro ovládání tiskárny při odevzdávání potřebujete vlastní počítač se schopností připojit se na WiFi nebo síťovým 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.

 
/mnt/www/courses/BI-3DT/data/pages/classification/semestralka.txt · Poslední úprava: 2017/05/23 10:38 autor: hroncmir
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki