image/svg+xml
echo(...); izpiši vsebino spremenljivke v konzolofor (i = [začetek:konec]) { … } | for (i = [začetek:korak:konec]) { … } | for (i = [vrednost1,vrednost2,…]) { … }intersection_for(...) izvedi for zanko in prikaži le presečišče vseh interacijif (pogoj){...}else{...} veljavni primerjalni operaterji: ==,<,>,!=,<=,>= import("datoteka.stl" | "datoteka.dxf" , convexity=n); uvozi stl ali dxf za nadaljno obdelavo. Vrednost n = 10 je pogosto dovoljlinear_extrude(height = višina, center = true, convexity = 10, twist = zvij, slices = rezov, scale = povečuj) {...} iz 2D v 3Drotate_extrude(convexity = 10){...} 2D predmet premakne na ravnino z-x ter ga rotira okrog z osi.surface(file = "površina.dat" | file="površina.png", center = true, convexity = 5, *invert=true); heightmap iz txt ali png v 3Dprojection(cut = true) ime(); prerez projekta skozi ravnino x-y z=0. cut=false je "senca" vseh robov na to ravnino obvezen ukaz za DXF izvozrender(convexity = 2){...} prisilo rendanje že med predogledom. Uporabno ko določene booleanove operacije opazno upočasnujejo izris ter predogled.
Razno
translate([x,y,z]) *{...} premik objekta/ovrotate([x,y,z]) *{...} rotacija objekta/ovscale([x,y,z]) *{...} povečava objekta/ov po osi za dan faktorresize([x,y,z], *auto=true | auto=[true,true,false]) *{...} poveča objekt tako, da je prilagojen določenim skrajnim mejam.Če je meja 0 se po tisti osi ne spremeni razen če je aktiven auto, takrat se ohranja razmerje.rotate(z | [x,y,z], *v=[x,y,z]) *{...} rotacija po osi. uporaba v= je rotacija po vektorju z kotom zmirror([x,y,z]) *{ime()} zrcaljenje objekta preko ravnine x,y,zoffset(r=odmik | delta=odmik, *chamfer=true) *{...} vzporedni odmik 2D objektu, r zaokrožitve, delta ostri kot, delta+chamfer kote poseka. minkowski(){objekt1(); objekt2()} objekt2 obhodi rob objekta1 nastala prekrita povšrina je minowskihull() {...} čez objekte napne "membrano" - za npr prehodecolor("ime_barve" | [r,g,b], *a=prosojnost) *{...} ! rgb ni 0-255 temveč 0.0(min)-1.0(max) enako za prosojonost 0.0(prosojno)-1.0(neprosojno) barva je vidna le pri predogledu [F5] saj CGAL ter STL [F6] trenutno ne podpirata barv.Za verzije od 2011.12 nazaj je sintaksa color( [r, g, b, a] ) *{...}
Transformacije
abs(x) absolutna vrednostsign(x) signum - vne -1 če x<0; 0 če x=0; 1 če x>0 sin(x)cos(x)tan(x)acos(x)asin(x)atan(x)atan2(y,x)floor(x) zaokroži navzgor neupoštevajoč predznaka npr -4.1 -> -5round(x) zaokroži na celo število npr -4.5 -> 5ceil(x) zaokrožitev navzgor upoštevajoč predznaka npr -4.1 -> -4ln(x) naravni algoritemlen(x) dolžina vektorja, polja ali stringalog logaritempow(x,y) xysqrt(x) kvadratni korenexp(x) exrands(min,max,števil,*seme) naključno število !števila so double! npr če rabiš samo 1 število rands(1,10,1)[0]min(n1,n2,... | [n1,n2,...]) najmanša vrednost med parametri ali v vektorjumax(n1,n2,... | [n1,n2,...]) največja vrednost med parametri ali v vektorju
Matematične operacije
circle(polmer | r=polmer,*) krogsquare(velikost | [x,y],*center=true) kvadrat ali pravokotnikpolygon([točke],*[pot]) npr: polygon(points=[[0,0],[0,1],[1,2],[2,1]],paths=[[1,2,3],[0,1,3]]);text(besedilo,velikost,pisava,"left"|"center"|"right","top"|"center"|"baseline"|"bottom",razmak,"ltr"|"rtl"|"ttb"|"btt" ,"en"|...,"latin"|...)
2D objekti
globalno definiraš na vrhu datoteke, neketare možno tudi v osnovnih objektih ter booleanivih operacijah, slednji pri izrisu onemogočijo globalno nastavitev.$fa najmanjši kot segmenta - privzeto 12 - manj gladi majhne objekte - minimum 0.01$fs najmanjša velikost segmenta - privzeto 2 - manj gladi velike objekte - minimum 0.01 $fn število segmentov - privzeto 0 ,če več se $fa ter $fs ignorirataaktivno le med zagonom "view" ->"animate"! kljukica pri "Dump Pictures" bo posamezne korake v neskončni zanki shranjevala v oštevilčene png datoteke$t številka trenutnega korakale trenutna vrednost med zagonom izrisa. oz pri animaciji se izrisuje sproti $vpr[0] kot kamere v stopinjah [0]-y; [1]-x(shift+leva miška); [2]-z$vpt[0] premik kamere v stopinjah [0]-kolešček držan; [1]-y; [2]-z$vpd oddaljenost kamere
specialne spremenljivke
podprto le v novejših verzijah* opcijski parameter| uporaba enega ali drugega// komentar ena vrstica/* */ komentar več vrstic
sphere(polmer | r=polmer); kroglacube(velikost | [x,y,z], *center=true); kocka ali kvadercylinder(višina,r=polmer,*r2=polmer_zgoraj,*center=true)); valj ali stožec
3D objekti
The Programmers Solid 3D CAD Modeller
www.openscad.org
http://miharix.eu
ime_spremenljivke = vrednost;module ime(…) { … } moduli npr: module kvader(v,s,d){cube([v,s,d]);}function ime(…) = … funkcije npr: function v_kvadra(v,s,d)=v*s*d;ime(); klic modula ali funkcije npr: kvader(2,4,6); v_kvadra(1,3,5);include <… .scad> omogoči dostop do funkcij ter modulov te datotekeuse <… .scad> isto kot include le, da še izriše vsebino
Sintaksa
union(){objekt1(); objekt2(); ...} unija - predmeti postanejo en predmet, občasno potrebna kot pod operacija za boolearne operacijedifference(){objekt1(); objekt2(); ...} razlika - od prvega objekta odšteje ostaleintersection(){objekt1(); objekt2(); ...} presečišče - ohrani vsebino presečišča prvega objekta z ostalimi
Boolearne operacije
lookupstr(...) spremeni vse parametre v string in jih zlepichr(...) pretvori številko v znaksearchnormcrossparent_module(idx)
posebne funkcije
* onemogoči - skrij predmet in ga ne upoštevaj pri operacijah! prikaži le tega - skrij vse ostale predmete razen tega - npr za hitrejše delo na detajlih# obarvaj - vizualno (rdečkasto) prikaži kje v operaciji ima vpliv označeni predmet% prosojno - predmet ne upoštevaj pri operacijah a ga prikaži prosojnega