OFRII.com - Red Rocket OFRII.com - 8k wallpapers, foto OFRII.com - Samuraj - bojove umeni - zbrane OFRII.com - Svìt Ponorek OFRII.com - 3D medely - 3D tisk - 3D scan OFRII.com - Akvaristika, Akvarijní ryby, Akvarijní rostliny ORFII.com - Freediving - volné potapìní ORFII.com - Astrologie - horoskop, znamení, souhvìzdí, zvìrokruhy ORFII.com - Vesmír - planety, galaxie, hvezdy ORFII.com
Reklama
3D tiskárny
AONN.cz
NIKEE WALLPAPERS tapety na plochu PC na nikee.net
Spřátelené Weby
NIKEE HRY, superhry, 1000her, webhry, flash hry, hry online, hry zdarma
Uloz si video Nahnoji.cz
biotechart.cz - animovane obrazky GIF z oblasti biologie, technologie a umeni
Globální mediální server TetriSys

Programy - OpenSCAD

Pro 3D modelovaní existuje nespočet programů. Ve většině z nich ale uživatel modeluje v režimu WYSIWYG, tedy myší manipuluje s objekty přímo v projekci. V OpenSCADu ale modely programujete: vytváříte základní tvary a ty k sobě např. přičítáte nebo od sebe odečítáte. Říká se tomu CSG modeling. Pokud budete vyrábět film nebo hru, asi budete chtít pracovat spíše s vizuální stránkou věci; oproti tomu, pokud budete modelovat součástku do stroje, bude vás spíš zajímat absolutní kontrola nad tvarem objektu. V tom případě by vás mohl OpenSCAD zaujmout. Používá se převážně k návrhům součástek.




OpenSCAD nepracuje na rozdíl od většiny modelovacích nástrojů a CADů v režimu WYSIWYG (What You See Is What You Get, česky co vidíš, to dostaneš), ale v režimu WYSIWYM (What You See Is What You Meant, česky vidíš, cos měl na mysli). Každý uživatel preferuje jinou metodu tvorby obsahu, někteří mají raději první metodu a text sázejí třeba ve Scribusu, jiní mají raději druhý přístup a texty sázejí v TeXu.

Typický WYSIWYG 3D modelovací nástroj Blender
Typický WYSIWYG 3D modelovací nástroj Blender
Kromě rozdílu v preferencích uživatelů je tu také druhý aspekt, totiž účel. Pokud budete vyrábět film nebo hru, asi budete chtít pracovat spíše s vizuální stránkou věci; oproti tomu, pokud budete modelovat součástku do stroje, bude vás spíš zajímat absolutní kontrola nad tvarem objektu. V tom případě by vás mohl OpenSCAD zaujmout.

Instalace OpenSCADu

Přestože se jedná o svobodný software, OpenSCAD pravděpodobně nenajdete v repozitářích své distribuce. Na domovské stránce programu najdete repozitáře pro Ubuntu a openSUSE, ale i binární archiv pro libovolný Linux (32 i 64 bitů). Stažený archiv stačí rozbalit a v terminálu s právy roota spustit instalační skript. Poté si ještě můžete stáhnout ikonku a spouštěč a umístit je do složek /usr/local/share/pixmaps respektive /usr/local/share/applications. Program OpenSCAD pak najdete v nabídce aplikací v kategorii Grafika.

Uživatelské rozhraní

Po spuštění OpenSCADu uvidíte relativně prázdné okno rozdělené na tři části. V levé polovině je prostor na zdrojový kód modelu, v pravé části pak nahoře prostor pro vykreslený model a dole zprávy programu.

Prázdné okno OpenSCADu při spuštění
Prázdné okno OpenSCADu při spuštění
Více pochopíte, pokud si otevřete nějaký příklad. Součástí instalace OpenSCADu je dvaadvacet příkladů, které lze otevřít z nabídky File | Examples. Po otevření příkladu jej můžete zkompilovat (a vykreslit) z nabídky Design | Compile, nebo klávesovou zkratkou [F5].

