filament-counter/openscad/spool_holder.scad
2021-06-27 16:01:56 +03:00

37 lines
993 B
OpenSCAD

thickness = 5;
hole_rad = 5;
spool_rad = 150;
square_size = spool_rad + hole_rad * 4;
triangle_rad = square_size * 2 / 3;
filament_width = 10;
filament_height = 20;
filament_offset = 2;
// -1 = Left; 1 = Right
side = -1;
difference()
{
// Base Shape
union()
{
translate([square_size / 2 * side, 0, 0])
cube([square_size, square_size, thickness], center = true);
translate([0, -square_size / 6, 0])
rotate([0, 0, -30])
cylinder(thickness, triangle_rad, triangle_rad, $fn = 3, center = true);
}
// Holes
for (i = [0:1:2])
{
translate([0, -square_size / 6, 0])
rotate(-30 + i*120)
translate([triangle_rad - hole_rad * 3, 0, 0])
cylinder(thickness + 2, hole_rad, hole_rad, $fn = 360, center = true);
}
// Filament Sensor
translate([square_size * side - side * (filament_width / 2 + filament_offset), square_size / 2 - filament_height / 2, thickness / 2])
cube([filament_width, filament_height, thickness], center = true);
}