Inhoud
OpenSCAD
Algemene informatie
OpenSCAD is een open source programma waarbij door middel van programmacode 3D modellen getekend kunnen worden. Edwin heeft tijdens de FabAcedemy een korte Handleiding geschreven in het Engels die je ook kunt raadplegen.
De interface van OpenSCAD is eenvoudig. Aan de linkerkant kunnen de commando’s (programeercode) ingevoerd worden, rechts wordt het 3D model weergegeven wanneer deze gerenderd is. De interface is hieronder weergegeven, informatie over de commando's om modellen te renderen volgt later op deze pagina.
Handleiding
De volgende knoppen renderen het model, een sneltoets hiervoor is [F6].
Er zijn verschillende basisvormen die met OpenSCAD getekend kunnen worden. Dit zijn 2D en 3D vormen. Onderstaand overzicht geeft aan welke basisvormen getekend kunnen worden en welke parameters hierbij gebruikt worden. Hiervoor kan via het Help menu de cheatsheet geopend worden. Hiervoor is wel internet vereist.
2D
- circle(r=radius)
- circle(d=diameter)
- square(size,center)
- square([width,height],center)
- polygon([points])
- polygon([points],[paths])
- text(t, size, font, halign, valign, spacing, direction, language, script)
3D
- sphere(r=radius)
- sphere(d=diameter)
- cube(size=size, center)
- cube([width,depth,height], center)
- cylinder(h=height,d=diameter,center)
- cylinder(h=height,r=radius,center)
- cylinder(h = height, r1 = BottomRadius, r2 = TopRadius, center = true/false)
- polyhedron(points, triangles, convexity)
Voor de hoogte, diameter, radius etc. moet een getal of een variabele ingevoerd worden. Voor ‘center’ kan ‘center=true’ of ‘center=false’ ingevoerd worden, dit geeft aan of het object met het midden op de oorsprong geplaatst wordt of met de hoek op de oorsprong.
Voorbeeld
Om een kubus van 3x4x5 te tekenen gebruik je deze regel:
cube([3,4,5], center=true);
Dit ziet er als volgt uit wanneer het gerenderd is:
Bewerkingen op een object uitvoeren
De meest eenvoudige bewerkingen die op een object kunnen worden uitgevoerd zijn verplaatsen en roteren. Hiervoor worden 'translate([x,y,z])' en 'rotate([x,y,z])' gebruikt. Stel dat je het blokje uit het vorige voorbeeld wil verplaatsen. Dan moet je de 'translate' regel toevoegen voor de regel van het blokje. De 'translate' regel wordt niet afgesloten met punt-komma, dit gebeurt pas na het einde van de totale opdracht, die ongeveer neerkomt op 'maak een blokje en verplaats deze'. In OpenSCAD wordt dit de volgende regel:
translate([4,0,0]) cube([3,4,5], center=true);
Dit tekent een blokje van 3x4x5mm dat 4 mm over de x-as wordt verplaatst.
Rotate werkt op dezelfde manier, alleen geef je daarbij aan hoeveel graden het object om de x, y of z-as gedraaid moet worden.
Objecten combineren
Wanneer je verschillende 3D objecten tekent kan je ze combineren. De standaard actie is 'union()', dit combineert de verschillende objecten tot één object. Voorbeeld:
union()
{
cube(size=6);
translate([-2,-2,-2])cube(size=6);
}
Je kan ook een object creëren waarbij je één object van het andere weghaalt, de zogenoemde 'difference()'. Dit verwijdert het tweede object van het eerste object. Voorbeeld:
difference()
{
cube(size=6);
translate([-2,-2,-2])cube(size=6);
}
Een ander voorbeeld is een object creëren van het deel waar de twee objecten elkaar overlappen, de zogenoemde 'intersection()'. Voorbeeld:
intersection()
{
cube(size=6);
translate([-2,-2,-2])cube(size=6);
}
STL exporteren
Om het gemaakte model bijvoorbeeld 3D te kunnen printen is een export naar een .stl file noodzakelijk. Hiervoor moet het model eerst gerenderd worden (sneltoets [F6]) om vervolgens geëxporteerd te kunnen worden. Dit kan op 3 manieren: [File] > [Export] > [Export as .stl]:
Via de 'button' in de interface:
Of met de sneltoets [F7].
Voorbeelden
Kijk voor voorbeelden hier.
Problemen oplossen
Mocht de geëxporteerde .stl niet te openen zijn, kan de export setting van invloed zijn. Probeer deze aan te passen door het instellingenscherm te openen via [Edit] > [Preferences]. Ga naar de tab [Advanced] en scroll tot de setting 'Export features' zichtbaar is. Zorg dat deze aangevinkt is voor 'Default to ASCII STL export.











