Tvorba 3D objektů v OpenSCAD bez použití GUI (1. část – Příprava)

V článku Možnosti použití FFF/FDM 3D tiskáren zrakově postiženými (1. část) jsem letmo zmínil, že „v současnosti existuje nemálo softwarových nástrojů pro tvorbu 3D modelů. Avšak takové programy předpokládají zrakové vnímání – zpravidla se v nich pracuje v režimu WYSIWYG (akronym k „What you see is what you get.“, česky „Co vidíš, to dostaneš.“), kdy uživatel přímo v projekci myší manipuluje s objekty. Jistou nadějí je programování objektů – např. s pomocí nástroje OpenSCAD (v tomto případě by platila věta „Co programuješ, to dostaneš.“). Takové programování přitom není nic vyloženě náročného – lze vytvářet základní objekty a ty například navzájem sčítat nebo odečítat.” Tahle úvaha nezůstala dlouho ladem a ozval se mi první nevidomý zájemce o hlubší seznámení se s reálnými možnostmi OpenSCADu. Během konference INSPO 2018 se přidali další dva zájemci a během jarní Agory 2018 další jeden. Proč ne? Pusťme se do toho!

V několika článcích si dovolím čtenáře seznámit s tvorbou v OpenSCAD za pomocí textového editoru. Nebudu přitom využívat dostupné grafické rozhraní, ale využiji možnost ovládání programu příkazy v příkazové řádce.

Pro zájemce také postupně vyhotovím (za pomoci 3D tisku) pomůcky, které by mohly zlepšit představu o navrhovaných objektech, popřípadě o jejich orientaci v pracovním prostoru – podklady si čtenář bude moci stáhnout a vytisknout na 3D tiskárně.

Ačkoliv jsem výše zmínil „Takové programování přitom není nic vyloženě náročného“, nedělejme si iluze o tom, že je pro každého. Uváděné postupy nemusí být pro běžného počítačového uživatele jednoduché a vyžadují dostatečný zápal pro věc.

Zmínil jsem „příkazovou řádku“.  Postupně jsem zjistil, že mnoho lidí si s příkazovou řádkou zkrátka příliš nerozumí (počítaje v to i v mnoha ohledech technicky velmi zdatné jedince); proto nám usnadním práci postupně vytvořenými prográmky (resp. dávkovými soubory .bat).

Pokud si, milý čtenáři, nebudeš s něčím vědět rady, neváhej a napiš mi na e-mail petr.dusek@43d.tech, pokusím se ti pomoci; jestliže se ti bude zdát, že celá problematika je na tebe až příliš složitá, také mi dej vědět – pokud se ozve více lidí, je možné, že vyhotovím aplikaci, která celou práci s tvorbou 3D objektů zjednoduší.

Co budu potřebovat?

  • Operační systém Windows: Ale lze použít i některou z Linuxových distribucí či Mac OS X – na tyhle operační systémy  se sice nebudu nyní zaměřovat, pokud ale budeš potřebovat poradit, ozvi se mi.
  • OpenSCAD: 3D-kompilátor, který do 3D podoby převede to, co jsme mu zadali v textovém editoru.
  • Příkazovou řádku anebo spouštěcí (dávkové) sobory, které poskytnu: Tak budeme ovládat OpenSCAD, zadávat příkazy, aby zpracoval to, co jsme mu napsali v textovém editoru. A on nás bude informovat například o chybách, které jsme provedli.
  • Textový editor: Mezi mé oblíbené textové editory patří Notepad (Poznámkový blok),  PSPad, Notepad++. Textových editorů je hodně, proto jeho volbu ponechávám na každém z vás. Budeme pracovat s tzv. prostým textem. Textový editor nám bude sloužit zejména ke dvěma činnostem:
    • k tomu, abychom mohli popsat námi navrhované 3D objekty (budeme upravovat sobory s koncovkou .scad),
    • k tomu, abychom si mohli přečíst zprávy z OpenSCAD (například o tom, že jsme při návrhu udělali nějakou chybu; zprávy si necháme posílat do souboru s koncovkou .txt).

OpenSCAD ve stručnosti

OpenSCAD je program určený pro vytváření 2D/3D CAD (computer-aided design – počítačem podporované projektování, resp. computer-aided drafting – počítačem podporované kreslení) modelů. Lze ho použít zdarma a běží pod Windows, Linux / UNIX, Mac OS X. Ale dále se budu věnovat verzi pro Windows (konkrétně Win 10).

