Add spool drivers. Polished animations. Added animation export.
This commit is contained in:
+63
-6
@@ -9,7 +9,6 @@ include <anim.scad>
|
||||
tape_height=5;
|
||||
tape_z=4;
|
||||
|
||||
|
||||
module reader(disk_size) {
|
||||
width=disk_size.x;
|
||||
depth=disk_size.y;
|
||||
@@ -32,6 +31,15 @@ module reader(disk_size) {
|
||||
up(corner)
|
||||
color("Red")
|
||||
fwd(laser_cutout_size.y/3) cube(laser_size, center=true);
|
||||
|
||||
beam_anim=anim(ANIM_PLAYING(), ANIM_PLAYING()+1);
|
||||
if (beam_anim > 0 && beam_anim < 1) {
|
||||
color("red")
|
||||
up(get_holodisk_laserwindow_size().x/4)
|
||||
yrot(beam_anim*1234)
|
||||
xrot(90)
|
||||
cylinder(h=get_holodisk_laserwindow_size().y, d=get_holodisk_laserwindow_size().x/4, $fn=3);
|
||||
}
|
||||
}
|
||||
|
||||
module laser_tower(corner=1) {
|
||||
@@ -69,15 +77,62 @@ module reader(disk_size) {
|
||||
}
|
||||
}
|
||||
|
||||
spindle_driver_shaft_diam = get_holodisk_spool_spindle_connection_driver_size().x;
|
||||
module spindle_driver_shaft() {
|
||||
h=10; // TODO
|
||||
down(h) cylinder(d=spindle_driver_shaft_diam, h=h, $fn=100);
|
||||
}
|
||||
|
||||
module spindle_driver() {
|
||||
union() {
|
||||
holodisk_spool_spindle_connection_driver();
|
||||
spindle_driver_shaft();
|
||||
}
|
||||
}
|
||||
|
||||
module spindle_driver_space() {
|
||||
s=get_holodisk_spool_spindle_connection_driver_size();
|
||||
down(0.01) scale(1.01) cylinder(d=s.x, h=s.z, $fn=100);
|
||||
}
|
||||
|
||||
anim_spindle_rot=100;
|
||||
module spindle1_driver() {
|
||||
translate(get_holodisk_spool1_socket_pos_center())
|
||||
zrot(anim(ANIM_PLAYING(), ANIM_PLAYING()+1)*anim_spindle_rot)
|
||||
spindle_driver();
|
||||
}
|
||||
|
||||
module spindle1_driver_space() {
|
||||
translate(get_holodisk_spool1_socket_pos_center())
|
||||
spindle_driver_space();
|
||||
}
|
||||
|
||||
module spindle2_driver() {
|
||||
translate(get_holodisk_spool2_socket_pos_center())
|
||||
zrot(anim(ANIM_PLAYING(), ANIM_PLAYING()+1)*anim_spindle_rot)
|
||||
spindle_driver();
|
||||
}
|
||||
|
||||
module spindle2_driver_space() {
|
||||
translate(get_holodisk_spool2_socket_pos_center())
|
||||
spindle_driver_space();
|
||||
}
|
||||
|
||||
//head();
|
||||
|
||||
retraction=laser_tower_size.z;
|
||||
down(retraction)
|
||||
up(anim(2, 3)*retraction)
|
||||
down(anim(5, 6)*retraction)
|
||||
translate(laser_pos) {
|
||||
laser();
|
||||
laser_tower();
|
||||
up(anim(ANIM_RAISING(), ANIM_RAISING()+1)*retraction)
|
||||
down(anim(ANIM_LOWERING(), ANIM_LOWERING()+1)*retraction)
|
||||
union() {
|
||||
translate(laser_pos) {
|
||||
laser();
|
||||
laser_tower();
|
||||
}
|
||||
color("yellow") {
|
||||
spindle1_driver();
|
||||
spindle2_driver();
|
||||
}
|
||||
}
|
||||
|
||||
color("DarkSlateBlue") {
|
||||
@@ -88,6 +143,8 @@ module reader(disk_size) {
|
||||
down(frame) difference() {
|
||||
fwd(frame) cube([width, depth + frame, frame]);
|
||||
scale(1.01) down(0.01) laser_space();
|
||||
scale([1,1,5]) spindle1_driver_space();
|
||||
scale([1,1,5]) spindle2_driver_space();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user