#declare legotop = union { cylinder { <0,0,0> <0,0.12,0> 0.3 } cylinder { <0,0,0> <0,0.15,0> 0.27 } torus { 0.27 0.03 translate 0.12*y } text { ttf "cyrvetic.ttf", "POVO", 0.03, 0 scale <0.18,0.28,1> rotate 90*x rotate -90*y translate <0.1,0.16,-0.2> } } //build-scale is in "lego units" so one unit is 5/16 inch. //at end is a scale to convert it to real size in inches #declare lego_4x2 = union { box { <0,0,0> <4,1.2,0.18> } box { <0,0,2> <4,1.2,1.82> } box { <0,0,0> <0.18,1.2,2> } box { <4,0,0> <3.82,1.2,2> } difference { //top, with holes in underside box { <0,1.02,0> <4,1.2,2> } cylinder { <0.5,0,0.5> <0.5,1.15,0.5> 0.15 } cylinder { <1.5,0,0.5> <1.5,1.15,0.5> 0.15 } cylinder { <2.5,0,0.5> <2.5,1.15,0.5> 0.15 } cylinder { <3.5,0,0.5> <3.5,1.15,0.5> 0.15 } cylinder { <0.5,0,1.5> <0.5,1.15,1.5> 0.15 } cylinder { <1.5,0,1.5> <1.5,1.15,1.5> 0.15 } cylinder { <2.5,0,1.5> <2.5,1.15,1.5> 0.15 } cylinder { <3.5,0,1.5> <3.5,1.15,1.5> 0.15 } } box { <1.96,0,0> <2.04,1.1,0.65> } box { <1.96,0,1.35> <2.04,1.1,2> } //three round tubes on underside of lego difference { cylinder { <1,0,1> <1,1.1,1> 0.4 } cylinder { <1,-1,1> <1,1.0,1> 0.3 } } difference { cylinder { <2,0,1> <2,1.1,1> 0.4 } cylinder { <2,-1,1> <2,1.0,1> 0.3 } } difference { cylinder { <3,0,1> <3,1.1,1> 0.4 } cylinder { <3,-1,1> <3,1.0,1> 0.3 } } //nibs on inside of box for grabbing lego tops cylinder { <0.18,0,0.5> <0.18,1.1,0.5> 0.04 } cylinder { <0.18,0,1.5> <0.18,1.1,1.5> 0.04 } cylinder { <3.82,0,0.5> <3.82,1.1,0.5> 0.04 } cylinder { <3.82,0,1.5> <3.82,1.1,1.5> 0.04 } cylinder { <0.5,0,0.18> <0.5,1.1,0.18> 0.04 } cylinder { <1.5,0,0.18> <1.5,1.1,0.18> 0.04 } cylinder { <2.5,0,0.18> <2.5,1.1,0.18> 0.04 } cylinder { <3.5,0,0.18> <3.5,1.1,0.18> 0.04 } cylinder { <0.5,0,1.82> <0.5,1.1,1.82> 0.04 } cylinder { <1.5,0,1.82> <1.5,1.1,1.82> 0.04 } cylinder { <2.5,0,1.82> <2.5,1.1,1.82> 0.04 } cylinder { <3.5,0,1.82> <3.5,1.1,1.82> 0.04 } //top of lego object { legotop translate <0.5,1.2,0.5> } object { legotop translate <1.5,1.2,0.5> } object { legotop translate <2.5,1.2,0.5> } object { legotop translate <3.5,1.2,0.5> } object { legotop translate <0.5,1.2,1.5> } object { legotop translate <1.5,1.2,1.5> } object { legotop translate <2.5,1.2,1.5> } object { legotop translate <3.5,1.2,1.5> } //reduce units to real lego size in inches scale 0.3125 }