OpenScad

openscad.org

http://m.os-mk.si
Učni listi: 1,2,3,4
Izdelki mojih učencev

Google -> "OpenScad švinglc"

Kaj je OpenScad?

  • 3D modelirnik
  • Kateri koli OS
  • Popularen pri 3D tisku
  • 3D modeliramo le s kodo
  • Koda temelji na C sintaksi

Namestitev

  1. OpenScad.org -> downloads
  2. Namestimo ustrezno najnovejšo verzijo za svoj OS
  3. Za SLO, verzija najmanj 2016.10.04


GUI

Koda

C sintaksa
  • ukaze zaključujemo z ;
  • velikost črk je pomembna
  • spremenljivke ne začenjamo s številkami

Debug


Najprej vedno odpravimo prvo napako na vrhu debuga

Izris


  • Premikamo z miško
  • F5 - izriše
  • F6 - render

Priporočilo

View -> Show Axes

Osnovni liki

Kocka

cube();
cube(a);
cube(15);

Kvader

cube([x,y,z]);
cube([15,10,5]);
cube([15,10,5], center=true);

Valj

cylinder(h=,r=);
cylinder(h=15,r=5);
cylinder(h=15,r=5,center=true);

Stožec

cylinder(h=,r=,r2=0);
cylinder(h=15,r=5,r2=0);
cylinder(h=15,r=5,r2=0, center=true);

Prisekan stožec

cylinder(h=,r=,r2=);
cylinder(h=15,r=5,r2=2);
cylinder(h=15,r=5,r2=2, center=true);

N strana prizma

cylinder(h=,r=, $fn=);
cylinder(h=15,r=5,$fn=6);

N strana piramida

cylinder(h=,r=,r2=0, $fn=);
cylinder(h=15,r=5,r2=0,$fn=4);

Krogla

sphere(r);
sphere(8);

Premikanje

Izvajamo kot fukncije.

Funkcije:
  • se ne končajo z ;
  • vpliv je definiran z { }
  • upoštevjamo pravila lepega programiranja

Premik / translacija

translate([x,y,z]){
	...
};
Premik se vrši iz koordinatnega izhodišča
translate([-6,-1.5,-1]){
	cube(8);
};

Obračanje / rotacija

rotate([x,y,z]){
	...
};
Rotacija se vrši iz koordinatnega izhodišča
rotate([0,15,45]){
	cube(8);
};

Barve

Izvajamo kot fukncijo.

Barve - ime

color("ime barve"){
	...
};
color("blue"){
	cube(15);
};

Barve - RGB

color([R,G,B]){
	...
};
Vsaka osnovna barva ima lahko vrednosti od 0 do 1
color([0.5,0,0.4]){
	cube(15);
};

Booleove operacije

Izvajamo kot fukncije brez parametrov.

Unija

union(){
	cube(5);
	sphere(5);
};

Presek

intersection(){
	cube(5);
	sphere(5);
};

Razlika 1.

difference(){
	cube(5);
	sphere(5);
};

Razlika 2.

difference(){
	sphere(5);
	cube(5);
};

Membrana

hull(){
	sphere(5);
	cube(5);
};