From c25bf961e53dd0a4668a8c8c2133a498d734c111 Mon Sep 17 00:00:00 2001 From: Dejvino Date: Fri, 25 Dec 2020 01:17:42 +0100 Subject: [PATCH] Tied sliding mechanism to the laser cover --- holodisk.scad | 12 +++++------ holodisk_frame.scad | 49 +++++++++++++++++++++++++++++++++++++++++++-- holodisk_spec.scad | 25 ++++++++++++++++++++--- 3 files changed, 75 insertions(+), 11 deletions(-) diff --git a/holodisk.scad b/holodisk.scad index 3cf62bf..b7c8e0f 100755 --- a/holodisk.scad +++ b/holodisk.scad @@ -31,19 +31,18 @@ module holodisk_mechanism() { spool_plate_holes=3; spool_plate_hole_inner_rim=1; spool_plate_hole_outer_rim=4; - spool1_depth=disk_size.y*0.77; - spool2_depth=disk_size.y*0.40; + spool1_depth=get_holodisk_spool1_socket_pos_center().y; + spool2_depth=get_holodisk_spool2_socket_pos_center().y; spool3_depth=(spool1_depth+spool2_depth)/2; 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_left_x=main_spools_x - 13; middle_spool_in_r=2; middle_spool_out_r=7; aux_spool_plate_hole_inner_rim=2; aux_spool_plate_hole_outer_rim=2; - spindle_diam=2; - spindle_diam_tolerance=0.2; + spindle_diam=get_holodisk_spools_spindle_diam(); tape_z=plate+spool_plate_height; module main_spool() { @@ -51,7 +50,8 @@ module holodisk_mechanism() { r_out=spool_outer_radius, in_rim=spool_plate_hole_inner_rim, out_rim=spool_plate_hole_outer_rim, - in_height=spool_inner_height); + in_height=spool_inner_height, + spindle_traction=true); } module aux_spool() { spool(r_in=middle_spool_in_r, r_out=middle_spool_out_r, diff --git a/holodisk_frame.scad b/holodisk_frame.scad index 6106308..fb9251a 100644 --- a/holodisk_frame.scad +++ b/holodisk_frame.scad @@ -4,6 +4,7 @@ use use use +use use module holodisk_frame() { @@ -171,14 +172,20 @@ module holodisk_frame() { 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) { slide(); - slider(); + slider_anim(); } scale([-1,1,1]) { slide(); - slider(); + slider_anim(); } 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() { door_size = [ get_holodisk_laserwindow_size().x, @@ -209,7 +245,15 @@ module holodisk_frame() { back_bumpers(); square([width, depth]); } + // laser cutout 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("gold") laserwindow_door(); color("Silver") slides(); + color("Silver") sliding_cover_anim(); color("SaddleBrown") bottom_cover(); color("SaddleBrown") front_plates(); //color("silver") back_bolts(); diff --git a/holodisk_spec.scad b/holodisk_spec.scad index ce40384..32d12d4 100644 --- a/holodisk_spec.scad +++ b/holodisk_spec.scad @@ -21,7 +21,7 @@ function get_holodisk_tape_thickness() = 0.2; spz = 8; 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; sz = 4; @@ -31,9 +31,12 @@ function get_holodisk_slide_sliding_pos() = [get_holodisk_slide_pos().x, get_hol srx = 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 -- @@ -69,4 +72,20 @@ function get_holodisk_laserwindow_size() = [ 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 --