Skip to content

Instantly share code, notes, and snippets.

@johnty
Last active May 6, 2021 22:01
Show Gist options
  • Save johnty/c188bf254c7a0b7de04d4285aa9a3148 to your computer and use it in GitHub Desktop.
Save johnty/c188bf254c7a0b7de04d4285aa9a3148 to your computer and use it in GitHub Desktop.
parametric bellow, designed to be printed in TPU for single dosing espresso grinders
//Parametric Bellow designed for blowing out grinds in an espresso grinder
// Designed to be printed using TPU
// Tested on Ender 3 Pro (2019) with stock extruder and 91A TPU from filaments.ca
// 15mm all speeds 2mm retraction @ 15mm/s. 75C bed 230/227C extruder temps
// 3 shell perimeter
//
// [email protected]
// May 2021, Released under CC BY-SA 2.0 (http://creativecommons.org/licenses/by-sa/2.0/)
echo(version=version());
diameter = 58;
wall_t = 1.2;
b_h = 5;
b_w = 2.5;
lid_h = 0.8;
top_vert_h = 5;
bottom_vert_h = 10;
closed_top = true;
// rotate_extrude() always rotates the 2D shape 360 degrees
// around the Z axis. Note that the 2D shape must be either
// completely on the positive or negative side of the X axis.
module line(p1, p2, width) {
polygon([
p1, p2, [p2[0]+width, p2[1]], [p1[0]+width, p1[1]]
]);
}
module bellow(num) {
union() {
line([0,0], [0,top_vert_h], wall_t);
y_start = top_vert_h;
for (i=[0:num-1]) { //each iteration is a >
x1 = 0;
x2 = b_w;
x3 = 0;
y1 = y_start+(i*2)*b_h;
y2 = y1 + b_h;
y3 = y2 + b_h;
echo(i, y1, y2, y3);
line( [x1, y1], [x2, y2 ] , wall_t);
line( [x2, y2], [x3, y3 ] , wall_t);
y_start = y3;
}
top = y_start+2*num*b_h;
line([0,top], [0,top+bottom_vert_h], wall_t);
}
}
color("red")
union() {
if (closed_top)
cylinder(lid_h, diameter/2, diameter/2);
rotate_extrude($fn = 80)
translate([diameter/2-wall_t/2, 0])
bellow(4);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment