OpenSCAD
Zo stránky SensorWiki
OpenSCAD je voľne dostupný softvér pre počítačom podporovanú CAD (computer-aided design) tvorbu 3D objektov. Je založený na skriptovacom jazyku, ktorým sú jednotlivé objekty vytvárané. Graficky sa dajú len prezerať a natáčať, ale nedá sa pracovať interaktívne s myšou. Základom jazyka sú primitívne geometrické útvary (napr. guľa, hranol, valec a pod.) a tieto modifikujeme pomocou základných geometrických a matematických operácií (napr. posun, prienik, rozdiel a pod.) čím vznikne požadovaný objekt -- 3D model. Program je zástupcom programov skupiny CSG -- t.j. constructive solid geometry (CSG). Softvér existuje vo verzii pre Windows, Linux aj OS X.
Príklady:
Príklady:
cylinder(d=6,h=10);
|
Kompilácia a rendrovanie modelu
Príkaz pre vykreslenie valčeka vložíme do príkazového okna a skompilujeme ho klávesou F5. Ak bol preklad úspešný, zároveň uvidíte v pravom okne náhľad objektu. Ak potrebujete kvalitný obraz, vyrendrujte ho klávesou F6, ale počítajte s dlhším časom potrebným na výpočet.
ekvivalentné príkazy
cube(size = 18);
cube(18);
cube([18,18,18]);
.
cube(18,false);
cube([18,18,18],false);
cube([18,18,18],center=false);
cube(size = [18,18,18], center = false);
cube(center = false,size = [18,18,18] );
|
] | |
sphere(r = 10);
translate([0,25,0])
color([0,1,0])
sphere(d = 20);
translate([0,50,0])
color([0.8,0.1,1])
sphere(d = 20);
|
Na poslednom príklade vidno aj možnosť zmeny farby objektu. Farba sa zadáva ako trojica komponentov RGB farby, akurát namiesto
obvyklých hodnôt 0 - 255 sa zadávajú ako reálne čísla v intervale 0,0 - 1,0. Okrem toho môžete používať aj pomenované farby,
pričom sa používajú tie isté ako pre web -- Web colors, napríklad: color("red") cube();
Pozn.: farby sa prejavia len v režime Preview mode (F5); render mode (F6) zatiaľ farby nepodporuje.
Export do STL
Transformácie
translate
Príkaz translate presunie svoje komponenty podľa daného vektora.
sphere(r = 10);
translate([0,25,0])
sphere(d = 20);
|
difference
Príkaz difference odpočíta druhý (a všetky nasledujúce) objekty od prvého.
difference()
{
cylinder (h = 4, r=1, center = true, $fn=100);
rotate ([90,0,0]) cylinder (h = 4, r=0.9, center = true, $fn=100);
}
|
Text
Text je 2D objekt, ktorý musíme neskôr "extrudovať" aby z neho vznikol 3D objekt. Všimnite si rozdiel medzi preview [F5] a render [F6].
text("Ahoj");
|
Ďalšími parametrami príkazu vieme meniť font, jeho veľkosť, typ a zarovnanie textu.
text(text = "Ahoj", font = "Arial:style=Bold", size = 10, halign = "center", valign = "center");
Zoznam dostupných fontov získate z menu Help -> Font List
linear_extrude(height = 10, center = true)
text(text = "Ahoj", font = "Arial:style=Bold", size = 10, halign = "center", valign = "center");
|
Viac o texte - pozri https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Text
Funkcie - moduly
Až s využitím viacnásobného volania funkcie (v OpenSCADe sa volá module) a pomocou parametrov vynikne sila a efektivita tohoto nástroja.
spacer(30);
module spacer(length=15)
{
$fn = 15;
difference()
{
cylinder(d=6, h=length, $fn=6);
translate([0,0,-1])
cylinder(d=3.2,h=length+2);
}
}
|
Konvexná obálka - hull
Príkazom hull obalíme objekty a vytvoríme celistvý povrch. To sa dá niekedy veľmi elegantne využiť pri konštrukcii.
'''Dve kruznice (2D objekt):'''
translate([15,0,0]) circle(10);
circle(10);
'''Obal dvoch kruznic:'''
hull()
{
translate([15,0,0]) circle(10);
circle(10);
}
'''Trojrozmerna suciastka:'''
$fn=64;
linear_extrude(height=5)
{
difference()
{
hull()
{
translate([15,0,0]) circle(10);
circle(10);
}
translate([15,0,0]) circle(5);
circle(5);
}
}
|
[Súbor:OpenSCAD-Hull.png|thumb|Práca s modulmi.]]