OpenSCAD je spíše 3D-kompilátor, který čte soubor, ve kterém je návrhářem popsaný 3D objekt.  Tím návrhář získává plnou kontrolu nad procesem modelování. V tom také tkví potenciální výhody pro nevidícího uživatele – přísně vzato nepřesně řečeno lze pracovat v režimu WYSIWYM (akronym k „What You See Is What You Meant“, česky „Vidíš, cos měl na mysli.“), byť takové označení může v našem případě budit rozpaky, neboť evokuje potřebu zpětné vizuální kontroly – ale nelekejme se toho, jen mějme na paměti, že tak jako tak musíme mít ponětí o tom, co navrhujeme. Od geometrických útvarů základních (např. krychle, kvádr, koule, válec, kužel, jehlan, různé mnohostěny atd.) až po ty složitější. Navíc jistou nadějí pro získávání hmatové zpětné vazby jsou zařízení typu silové zpětné vazby, při níž máme možnost 3D objekt zkoumat zprostředkovaně (zjednodušeně jakoby se ho dotýkat např. tužkou) – o tom ale jindy.

Projektem OpenSCAD bylo motivováno možství dalších projektů, například: OpenJSCAD.org, OpenSCAD.net, ImplicitCAD,

Užitečné zdroje informací:

Instalace programu OpenSCAD je jednoduchá

  1. Stáhnu si instalační soubor,
  2. spustím ho a nechám se provést instalací –  ponechám nebo vyberu místo, kam bude instalováno (doporučuji instalovat do zpravidla přednastaveného C:\Program Files\),
  3. Install,
  4. Close.

Užitečné zdroje informací:

Chci-li OpenSCAD ovládat přes GUI

Navzdory tomu, že se GUI (Graphical User Interface – grafické uživatelské rozhraní) OpenSCADu budeme snažit během mého povídání vyhnout, je možné, že někteří čtenáři si ho oblíbí více, než práci s příkazovou řádkou a textovým editorem – pro ně GUI alespoň ve stručnosti.

Spustím-li OpenSCAD, zobrazí se uvítací obrazovka („Vítá vás OpenSCAD“) s možností otevřít nový, již existující soubor (resp. projekt) anebo vybrat z nemalého množství příkladů. Při kliknutí na „Nápověda“ jsem nasměrován na webovou stránku manuálu. Nechci-li, aby se uvítací obrazovka příště zobrazovala, zaškrtnu v ní „příště nezobrazovat“.

Zvolím-li na uvítací obrazovce „Nový“, objeví se okno rozdělené do tří částí:

  1. prostor pro psaní zdrojového kódu navrhovaného modelu (editor)
  2. prostor, kde se model vykresluje,
  3. prostor, kde se zobrazují zprávy OpenSCADu (konzole).

Různá nastavení mohu provést v menu Upravit / Předvolby. Možností „3D zobrazení“ nastavuji barvu prostoru pro vykreslení objektu. Možností „Editor“ nastavuji variantu editoru, font či velikost písma, barvu zvýrazňování syntaxe, odsazování, zalamování, vzhled. Možnost „Pokročilé“ mi umožňuje například „Povolit plovoucí editor a konzoli“, „Povolit lokalizaci rozhraní OpenSCADu“ (orientuje se podle defaultně nastaveného jazyka operačního systému).

Lze využívat klávesových zkratek. Například levé alt+s (menu Soubor), levé alt+u, (menu Upravit), levé alt+d (menu Design), levé alt+z (menu Zobrazit), levé alt+n (menu Nápověda), ctrl+n (nový), ctrl+o (otevřít) atd. – další klávesové zkratky lze čerpat z uceleného přehledu klávesových zkratek pro OpenSCAD.

Užitečné zdroje informací:

Chci-li OpenSCAD ovládat přes GUI, ale nechci používat vestavěný editor

Aneb není nutné používat editor OpenSCADu. Některým uživatelům nevyhovuje editor vestavěný do OpenSCADu. Například z toho důvodu, že je uživatel zvyklý na jiný editor anebo editor v OpenSCADu pro něj není dostatečně přístupný.

Soubory OpenSCADu mají koncovku „.scad“, tedy například „model.scad“. V těchto souborech je uložen popis 3D objektu ve formě návrhářem napsaných skriptů.

Pokud v OpenSCADu nastavím „Design / Automaticky načítat a zobrazovat“ a mám-li model.scad soubor otevřený v OpenSCADu, mohu si tento soubor otevřít zároveň v jiném editoru (třeba Notepad), upravit podle svých potřeb a uložit. Jakmile soubor uložím, v OpenSCADu se provede automatické přenačtení, zobrazení a případné zobrazení chyb. Zcela nevidomému návrháři nemusí ani režim „automatického načítání a zobrazování“ zcela vyhovovat.

Pokud používám externí editor, pak ten interní mohu schovat – Zobrazit / Skrýt editor.

Užitečný zdroj informací:

Nechci-li OpenSCAD ovládat přes GUI, ale přes příkazovou řádku

OpenSCAD nemusím spouštět a ovládat jen prostřednictvím GUI. Mohu použít příkazovou řádku (CMD, cmd.exe). To však předpokládá, že uživatel zvládá alespoň základní práci s CMD. Pokud si s příkazovou řádkou nevíš rady, přejdi klidně k další kapitole.

