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); } } }