Zkompilovaný příklad číslo jedna

Zkompilovaný příklad číslo jedna

S náhledem na objekt můžete manipulovat myší. Tažením objektu levým tlačítkem jím otáčíte, tažením pravým nebo prostředním tlačítkem jej posouváte a pomocí kolečka na myši jej přibližujete a oddalujete. Z nabídky View můžete měnit způsob zobrazení náhledu, zapnout nebo vypnout zobrazování hran, os apod.

Zobrazené osy a hrany
Zobrazené osy a hrany

Rozbor příkladu

Abyste pochopili způsob programování objektů, rozeberu teď první příklad.
module example001()
{
	function r_from_dia(d) = d / 2;

	module rotcy(rot, r, h) {
		rotate(90, rot)
			cylinder(r = r, h = h, center = true);
	}

	difference() {
		sphere(r = r_from_dia(size));
		rotcy([0, 0, 0], cy_r, cy_h);
		rotcy([1, 0, 0], cy_r, cy_h);
		rotcy([0, 1, 0], cy_r, cy_h);
	}

	size = 50;
	hole = 25;

	cy_r = r_from_dia(hole);
	cy_h = r_from_dia(size * 2.5);
}

example001();
Jak si můžete všimnout, celý zdrojový kód je zabalen v bloku module, který je pak následně zavolán. Můžete to chápat jako proceduru nebo funkci. Na prvním řádku modulu je definice velmi jednoduché funkce r_from_dia(), která počítá poloměr z průměru dělením dvěma. Ve spodní části kódu jsou definovány konstanty. Můžete vidět, že nemusí být definovány v kódu nad místem, kde jsou použity, ale kdekoli. Bude použita poslední uložená hodnota. Pokud konstanty spočítáte ručně, dostanete se k následujícímu kódu:
module rotcy(rot, r, h) {
	rotate(90, rot)
		cylinder(r = r, h = h, center = true);
}

difference() {
	sphere(r = 25);
	rotcy([0, 0, 0], 12.5, 62.5);
	rotcy([1, 0, 0], 12.5, 62.5);
	rotcy([0, 1, 0], 12.5, 62.5);
}
Na začátku je definován modul (funkce) rotcy(), po dosazení dostáváme:
difference() {
	sphere(r = 25);
	rotate(90, [0, 0, 0]) cylinder(r = 12.5, h = 62.5, center = true);
	rotate(90, [1, 0, 0]) cylinder(r = 12.5, h = 62.5, center = true);
	rotate(90, [0, 1, 0]) cylinder(r = 12.5, h = 62.5, center = true);
}
Blok difference() od prvního objektu v něm odečte všechny ostatní. Pojďme se tedy podívat na jednotlivé objekty. Jako první je zde koule, tedy sphere. Pomocí parametru r se určuje její poloměr, pomocí dalších (zde nepoužitých) se dá změnit rozlišení (počet použitých plošek). Všimněte si, že u všech parametrů je uveden i jejich název. Nezáleží tedy na jejich pořadí, ale na názvu. Pokud názvy neuvedete, bude se postupovat podle výchozího pořadí, sphere(25); tedy bude také fungovat.

sphere(r = 25);sphere(r = 25);

Dalším použitým objektem je válec, zastoupený zde objektem cylinder, který ale může představovat i komolý kužel. Parametr r opět udává poloměr, při použití parametrů r1 a r2 můžete definovat poloměr na začátku a na konci. Dalším parametrem je h, tedy výška. Jen doplním, že všechny uvedené rozměry jsou zadávané v milimetrech. Posledním parametrem je center, který definuje, jestli se má objekt vycentrovat na počátek souřadnicového systému.

cylinder(r = 12.5, h = 62.5, center = true);cylinder(r = 12.5, h = 62.5, center = true);

