|
|
@@ -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() { |
|
|
|