@@ -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(); | |||
} | |||
@@ -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, | |||
@@ -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(); | |||
} | |||
} | |||
} | |||