Operácie

OpenSCAD: Rozdiel medzi revíziami

Z SensorWiki

(Funkcie - moduly)
(Funkcie - moduly)
Riadok 163: Riadok 163:
 
|  [[Súbor:OpenSCAD-Spacer.png|thumb|Práca s modulmi.]]
 
|  [[Súbor:OpenSCAD-Spacer.png|thumb|Práca s modulmi.]]
 
|}
 
|}
 +
 +
 +
== 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.
 +
 +
 +
{| width="100%"
 +
|
 +
| <source lang="C++">
 +
'''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);
 +
}     
 +
   
 +
}
 +
 +
 +
 +
  </source>
 +
|
 +
|}
 +
 +
[Súbor:OpenSCAD-Hull.png|thumb|Práca s modulmi.]]
 +
  
 
[[Category:OpenSCAD]] [[Category:DTV]] [[Category:NAVEZ]]
 
[[Category:OpenSCAD]] [[Category:DTV]] [[Category:NAVEZ]]

Verzia zo dňa a času 16:18, 12. marec 2018

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);
Jednoduchý valec


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] );
Kocka
]
   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);
Guľa

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);
Guľa



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);
   }
Difference

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");
Basic Text

Ď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");
3D Text

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);
 }
}
Práca s modulmi.


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.]]