Vyzkoušejme v příkazové řádce například získat nápovědu k OpenSCADu:

  • Spustím si příkazovou řádku (CMD).
  • V CMD se přesunu do adresáře, kde mám nainstalovaný OpenSCAD: cd \Program Files\OpenSCAD\
  • Nyní zadám příkaz:
openscad --help

Zobrazí se výpis položek, které mohu v příkazovém řádku použít pro ovládání OpenSCADu.

Všimněme si, že pro to, abych mohl použít příkaz „openscad“, musím nejdříve vstoupit do adresáře „\Program Files\OpenSCAD\“. Bylo by krásné, kdybych výše zmíněný příkaz „openscad –help“ mohl spouštět z kteréhokoliv místa.

Abych mohl příkaz openscad spustit i mimo místo, kde mám OpenSCAD nainstalovaný, pomohu si tím, že si v počítači nastavím tzv. „Uživatelskou proměnnou“ nebo „Systémovou proměnnou“ „Path“. Ve Win 10 toho dosáhnu třeba následujícím postupem):

  • stisknu klávesu Win a zadám „Edit the system environment variables“ nebo „Edit environment variables for your account“ (resp. „Upravit proměnné prostředí systému“ nebo „Upravit proměnné prostředí pro váš účet“),
  • zůstanu na „Upřesnit“,
  • „Proměnné prostředí“,
  • v části „Uživatelské proměnné pro uživatele“ (nebo „Systémové proměnné“) označit „Path“,
  • „Upravit“,
  • „Nový“,
  • zadat „C:\Program Files\OpenSCAD\“ (tj. cestu, kam jsem si nainstaloval OpenSCAD),
  • OK.

Nyní mohu v CMD použít příkaz „openscad“ z kteréhokoliv adresáře.

Užitečný zdroj informací:

Nechci-li OpenSCAD ovládat přes příkazovou řádku ani přes GUI

Pokud si nevíš rady s příkazovou řádkou, zapomeň na ni a stáhni si soubor stlopenscad.bat (BAT soubor, velikost 511 bajtů). Ten používej následujícím způsobem:

  • Soubor stlopenscad.bat umísti do adresáře, ve kterém máš svůj model popsaný v souboru model.scad.
  • Spusti soubor stlopenscad.bat. Tento prográmek zjistí, jestli ve stejném adresáři je k dispozici soubor model.scad. Když tam není, do vytvořeného souboru info.txt napíše informaci o tom, že soubor model.scad nebyl nalezen. Naopak když soubor model.scad nalezne, zpracuje ho – pokud model.scad obsahuje nějaké chyby, informaci o chybě napíše opět do info.txt. Jestliže model.scad neobsahuje chyby, je vytvořen soubor model.stl (tento soubor již tvoří základ pro 3D tisk) a informace o jeho vytvoření je opět uložena do info.txt.

Jednoduchý příklad – vytvoření kostky

Navrhnu si třeba kostku, která bude mít velikost strany 30 mm. Pro své projekty si vytvořím adresář, třeba s názvem „mojeopenscadprojekty“.

  • V adresáři mojeopenscadprojekty si vytvořím soubor model.scad. Ten je zatím prázdný.
  • Soubor model.scad si otevřu ve svém oblíbeném editoru (například v Noetepad++) a napíši do něj následující:
cube(size = 30);

V adresáři mojeopenscadprojekty se vytvořily dva soubory: info.txt a model.stl. V info.txt se dočtu, že byl vytvořen soubor model.stl. Případné chyby by se také napsaly do info.txt. A soubor model.stl je již hotová digitální podoba kostky o velikosti 30 mm, kterou bych mohl například vytisknout 3D tiskárnou. No není to jednoduché?

Komu více vyhovuje práce s příkazovou řádkou, může namísto spouštění souboru stlopenscad.bat použít příkaz:

openscad model.scad -o model.stl
Obrázek v OpenSCADu navrženého modelu kostky.

Obr. 1. V openSCADu navržená kostka o velikosti 30 mm – STL soubor této kostky pro 3D tisk je ke stažení na www.43d.tech/3dfiles/openscad/1/model.stl (STL soubor, velikost 1,55 kB), zdrojový kód na www.43d.tech/3dfiles/openscad/1/model.scad (SCAD soubor, velikost 16 bajtů).

To je pro tuto chvíli vše.  V příštím díle čtenáře seznámím s možnými formáty, do nichž můžeme výstupy exportovat, syntaxí OpenSCADu a podíváme se na některé další příklady.



3D tiskTutoriály


Petr Dušek
Petr několik let pracoval na úchvatné pozici pozorovatele meteorů v Oddělení meziplanetární hmoty Astronomického ústavu Akademie věd ČR. V současnosti se úspěšně zabývá SW vývojařinou, zejména na úrovni zajištění kvality, testování, bezpečnosti a to primárně v oblasti komerčního sektoru.