Skip to content

Instantly share code, notes, and snippets.

@patagonaa
Last active February 28, 2026 19:41
Show Gist options
  • Select an option

  • Save patagonaa/be07b7a87ab6f58602f9cf3b50f9434c to your computer and use it in GitHub Desktop.

Select an option

Save patagonaa/be07b7a87ab6f58602f9cf3b50f9434c to your computer and use it in GitHub Desktop.
DIN 7867 PK Keilrippenriemen Riemenscheibe Keilrippenscheibe
$fn = $preview ? 32 : 128;
// DIN 7867 - 6K x 90
// Profilkurzzeichen "A"
a = 40; // Rillenwinkel
e = 3.56; // Rillenabstand (Mitte -> Mitte)
f = 2.50; // Rillenabstand (Mitte letzte Rille -> Scheibe)
ra = 0.25; // Radius außen (min. 0.25)
ri = 0.50; // Radius innen (max 0.5)
db = 90.0; // Bezugsdurchmesser
numGrooves = 6; // Anzahl Rillen
flatWidth = 2.0;
flatHeight = 7.0;
ridgeHeight = cos(a/2)*((e/2) / sin(a/2));
module rille()
{
intersection()
{
square([e/2, 50]);
union()
{
difference()
{
union()
{
translate([0,ri / sin(a/2)])
rotate([0,0,-a/2])
translate([-50,-100])
square([100, 100]);
polygon([
[0,0],
[e/2,ridgeHeight],
[e/2,0]
]);
}
translate([e/2, ridgeHeight - ra / sin(a/2)])
{
difference()
{
rotate([0,0,-a/2])
translate([-50,0])
square([100, 100]);
circle(r=ra);
}
}
translate([0,ri / sin(a/2)])
circle(r=ri);
}
}
}
}
lastRidgeWidth = f - e/2;
totalWidth = flatWidth+lastRidgeWidth + numGrooves * e + flatWidth+lastRidgeWidth;
rotate_extrude()
translate([0,totalWidth/2])
rotate([0,0,-90])
{
translate([0,db/2-ridgeHeight])
{
translate([flatWidth,0])
square([lastRidgeWidth, ridgeHeight - ra / sin(a/2) + ra]);
square([flatWidth, flatHeight]);
translate([flatWidth+lastRidgeWidth,0])
{
for(i = [0:1:numGrooves-1]){
translate([i * e + e/2, 0])
mirror([1,0,0])
rille();
translate([i * e +e/2, 0])
rille();
}
}
translate([flatWidth+lastRidgeWidth + numGrooves * e,0])
{
square([lastRidgeWidth, ridgeHeight - ra / sin(a/2) + ra]);
translate([lastRidgeWidth,0])
square([flatWidth, flatHeight]);
}
}
square([totalWidth, db/2-ridgeHeight]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment