Tied sliding mechanism to the laser cover
This commit is contained in:
parent
700dc62f38
commit
c25bf961e5
@ -31,19 +31,18 @@ module holodisk_mechanism() {
|
|||||||
spool_plate_holes=3;
|
spool_plate_holes=3;
|
||||||
spool_plate_hole_inner_rim=1;
|
spool_plate_hole_inner_rim=1;
|
||||||
spool_plate_hole_outer_rim=4;
|
spool_plate_hole_outer_rim=4;
|
||||||
spool1_depth=disk_size.y*0.77;
|
spool1_depth=get_holodisk_spool1_socket_pos_center().y;
|
||||||
spool2_depth=disk_size.y*0.40;
|
spool2_depth=get_holodisk_spool2_socket_pos_center().y;
|
||||||
spool3_depth=(spool1_depth+spool2_depth)/2;
|
spool3_depth=(spool1_depth+spool2_depth)/2;
|
||||||
spool4_depth=disk_size.y*0.16;
|
spool4_depth=disk_size.y*0.16;
|
||||||
main_spools_x=disk_size.x*0.45;
|
main_spools_x=get_holodisk_spool1_socket_pos_center().x;
|
||||||
aux_spools_right_x=main_spools_x + spool_outer_radius + 1;
|
aux_spools_right_x=main_spools_x + spool_outer_radius + 1;
|
||||||
aux_spools_left_x=main_spools_x - 13;
|
aux_spools_left_x=main_spools_x - 13;
|
||||||
middle_spool_in_r=2;
|
middle_spool_in_r=2;
|
||||||
middle_spool_out_r=7;
|
middle_spool_out_r=7;
|
||||||
aux_spool_plate_hole_inner_rim=2;
|
aux_spool_plate_hole_inner_rim=2;
|
||||||
aux_spool_plate_hole_outer_rim=2;
|
aux_spool_plate_hole_outer_rim=2;
|
||||||
spindle_diam=2;
|
spindle_diam=get_holodisk_spools_spindle_diam();
|
||||||
spindle_diam_tolerance=0.2;
|
|
||||||
tape_z=plate+spool_plate_height;
|
tape_z=plate+spool_plate_height;
|
||||||
|
|
||||||
module main_spool() {
|
module main_spool() {
|
||||||
@ -51,7 +50,8 @@ module holodisk_mechanism() {
|
|||||||
r_out=spool_outer_radius,
|
r_out=spool_outer_radius,
|
||||||
in_rim=spool_plate_hole_inner_rim,
|
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);
|
in_height=spool_inner_height,
|
||||||
|
spindle_traction=true);
|
||||||
}
|
}
|
||||||
module aux_spool() {
|
module aux_spool() {
|
||||||
spool(r_in=middle_spool_in_r, r_out=middle_spool_out_r,
|
spool(r_in=middle_spool_in_r, r_out=middle_spool_out_r,
|
||||||
|
@ -4,6 +4,7 @@ use <BOSL/transforms.scad>
|
|||||||
use <BOSL/masks.scad>
|
use <BOSL/masks.scad>
|
||||||
|
|
||||||
use <holodisk_spec.scad>
|
use <holodisk_spec.scad>
|
||||||
|
use <tape_spool.scad>
|
||||||
use <anim.scad>
|
use <anim.scad>
|
||||||
|
|
||||||
module holodisk_frame() {
|
module holodisk_frame() {
|
||||||
@ -171,14 +172,20 @@ module holodisk_frame() {
|
|||||||
translate(slider_pos) cube(slider_plate_size);
|
translate(slider_pos) cube(slider_plate_size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module slider_anim() {
|
||||||
|
back(anim(1,2)*get_holodisk_slide_slider_travel()) // anim insert
|
||||||
|
fwd(anim(5,6)*get_holodisk_slide_slider_travel()) // anim remove
|
||||||
|
slider();
|
||||||
|
}
|
||||||
|
|
||||||
right(get_holodisk_size().x) {
|
right(get_holodisk_size().x) {
|
||||||
slide();
|
slide();
|
||||||
slider();
|
slider_anim();
|
||||||
}
|
}
|
||||||
scale([-1,1,1]) {
|
scale([-1,1,1]) {
|
||||||
slide();
|
slide();
|
||||||
slider();
|
slider_anim();
|
||||||
}
|
}
|
||||||
|
|
||||||
right(get_holodisk_laserwindow_pos_center().x) zrot(-90) {
|
right(get_holodisk_laserwindow_pos_center().x) zrot(-90) {
|
||||||
@ -188,6 +195,35 @@ module holodisk_frame() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module sliding_cover() {
|
||||||
|
thickness=1;
|
||||||
|
overlap=2;
|
||||||
|
cover_size=[
|
||||||
|
get_holodisk_size().x+thickness*2,
|
||||||
|
get_holodisk_laser_cutout_size().y+overlap*2,
|
||||||
|
thickness
|
||||||
|
];
|
||||||
|
cover_posc=[
|
||||||
|
get_holodisk_laser_cutout_pos_center().x,
|
||||||
|
get_holodisk_laser_cutout_pos_center().y,
|
||||||
|
cover_size.z/2
|
||||||
|
];
|
||||||
|
cover_side_size=[thickness, cover_size.y, get_holodisk_slide_slider_pos().z];
|
||||||
|
cover_side_left_posd=[-cover_size.x/2+thickness/2, 0, cover_side_size.z/2];
|
||||||
|
cover_side_right_posd=[cover_size.x/2-thickness/2, 0, cover_side_size.z/2];
|
||||||
|
translate(cover_posc) {
|
||||||
|
cube(cover_size, center=true);
|
||||||
|
translate(cover_side_left_posd) cube(cover_side_size, center=true);
|
||||||
|
translate(cover_side_right_posd) cube(cover_side_size, center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module sliding_cover_anim() {
|
||||||
|
back(anim(1,2)*get_holodisk_slide_slider_travel()) // anim insert
|
||||||
|
fwd(anim(5,6)*get_holodisk_slide_slider_travel()) // anim remove
|
||||||
|
sliding_cover();
|
||||||
|
}
|
||||||
|
|
||||||
module laserwindow_door() {
|
module laserwindow_door() {
|
||||||
door_size = [
|
door_size = [
|
||||||
get_holodisk_laserwindow_size().x,
|
get_holodisk_laserwindow_size().x,
|
||||||
@ -209,7 +245,15 @@ module holodisk_frame() {
|
|||||||
back_bumpers();
|
back_bumpers();
|
||||||
square([width, depth]);
|
square([width, depth]);
|
||||||
}
|
}
|
||||||
|
// laser cutout
|
||||||
down(0.1) translate(get_holodisk_laser_cutout_pos()) cube(get_holodisk_laser_cutout_size());
|
down(0.1) translate(get_holodisk_laser_cutout_pos()) cube(get_holodisk_laser_cutout_size());
|
||||||
|
// sliding cover
|
||||||
|
sliding_cover();
|
||||||
|
back(get_holodisk_slide_slider_travel()*0.5) sliding_cover();
|
||||||
|
back(get_holodisk_slide_slider_travel()) sliding_cover();
|
||||||
|
// spool spindles
|
||||||
|
translate(get_holodisk_spool1_socket_pos_center()) spindle(h=height, d=get_holodisk_spools_spindle_diam());
|
||||||
|
translate(get_holodisk_spool2_socket_pos_center()) spindle(h=height, d=get_holodisk_spools_spindle_diam());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258,6 +302,7 @@ module holodisk_frame() {
|
|||||||
color("grey") walls();
|
color("grey") walls();
|
||||||
color("gold") laserwindow_door();
|
color("gold") laserwindow_door();
|
||||||
color("Silver") slides();
|
color("Silver") slides();
|
||||||
|
color("Silver") sliding_cover_anim();
|
||||||
color("SaddleBrown") bottom_cover();
|
color("SaddleBrown") bottom_cover();
|
||||||
color("SaddleBrown") front_plates();
|
color("SaddleBrown") front_plates();
|
||||||
//color("silver") back_bolts();
|
//color("silver") back_bolts();
|
||||||
|
@ -21,7 +21,7 @@ function get_holodisk_tape_thickness() = 0.2;
|
|||||||
spz = 8;
|
spz = 8;
|
||||||
function get_holodisk_slide_size() = [2, 35, get_holodisk_size().z - spz];
|
function get_holodisk_slide_size() = [2, 35, get_holodisk_size().z - spz];
|
||||||
|
|
||||||
function get_holodisk_slide_pos() = [0, 15, spz/2];
|
function get_holodisk_slide_pos() = [0, 6, spz/2];
|
||||||
|
|
||||||
sy = 2;
|
sy = 2;
|
||||||
sz = 4;
|
sz = 4;
|
||||||
@ -31,9 +31,12 @@ function get_holodisk_slide_sliding_pos() = [get_holodisk_slide_pos().x, get_hol
|
|||||||
|
|
||||||
srx = 2;
|
srx = 2;
|
||||||
srz = 2;
|
srz = 2;
|
||||||
function get_holodisk_slide_slider_size() = [get_holodisk_slide_size().x + srx, 15, get_holodisk_slide_size().z + srz];
|
function get_holodisk_slide_slider_size() = [get_holodisk_slide_size().x + srx, 13, get_holodisk_slide_size().z + srz];
|
||||||
|
|
||||||
function get_holodisk_slide_slider_pos() = [get_holodisk_slide_sliding_pos().x, get_holodisk_slide_sliding_pos().y + 5, get_holodisk_slide_sliding_pos().z - get_holodisk_slide_slider_size().z/2 + srz];
|
sliding_reserve=3;
|
||||||
|
function get_holodisk_slide_slider_pos() = [get_holodisk_slide_sliding_pos().x, get_holodisk_slide_sliding_pos().y + sliding_reserve, get_holodisk_slide_sliding_pos().z - get_holodisk_slide_slider_size().z/2 + srz];
|
||||||
|
|
||||||
|
function get_holodisk_slide_slider_travel() = get_holodisk_slide_sliding_size().y - get_holodisk_slide_slider_size().y - 2*sliding_reserve;
|
||||||
|
|
||||||
// -- laser --
|
// -- laser --
|
||||||
|
|
||||||
@ -69,4 +72,20 @@ function get_holodisk_laserwindow_size() = [
|
|||||||
get_holodisk_tape_height() + 2
|
get_holodisk_tape_height() + 2
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// -- spools --
|
||||||
|
|
||||||
|
function get_holodisk_spool1_socket_pos_center() = [
|
||||||
|
get_holodisk_size().x*0.45,
|
||||||
|
get_holodisk_size().y*0.77,
|
||||||
|
0
|
||||||
|
];
|
||||||
|
|
||||||
|
function get_holodisk_spool2_socket_pos_center() = [
|
||||||
|
get_holodisk_spool1_socket_pos_center().x,
|
||||||
|
get_holodisk_size().y*0.40,
|
||||||
|
0
|
||||||
|
];
|
||||||
|
|
||||||
|
function get_holodisk_spools_spindle_diam() = 3;
|
||||||
|
|
||||||
// -- END --
|
// -- END --
|
||||||
|
Loading…
Reference in New Issue
Block a user