Extracted and polished tape spool

This commit is contained in:
Dejvino
2020-12-31 14:15:57 +01:00
parent 171eff19e0
commit 6908a1441e
2 changed files with 90 additions and 40 deletions
+8 -40
View File
@@ -7,6 +7,7 @@ use <holodisk_spec.scad>
use <anim.scad>
include <tape.scad>
use <tape_spool.scad>
disk_size = get_holodisk_size();
holodisk_size = get_holodisk_size();
@@ -235,7 +236,7 @@ module frame(size) {
module laserwindow_slider_cover() {
cover_size=[
get_holodisk_laserwindow_size().x,
rails_size.y + overlap*2,
get_holodisk_slide_slider_size().x,
get_holodisk_slide_slider_size().z
];
cover_plate=[cover_size.x, rail_size.y, cover_size.z];
@@ -247,7 +248,7 @@ module frame(size) {
translate(cover_pos)
hull() {
fwd(cover_plate.y) cube(cover_plate);
fwd(cover_top.y) up((cover_plate.z-cover_top.z)/2) cube(cover_top);
right(overlap/2) fwd(cover_top.y) up((cover_plate.z-cover_top.z)/2) cube(cover_top);
}
}
@@ -270,52 +271,19 @@ module mechanism(size) {
depth=size.y;
height=size.z;
module spool(r_in, r_out, in_rim, out_rim) {
module spindle(d, h) {
color("Sienna") cylinder(h=h, d=d);
}
module spool_plate() {
difference() {
cylinder(h=spool_plate_height, r=r_out);
if (!$preview && r_out - r_in > out_rim) {
angle=spool_plate_hole_angle;
difference() {
for (i = [1:spool_plate_holes]) {
zrot(360/spool_plate_holes * i) {
angle_pie_mask(r=r_out - out_rim, l=spool_plate_height, ang=angle, center=false);
}
}
cylinder(h=spool_plate_height, r=r_in + in_rim);
}
}
}
}
spindle_h=height-plate;
difference() {
color("Azure") {
spool_plate();
up(spool_plate_height) cylinder(h=spool_inner_height, r=r_in);
up(spool_plate_height + spool_inner_height) spool_plate();
}
up(spool_plate_height + spool_inner_height/2) cube([r_in*2, spool_slit_depth, spool_inner_height], center=true);
// TODO: spindle height
spindle(d=spindle_diam+spindle_diam_tolerance, h=spindle_h);
}
spindle(d=spindle_diam, h=spindle_h);
}
module main_spool() {
spool(r_in=spool_inner_radius,
r_out=spool_outer_radius,
in_rim=spool_plate_hole_inner_rim,
out_rim=spool_plate_hole_outer_rim);
out_rim=spool_plate_hole_outer_rim,
in_height=spool_inner_height);
}
module aux_spool() {
spool(r_in=middle_spool_in_r, r_out=middle_spool_out_r,
in_rim=aux_spool_plate_hole_inner_rim,
out_rim=aux_spool_plate_hole_outer_rim);
out_rim=aux_spool_plate_hole_outer_rim,
in_height=spool_inner_height,
spokes=4);
}
module spools() {