rudo
[mirrors/Designs.git] / openscad / rudo.scad
CommitLineData
148163dd
TM
1//Model of infamous Beograd Rudo Buildings in Istočna Kapija Park (Serbia)
2
3fast=false; //disable slow features like windows...
4
5module rudo_module(xs=5, ys=4, zs=3, s=1, in=0.2, shrink=0) {
6 //jeden "blok" (patro) budovy
7
8 inb=0.15;
9 inx=0.5;
10
11 lsx=xs-(shrink*2);
12 lsy=ys-(shrink*2);
13 lsz=zs;
14 ssx=lsx-(in*2);
15 ssy=lsy-(in*2);
16 ssz=lsz;
17
18 rr=3;
19 rc=xs*ys*2;
20 randx=rands(-1,xs,rc+1);
21 randy=rands(-1,ys,rc+1);
22 randz=rands(0.3,1.8,rc+1);
23
24 translate([shrink,shrink,0]) difference() {
25 //Zakladni tvar patra
26 translate([-0.5,-0.5,-0.5]) cube([lsx,lsy,lsz]);
27
28 //Nahodne otevrena okna
29 if(!fast) difference() {
30 for(i = [0 : rc]) {
31 translate([
32 round(randx[i]*rr)/rr,
33 round(randy[i]*rr)/rr,
34 round(randz[i]/2)*1.5
35 ]) cube([1,1,0.6], center=true);
36 }
37
38 //Kostka ktera limituje hloubku oken
39 translate([in-0.5,in-0.5,-0.5]) cube([ssx,ssy,ssz]);
40 }
41
42 //celni sachty
43 translate([inb-1,ys/2-0.5,0]) cube([1,1,zs*3], center=true);
44 translate([xs-inb,ys/2-0.5,0]) cube([1,1,zs*3], center=true);
45
46 //rohy
47 if(shrink==0) {
48 translate([-0.5,-0.5,0]) cube([2*inx,2*inx,zs*3], center=true);
49 translate([-0.5,ys-0.5,0]) cube([2*inx,2*inx,zs*3], center=true);
50 translate([xs-0.5,-0.5,0]) cube([2*inx,2*inx,zs*3], center=true);
51 translate([xs-0.5,ys-0.5,0]) cube([2*inx,2*inx,zs*3], center=true);
52 }
53 }
54}
55
56module rudo_building() {
57 w=6;
58 translate([0,0.5-(w/2),0]) {
59 //sklep
60 translate([0,0,-2]) rudo_module(10,w,2, shrink=0.15, in=0.1);
61 translate([11,0,-2]) rudo_module(4,w,2, shrink=0.15, in=0.1);
62 //patra
63 translate([0,0,0]) rudo_module(15,w,3);
64 translate([0,0,3]) rudo_module(10,w,1, shrink=0.15);
65 translate([0,0,4]) rudo_module(10,w,3);
66 translate([0,0,7]) rudo_module(9,w,3);
67 translate([0,0,10]) rudo_module(8,w,3);
68 translate([0,0,13]) rudo_module(7,w,3);
69 translate([0,0,16]) rudo_module(6,w,3);
70 translate([1,0,19]) rudo_module(4,w,3);
71 //vytahova budka
72 translate([1.5,0,20]) cube([2,1.5,2]);
73 translate([1.5,w-2.5,20]) cube([2,1.5,2]);
74 }
75}
76
77module rudo_scene() {
78 //vsechny 3 budovy
79 for(r=[0,120,240]) rotate([0,0,r]) translate([7.5,0,2.5]) rudo_building();
80 difference() {
81 intersection() {
82 translate([0,0,-77]) sphere(r=80, $fn=100);
83 cylinder(r=16, h=3);
84 }
85 //napis
86 rotate([0,0,30]) translate([-12.5,3,0.3])
87 rotate([180,0,0]) linear_extrude(1) scale(0.5) text("HARVIE");
88 }
89}
90
91//!translate([0,-1,0]) rudo_module(7,3,3, shrink=0.2)
92//scale(2) rudo_building();
93
94scale(2) rudo_scene();
This page took 0.149911 seconds and 4 git commands to generate.