filament-counter-v2/openscad/spool_front.scad
2022-12-02 16:27:09 +02:00

71 lines
1.6 KiB
OpenSCAD

thick = 1.5;
size_x = 35;
size_y = 57.5;
size_z = 6.5 + thick;
size_block = 6;
// Radius of rotary encoder + radius of filament
rad_rot = 13.75;
rot_z = 4;
rad_fil = 1;
mount_x_dist = 7.5;
mount_y_dist = 17.5;
mount_hole = 1.5;
conn_x = 16;
conn_y_dist = 12;
conn_y = size_y - size_block/2 - rad_rot - mount_y_dist - conn_y_dist;
difference()
{
union()
{
difference()
{
// Main Block
cube([size_x, size_y, size_z], center = true);
// Hollow
translate([0, -(size_block - thick)/2, thick])
{
cube([size_x - 2 * thick, size_y - thick - size_block, size_z], center = true);
}
// Rotary Encoder
translate([0, size_y/2 - size_block/2 - rad_rot, thick])
{
cylinder(size_z, rad_rot, rad_rot, $fn = 360, center = true);
}
// Filament Hole
translate([0, size_y/2 - size_block/2, size_z/2 - rot_z])
{
rotate([0, 90, 0])
cylinder(size_x + 1, rad_fil, rad_fil, $fn = 360, center = true);
}
// Connector
translate([0, conn_y/2 - size_y/2 - 0.5, 0])
{
cube([conn_x, conn_y + 1, size_z + 1], center = true);
}
}
// Mounts
for (x = [-1:2:1])
{
translate([x * mount_x_dist, size_y/2 - size_block/2 - rad_rot - mount_y_dist, 0])
{
cylinder(size_z, mount_hole + 1, mount_hole + 1, $fn = 360, center = true);
}
}
}
// Mounting Holes
for (x = [-1:2:1])
{
translate([x * mount_x_dist, size_y/2 - size_block/2 - rad_rot - mount_y_dist, 0])
{
cylinder(size_z + 1, mount_hole, mount_hole, $fn = 360, center = true);
}
}
}