Working on Hopper Basket Print
The model is coming along slowly.
$fn = 100;
wallThickness = 3;
hopperHeight = 70;
hopperWidth = 70;
hopperThickness = 70;
holesX = 5; // number of holes in the x direction
holesY = 2; // number of holes in the y direction
holeRadius = 2;
holeSpacingX = 5;
holeSpacingY = 5;
p1 = [0, hopperHeight];
p2 = [2*hopperWidth, hopperHeight];
p3 = [2*hopperWidth, 0];
p4 = [hopperWidth, 0];
hopperDiagonalLength = sqrt(hopperHeight * hopperHeight + hopperWidth * hopperWidth);
arrayWidthX = (holeSpacingX - 1)*holesX/2;
arrayWidthY = (holeSpacingY - holeRadius)*holesY/2;
difference(){
rotate([90, 0, 0])
difference(){
// create the side of the hopper and extrude it
linear_extrude(hopperThickness, center = true) polygon([p1, p2, p3, p4]);
// create the side again, extrude it, then move it, then cut it away from the hopper
translate([wallThickness, wallThickness, 0]) linear_extrude(hopperThickness-2*wallThickness, center = true) polygon([p1, p2, p3, p4]);
}
// cut away cylindrical array
translate([hopperHeight/4, 0, hopperWidth*3/4]) rotate([0, 45, 0]) translate([-arrayWidthX, -arrayWidthY, 0]) cylindricalArray();
}
module cylindricalArray(){
for(i = [0: holesX-1]){
for(j = [0: holesY-1]){
translate([i*holeSpacingX, j*holeSpacingY, 0]) cylinder(wallThickness*4, holeRadius, holeRadius, center = true);
}
}
}