|   
Reklama
 
3D tiskárny
       
AONN.cz
 
Spřátelené Weby
 | 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 BlenderKromě 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 OpenSCADuPř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/pixmapsrespektive/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í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 jednaS 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 hranyRozbor příkladuAbyste 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();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);
}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);
}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í parametrurse 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);Dalším použitým objektem je válec, zastoupený zde objektem cylinder, který ale může představovat i komolý kužel. Parametr ropět udává poloměr, při použití parametrůr1ar2můžete definovat poloměr na začátku a na konci. Dalším parametrem jeh, tedy výška. Jen doplním, že všechny uvedené rozměry jsou zadávané v milimetrech. Posledním parametrem jecenter, který definuje, jestli se má objekt vycentrovat na počátek souřadnicového systému. 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, [1, 0, 0]) cylinder(r = 12.5, h = 62.5, center = true);](3d_programy/openscad/10.jpg)  rotate(90, [1, 0, 0]) cylinder(r = 12.5, h = 62.5, center = true); Tyto tři válce...  ...se odečtou od koule Další objekty a transformaceKromě 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]);](3d_programy/openscad/13.jpg)  cube([10,15,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]]);](3d_programy/openscad/15.jpg) 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ú](3d_programy/openscad/16.jpg) 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 kol Rendering a exportFiná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í klauzuleimport().Alternativní cestaPokud 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
 | ||