116 lines
3.5 KiB
OpenSCAD
116 lines
3.5 KiB
OpenSCAD
/*
|
|
* 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 --
|