27 lines
735 B
OpenSCAD
27 lines
735 B
OpenSCAD
|
module house(roof="flat",paint=[1,0,0]){
|
||
|
color(paint)
|
||
|
if(roof=="flat"){
|
||
|
translate([0,-1,0])
|
||
|
cube();
|
||
|
} else if(roof=="pitched"){
|
||
|
rotate([90,0,0])
|
||
|
linear_extrude(height=1)
|
||
|
polygon(points=[[0,0],[0,1],[0.5,1.5],[1,1],[1,0]],paths=[ [0,1,2,3,4] ]);
|
||
|
} else if(roof=="domical"){
|
||
|
translate([0,-1,0])
|
||
|
union(){
|
||
|
translate([0.5,0.5,1]) sphere(r=0.5,$fn=20);
|
||
|
cube();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
union(){
|
||
|
house();
|
||
|
translate([2,0,0]) house("pitched");
|
||
|
translate([4,0,0]) house("domical",[0,1,0]);
|
||
|
translate([6,0,0]) house(roof="pitched",paint=[0,0,1]);
|
||
|
translate([8,0,0]) house(paint=[0,0,0],roof="pitched");
|
||
|
translate([10,0,0]) house(roof="domical");
|
||
|
translate([12,0,0]) house(paint=[0,0.5,0.5]);
|
||
|
}
|