From dc84b366ab97f74c740c4a5d90d45fb8b1cdcd18 Mon Sep 17 00:00:00 2001 From: Dejvino Date: Wed, 23 Dec 2020 18:56:19 +0100 Subject: [PATCH] Reader uses specs for laser pos. Holoview in holodisk. Improved side sliders. Added front plates. --- holodisk.scad | 36 ++++++++++++++++++++++++++++++++---- holodisk_spec.scad | 6 ++++-- reader.scad | 11 +++++++++-- 3 files changed, 45 insertions(+), 8 deletions(-) diff --git a/holodisk.scad b/holodisk.scad index 3eace35..30c9c3d 100755 --- a/holodisk.scad +++ b/holodisk.scad @@ -112,11 +112,38 @@ module frame(size) { module walls() { walls_height=height-plate*2; - up(plate) linear_extrude(height=walls_height) { - //back_bumpers(); - shell2d(thickness=-wall) { - square([width, depth]); + difference() { + up(plate) linear_extrude(height=walls_height) { + //back_bumpers(); + shell2d(thickness=-wall) { + square([width, depth]); + } } + translate(get_holodisk_laserwindow_pos_center()) cube(get_holodisk_laserwindow_size(), center=true); + } + } + + module front_plates() { + th = get_holodisk_front_plate_thickness(); + slide_pos = get_holodisk_slide_pos(); + offset=4.5; + plate_len_side=slide_pos.y - offset/2; + plate_len_left=plate_len_side/2; + plate_len_right=plate_len_left*3; + // front + fwd(th) left(th) up(offset) { + cube([plate_len_left / 2 + th*2, th, height - offset*2]); + } + fwd(th) right(width-plate_len_right-th) up(offset) { + cube([plate_len_right + th*2, th, height - offset*2]); + } + // left + fwd(th) left(th) up(offset) { + cube([th, plate_len_side, height - offset*2]); + } + // right + fwd(th) right(width) up(offset) { + cube([th, plate_len_side, height - offset*2]); } } @@ -169,6 +196,7 @@ module frame(size) { color("grey") walls(); color("Silver") slides(); color("SaddleBrown") bottom_cover(); + color("SaddleBrown") front_plates(); //color("silver") back_bolts(); //color("silver") front_bolts(); } diff --git a/holodisk_spec.scad b/holodisk_spec.scad index 81a726e..b438b98 100644 --- a/holodisk_spec.scad +++ b/holodisk_spec.scad @@ -7,6 +7,8 @@ function get_holodisk_size() = [55, 100, 16]; +function get_holodisk_front_plate_thickness() = 1; + // -- tape -- function get_holodisk_tape_height() = 5; @@ -28,11 +30,11 @@ 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_pos() = [get_holodisk_slide_sliding_pos().x, get_holodisk_slide_sliding_pos().y, get_holodisk_slide_sliding_pos().z - get_holodisk_slide_slider_size().z/2 + 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]; // -- laser -- -function get_holodisk_laser_cutout_size() = [15, 9, 20]; +function get_holodisk_laser_cutout_size() = [12, 9, 20]; function get_holodisk_laser_cutout_pos() = [ get_holodisk_size().x/2 - get_holodisk_laser_cutout_size().x/2, diff --git a/reader.scad b/reader.scad index e481166..bb8b52b 100755 --- a/reader.scad +++ b/reader.scad @@ -43,6 +43,10 @@ module reader(disk_size) { } } + module laser_space() { + translate(get_holodisk_laser_cutout_pos_center()) cube(get_holodisk_laser_cutout_size(), center=true); + } + module head_space() { /*stube=[head_size.x-head_frame*2, head_size.y+head_frame*3, head_size.z-head_frame*2]; up(head_size.z/4 + head_frame) @@ -65,7 +69,7 @@ module reader(disk_size) { } } - head(); + //head(); retraction=laser_tower_size.z; down(retraction) @@ -81,7 +85,10 @@ module reader(disk_size) { fwd(frame) cube([width, frame, height]); head_space(); } - fwd(frame) down(frame) cube([width, depth + frame, frame]); + down(frame) difference() { + fwd(frame) cube([width, depth + frame, frame]); + scale(1.01) down(0.01) laser_space(); + } } }