use <./common/common.scad>; PinD = 4.4; RollerD1 = 25.5; RollerD2 = 25; RollerH = 21; BrimD = 30; BrimH = 2; RollerVoidD1 = 20; RollerVoidD2 = 10; module guillotine_tape_roller () { difference() { union () { cylinder(r1 = R(RollerD1), r2 = R(RollerD2), h = RollerH, center = true, $fn = 100); translate([0, 0, -R(RollerH) + R(BrimH) ]) cylinder(r = R(BrimD), h = BrimH, center = true, $fn = 100); } cylinder(r = R(PinD), h = 50, center = true, $fn = 40); translate([0, 0, -R(RollerH) + 0.99]) cylinder(r1 = R(PinD + 2), r2 = R(PinD), h = 2, center = true, $fn = 40); translate([0, 0, 5]) difference () { cylinder(r = R(RollerVoidD1), h = RollerH, center = true, $fn = 100); cylinder(r = R(RollerVoidD2), h = RollerH + 1, center = true, $fn = 100); } } for (i = [0 : 3]) { rotate([0, 0, i*90]) translate([7, 0, 0]) cube([7.5, 3, RollerH], center = true); } } PART = "guillotine_tape_roller"; if (PART == "guillotine_tape_roller") { guillotine_tape_roller(); }