Skip to content

Instantly share code, notes, and snippets.

@scruss
Created March 29, 2026 00:40
Show Gist options
  • Select an option

  • Save scruss/f6e6276d3842071f45dfb641af55680d to your computer and use it in GitHub Desktop.

Select an option

Save scruss/f6e6276d3842071f45dfb641af55680d to your computer and use it in GitHub Desktop.
why did I design two different pepper grinder fillers in OpenSCAD?
// pepper funnel - scruss, 2021-12
// this is the one I actually use
$fn=360;
wall = 4; // 5;
grinder_dia = [23, 33]; // inside, outside
pot_dia = [45, 45 + wall];
eps = 0.1;
base = eps + wall / 2;
// ht = 30;
ht = (grinder_dia[1] + pot_dia[1]) / 2;
difference() {
translate([0, 0, -eps])rotate_extrude()hull() {
translate([pot_dia[1]/2, base])square(wall, center=true);
translate([grinder_dia[0]/2, base + ht])square(wall, center=true);
}
translate([0, 0, ht + 2 * wall / 3])linear_extrude(wall, center=true)difference() {
circle(d=4*pot_dia[1]);
circle(d=grinder_dia[0] - 6 * eps);
}
}
// pepper grinder filler - scruss, 2018-07
// I think I lost this one shortly after printing it
top_inside_diameter = 50;
bottom_outside_diameter = 22;
wall_thickness = 1;
$fn = 48;
module pt(x, y) {
translate([x, y])circle(d = wall_thickness);
}
module profile() {
union() {
hull() {
pt((top_inside_diameter + wall_thickness)/2, 0);
pt((top_inside_diameter + wall_thickness)/2, 2 * wall_thickness);
}
hull() {
pt((top_inside_diameter + wall_thickness)/2, 2 * wall_thickness);
pt((bottom_outside_diameter - wall_thickness)/2, 2 * wall_thickness + sin(85) * (top_inside_diameter + wall_thickness - bottom_outside_diameter + wall_thickness)/2);
}
hull() {
pt((bottom_outside_diameter - wall_thickness)/2, 2 * wall_thickness + sin(85) * (top_inside_diameter + wall_thickness - bottom_outside_diameter + wall_thickness)/2);
pt((bottom_outside_diameter - wall_thickness)/2, 4 * wall_thickness + sin(85) * (top_inside_diameter + wall_thickness - bottom_outside_diameter + wall_thickness)/2);
}
}
}
rotate_extrude()profile();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment