Jdi na navigaci předmětu

OpenSCAD: Domácí úkol ZS 2016/2017

Varování:

Toto není aktuální zadání úkolu. Je zde pouze k účelům archivace.

Další domácí úkoly ze semestrů minulých můžete vidět v archívu.

Motivace

Vaším úkolem je navrhnout plně parametricky model elektrické zásuvky / prodlužovačky / rozmnožovačky / jezvčíka / psa (dále jen zásuvky). Jelikož každý designer si chce namodelovat svoji zásuvku a následně vyzkoušet jak vypadá v reálném světe. Zapojit do ní na zkoušku kabely. Přiložit ji k nábytku, jestli mu pasuje (esteticky, rozměrově). Proto máte za úkol navrhnout univerzální modul, který těmto zoufalým designérům pomůže.

(Potřeba designerů po zásuvkách je smyšlená.)

plugs photo

Rozhraní

Zásuvka má tyto parametry

  • y vnější rozměr na ose y (více méně, viz dále)
  • z vnější rozměr na ose z (nepočítaje případné trčící kolíky)
  • radius_of_outlets poloměr vnitřku jedné zásuvky
  • number_of_outlets počet zásuvek
  • border_of_outlet tloušťka okolo jedné zásuvky
  • offset_of_outlets rozestup jednotlivých zásuvek, 0 znamená že se dotýkají
  • depth_of_outlets hloubka zásuvek
  • pin_radius poloměr kolíků
  • pin_depth délka kolíku a hloubka děr
  • pin_offset rozestup kolíků od středu
  • pin_angle úhel natočení kolíků
  • round_r poloměr zaoblení těla zásuvky

Jednotlivé parametry budou podrobněji vysvětleny dále.

Zásuvka má toto rozhraní včetně výchozích hodnot, které musíte zachovat:

module plug(y=40,
            z=30,
            radius_of_outlets = 15,
            number_of_outlets = 3,
            border_of_outlet = 6,
            offset_of_outlets = 0,
            depth_of_outlets = 10,
            pin_radius = 2,
            pin_depth = 5,
            pin_offset = 8,
            pin_angle = 45,
            round_r = 2) {
   // ...
}

Váš model musí fungovat jako samostatný module pro OpenSCAD, použitelný pomocí direktivy use (nesmí obsahovat žádné konstanty mimo modul, ale je možné (a žádoucí) vytvořit si pomocné moduly). Musíte použít výše zmíněný interface (včetně stejných výchozích hodnot!).

Vnější tvar

Jednotlivé zásuvky vypadají takto:

plugs multiple

Ale levá krajní vypadá jinak:

plugs start

Celé tělo je 3D zaoblené, ale díry na zásuvky ne.

plugs rounded

Konkrétní popis parametrů

Šířka / osa y

  • Je dána tak, aby když je tloušťka okolo zásuvky tlustší než šírka, tak se ořízne.
  • Pokud je hodnota větší než průměr zásuvky a jejího tloušťky, tak se nic neořezává.
  • Pokud je šírka menší než průměr zásuvky tak se nic nevykreslí.
plugs shape

(Nevidíte-li na obrázku osy s popisky, dejte tvrdý refresh stránky, máte v cache starou verzi.)

Výška / osa z

  • Pokud je hloubka zásuvky (depth_of_outlets) a délka kolíků (pin_depth) v součtu větší a tudíž by došlo k proděravění zásuvku skrz na skrz, nic se nevykreslí.
  • Pokud je záporná, nic se nevykreslí.
  • Z udává výšku těla zásuvky, bez případných kolíků, které někdy mohou trčet výše.
plugs plug depth

Poloměr jedné zásuvky

  • Pozor nejedná se o průměr

Počet zásuvek

  • Pokud je to záporné číslo nic se nevykreslí
  • Pokud je to 0 nic se nevykreslí
  • 1 je validní počet zásuvek

Tlouštka okolo jedné zásuvky

  • Jedná se o tlouštku stěny okolo zásuvky při pohledu ze shora
  • Může byt na ose y uříznuty v případě vhodného nastavení parametru pro osu y
  • Pokud je to záporné číslo nebo 0 nic se nevykreslí

Rozestup zásuvek

  • Rozestup zásuvek mezi zásuvkou
  • Pokud je 0, zásuvky se lehce dotýkají (jakoby v jednom bodě)
  • Pokud je záporný, nic se nevykreslí
plugs distance

Hloubka zásuvek

  • Hloubka jedné zásuvky
  • Pokud je hloubka zásuvky (depth_of_outlets) a délka kolíků (pin_depth) v součtu větší a tudíž by došlo k proděravení zásuvku skrz na skrz nic se nevyskreslí.
  • Pokud je to záporné číslo nic se nevykreslí

Poloměr kolíku

  • Poloměr jednoho kolíku i děr co jsou v zásuvce

Hloubka děr a délka kolíku

  • Je stejná

Rozestup kolíků

  • Pokud je rozestup 0, kolík i díry jsou na stejném místě
plugs pins

Úhel kolíku

  • Jedná se o natočení kolíků (směr viz obrázek)
plugs angle

Poloměr zaoblení

  • jak moc je tělo zásuvky zaoblené (0 - není zaoblené; N - poloměr v rohu je N)
  • nesmyslné hodnoty nebudou testovány
  • zaoblením se nesmí objekt zvětšit, tzn. dříve uvedené rozměry jsou vnější po zaoblení

Umístění v prostoru

Pro naše poloautomatické testy je třeba objekt správně umístit v prostoru.

Zásuvka leží více-méně na počátku (bod 0). Osa X prochází prostředkem objektu

plugs xy

Osa Y prochází prostředkem zásuvek (ne prostředkem objektu). Pokud máme sudý počet zásuvek:

plugs xy center even

Pokud máme lichý počet zásuvek:

plugs xy center odd

Celý objekt leží na rovině XY, tzn nezasahuje do záporného Z:

plugs z

Poznámky

  • Rozměr na ose X není schválně zadán, protože zásuvka bude mít délku podle nastavených parametrů.

Kód

Kód musí splňovat určitou kvalitu, jednou z podmínek je logické dodržení odsazení (v celém souboru stejné). Opakované konstrukce musí být implementovány vlastními moduly a forcykly. Magické konstanty musí být samovysvětlující, nebo doplněné o komentář. Není možné použít žádné externí knihovny pro OpenSCAD, ani knihovnu MCAD. Manipulace s $fn, $fs a $fa je přísně zakázána.

Odevzdání

Odevzdává se dle instrukcí na GitHubu

Deadline je 7.12.2016 včetně.