module cavity2(n=1, pitch=17.3, d1=13, d2=17, plate=0) {
bot = path_merge_collinear(union([
for(i = [0 : 1 : n]) union([
- move([0,i*pitch], hexagon(d=13)),
- if(i!=n) move([0,(i*pitch)+(pitch/2)], square([7.5,pitch/2], center=true))
+ move([0,i*pitch], hexagon(d=10.2)),
+ if(i!=n) move([0,(i*pitch)+(pitch/2)], square([5.1,pitch/2], center=true))
])
]));
top = path_merge_collinear(union([
for(i = [0 : 1 : n]) union([
- move([0,i*pitch], hexagon(d=17)),
- if(i!=n) move([0,(i*pitch)+(pitch/2)], square([8.5,pitch/2], center=true))
+ move([0,i*pitch], hexagon(d=17.2)),
+ if(i!=n) move([0,(i*pitch)+(pitch/2)], square([8.6,pitch/2], center=true))
])
]));
- //region(bot);
+ //!union() { region(bot); right(20) region(top); }
if(plate != 0) translate([0,0,15]) mold_plate(n=n, d=23, h=plate);
- for(i = [0 : 1 : n]) translate([-4,i*pitch,1]) sphere(1); //drain hole
+ for(i = [0 : 1 : n]) translate([-3.5,i*pitch,1]) rotate([0,0,30]) cylinder(d1=1, d2=2.5, h=3, center=true); //drain hole
difference() {
- translate([0,0,8]) rounded_prism(bot, top, height=14, joint_top=-0.5, joint_bot=0.5, joint_sides=1, splinesteps=$fn, anchor="origin"); //pothole
+ translate([0,0,8]) rounded_prism(bot, top, height=14, joint_top=-0.7, joint_bot=2.5, joint_sides=1, splinesteps=$fn, anchor="origin"); //pothole
for(i = [0 : 1 : n])
translate([-3,i*pitch,-2]) scale([1,0.9,1.22]) rotate([0,90,0]) rotate([0,0,30]) cylinder(d1=5, d2=38, h=15); //balcony clearance
}
+
}
module planter2(hollow=1, n=1, pitch=17.3, d1=20, di=16.5) {
planter2(hollow=0, n=units);
translate([-4,0,0]) cube([0.05,100,50], center=true); //split mold
}
- translate([0,0,1]) cavity2(n=units, plate=0.4);
+ translate([0,0,1]) cavity2(n=units, plate=0.35);
}
mold_screws(n=units);
}
//!mold_screws(n=1);
//!cavity2(n=1);
//!planter2(n=1);
-//!projection() rotate([90,0,0]) translate([-4,-17.3/2,0]) cavity2(n=1); //middle profile
+//!for(i = [0 : 1: 1]) projection(cut=true) rotate([90,0,0]) translate([-4,0,i*15]) planter2(n=1); //pot profile
+//!projection(cut=true) rotate([90,0,0]) translate([-4,-17.3/2,0]) planter2(n=1); //middle profile
//!for(i = [0:1:2]) translate([0,0,i*15]) planter2(n=3-i); //pyramid stack
//!for(i = [0:1:2]) translate([i*23,0,0]) planter2(n=i); //testers
mold_final(1);