/* * Technical Specification for Wattz Electronics Holodisk (AKA Holotape or THT) * */ // -- core dimensions -- function get_holodisk_size() = [55, 100, 16]; function get_holodisk_bottom_thickness() = 3; function get_holodisk_front_plate_thickness() = 1; // -- tape -- function get_holodisk_tape_height() = 5; function get_holodisk_tape_thickness() = 0.2; // -- slide -- spz = 8; function get_holodisk_slide_size() = [2, 35, get_holodisk_size().z - spz]; function get_holodisk_slide_pos() = [0, 6, spz/2]; sy = 2; sz = 4; function get_holodisk_slide_sliding_size() = [get_holodisk_slide_size().x, get_holodisk_slide_size().y - sy, get_holodisk_slide_size().z - sz]; function get_holodisk_slide_sliding_pos() = [get_holodisk_slide_pos().x, get_holodisk_slide_pos().y + sy/2, get_holodisk_slide_pos().z + sz/2]; srx = 2; srz = 2; function get_holodisk_slide_slider_size() = [get_holodisk_slide_size().x + srx, 13, get_holodisk_slide_size().z + 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 -- 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, 12, 0]; function get_holodisk_laser_cutout_pos_center() = [ get_holodisk_laser_cutout_pos().x + get_holodisk_laser_cutout_size().x/2, get_holodisk_laser_cutout_pos().y + get_holodisk_laser_cutout_size().y/2, get_holodisk_laser_cutout_pos().z + get_holodisk_laser_cutout_size().z/2]; // -- laser-window -- function get_holodisk_laserwindow_pos() = [ get_holodisk_laserwindow_pos_center().x - get_holodisk_laserwindow_size().x/2, get_holodisk_laserwindow_pos_center().y - get_holodisk_laserwindow_size().y/2, get_holodisk_laserwindow_pos_center().z - get_holodisk_laserwindow_size().z/2, ]; function get_holodisk_laserwindow_pos_center() = [ get_holodisk_laser_cutout_pos_center().x, 0, 6.5 ]; function get_holodisk_laserwindow_size() = [ get_holodisk_laser_cutout_size().x, 30, 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; function get_holodisk_spool_spindle_connection_driver_size() = [ get_holodisk_spools_spindle_diam()-1, get_holodisk_spools_spindle_diam()-1, 3 ]; module holodisk_spool_spindle_connection_driver_profile() { circle(d=get_holodisk_spool_spindle_connection_driver_size().x, $fn=6); } *holodisk_spool_spindle_connection_driver_profile(); module holodisk_spool_spindle_connection_driver() { h=get_holodisk_spool_spindle_connection_driver_size().z; d=get_holodisk_spool_spindle_connection_driver_size().x; intersection() { linear_extrude(height=h, scale=0.8) { holodisk_spool_spindle_connection_driver_profile(); } cylinder(h=h*1.15, d1=d*1.15, d2=d/1.8, $fn=100); cylinder(h=h*1.1, d1=d*1.8, d2=d*0.45, $fn=100); } } *holodisk_spool_spindle_connection_driver(); // -- END --