// flowerpot , squareish to max out a printers bed size // cant get to host so i'll just redesign it better // buZz 2022 // configurable this time? printermaxXY = 100; // yes, has to be always square printermaxZ = 100; // wall thickness of pot ( or so i hope ) wallthickness = 2; // radius of rounded edges roundededge = 10; // how pointy is the lower part styleoffset = 1.33; // just to play it safe for now, might set it to 0 sometime , only for x/y safetymargin = 0; // calculate the offsets topsideoffset = printermaxXY - (roundededge*2) - safetymargin; bottomsideoffset = (printermaxXY * 0.8) - (roundededge*2) - safetymargin; // 0.7 is another styleoffset, hardcoded for now though topZoffset = printermaxZ - (roundededge*2) - (roundededge*styleoffset); hull() { // draw the bottom side sphere(roundededge); translate([bottomsideoffset,0,0]) sphere(roundededge); translate([bottomsideoffset,bottomsideoffset,0]) sphere(roundededge); translate([0,bottomsideoffset,0]) sphere(roundededge); // draw the pointy lower part translate([roundededge/2,roundededge/2,-(roundededge*styleoffset)]) linear_extrude(wallthickness) offset(roundededge) square([bottomsideoffset-roundededge,bottomsideoffset-roundededge]); // draw the topside translate([-(topsideoffset-bottomsideoffset)/2,-(topsideoffset-bottomsideoffset)/2,topZoffset]) union() { translate([0,0,0]) sphere(roundededge); translate([topsideoffset,0,0]) sphere(roundededge); translate([topsideoffset,topsideoffset,0]) sphere(roundededge); translate([0,topsideoffset,0]) sphere(roundededge); } }