Před jednotlivými válci je transformační funkce rotate(), která otočí objekt o zadaný úhel podle zadaných os. Existují dvě možnosti, jak otáčecí funkci volat, prvním je zadat tři úhly, o které se má objekt otočit po jednotlivých osách v pořadí x, y, z. Následující příklad otočí objekt vzhůru nohama:
rotate([0, 180, 0]) ...
Druhou možností je zadat jeden úhel a poté říct, podle kterých os se má otáčet:
rotate(180, [0, 1, 0]) ...
V našem příkladě se setkáváte s druhou možností:
  • rotate(90, [0, 0, 0]) nemá žádný efekt
  • rotate(90, [1, 0, 0]) otočí válec o 90° podle osy x
  • rotate(90, [0, 1, 0]) otočí válec o 90° podle osy y
rotate(90, [1, 0, 0]) cylinder(r = 12.5, h = 62.5, center = true); rotate(90, [1, 0, 0]) cylinder(r = 12.5, h = 62.5, center = true);

Tyto tři válce... Tyto tři válce... ...se odečtou od koule ...se odečtou od koule

Další objekty a transformace

Kromě již zmíněných objektů je ještě možné vytvářet hranoly (cube) či mnohostěny (polyhedron). Všechny objekty jsou podrobně popsány v odkazované dokumentaci, zde jen pro představu několik jednoduchých příkladů:

cube([10,15,20]); cube([10,15,20]); cylinder(r1 = 10, r2 = 0, h = 20); cylinder(r1 = 10, r2 = 0, h = 20);

polyhedron(points = [[0,0,0],[100,0,0],[0,100,0],[0,100,100]], triangles = [[0,1,2], [1,0,3], [0,2,3], [2,1,3]]);
polyhedron(points = [[0,0,0],[100,0,0],[0,100,0],[0,100,100]], triangles = [[0,1,2], [1,0,3], [0,2,3], [2,1,3]]);

polyhedron(points = [[0,0,0],[100,0,0],[0,100,0],[0,100,100]], triangles = [[0,1,2], [1,0,3], [0,2,3]]); (Odebrán poslední trojú
polyhedron(points = [[0,0,0],[100,0,0],[0,100,0],[0,100,100]], triangles = [[0,1,2], [1,0,3], [0,2,3]]); (Odebrán poslední trojúhelník)


Kromě otáčení existují samozřejmě i další transformace, mezi ně patří škálování (scale), posunutí (translate), překlopení (mirror) a další. Mezi zajímavou transformaci patří obarvení:
color([ R/255, G/255, B/255 ]) ...
color("green") ...
OpenSCAD bohužel obarvení neukáže v náhledu.

Více funkcí a informací

Kromě základních objektů a transformací toho umí OpenSCAD daleko více, namátkou forcykly, podmínky... Vše důležité najdete v obsáhlé dokumentaci. Vzhledem k tomu, že se jedná v podstatě o programování, je přirozené, že vznikají knihovny složitějších tvarů. Mezi nejzajímavější patří knihovna součástek, která dokáže generovat ozubená kola apod.

Příklad vygenerovaných ozubených kolPříklad vygenerovaných ozubených kol

Rendering a export

Finální objekt je nejprve třeba vyrendrovat (Design | Compile and Render (CGAL) nebo [F6]) a poté jej můžete exportovat mj. do formátu STL k následnému použití, například k vytištění na 3D tiskárně. Formát STL lze také importovat, pomocí klauzule import().

Alternativní cesta

Pokud hledáte způsob, jak modelovat součástky precizně, bez nutnosti pokročilejších znalostí klasických modelovacích nástrojů a CADů, nebo pokud je vám programovací způsob modelování prostě bližší, je pro vás OpenSCAD řešením. Pomocí OpenSCADu a dalších knihoven můžete naprogramovat model mnohem rychleji a efektivněji, než kdybyste jej modelovali ručně.
©Ofrii 2012
NIKEE.net
ALYSS.cz
SIFEE.biz
ENKII.cz
OFRII.com