|
|
|
@ -1,5 +1,7 @@
@@ -1,5 +1,7 @@
|
|
|
|
|
angle = 10; |
|
|
|
|
raise = 10; |
|
|
|
|
angle = 20; |
|
|
|
|
axle_dia = 4; |
|
|
|
|
axle_len = 40; |
|
|
|
|
raise = 0; |
|
|
|
|
tunnel_w = 160; |
|
|
|
|
tunnel_h = 160; |
|
|
|
|
tunnel_t = 10; // tunnel thickness |
|
|
|
@ -7,7 +9,7 @@ tunnel_s = 40; // tunnel spacing: overlap for screws
@@ -7,7 +9,7 @@ tunnel_s = 40; // tunnel spacing: overlap for screws
|
|
|
|
|
door_t = 50; // door thickness |
|
|
|
|
plexy_t = 6; // thickness of plexy glass sheet |
|
|
|
|
gap = 1; // gap between parts moving relative to each other |
|
|
|
|
seal = 5; // thickness of seal. May be set to gap |
|
|
|
|
seal = 1; // thickness of seal. May be set to gap |
|
|
|
|
guide_h = 40; |
|
|
|
|
bearing_inner_dia = 10; |
|
|
|
|
bearing_outer_dia = 20; |
|
|
|
@ -57,8 +59,17 @@ module tunnel(){
@@ -57,8 +59,17 @@ module tunnel(){
|
|
|
|
|
tunnel_core(); |
|
|
|
|
translate(-y*(door_t+tunnel_t)/2) cube([tunnel_w+2*tunnel_s,tunnel_t,tunnel_h+2*tunnel_s],true); // krempe |
|
|
|
|
translate( y*(door_t+tunnel_t)/2) cube([tunnel_w+2*tunnel_s,tunnel_t,tunnel_h+2*tunnel_s],true); // krempe |
|
|
|
|
translate((tunnel_t+tunnel_h)/-2*z) hull(){ |
|
|
|
|
cube([bearing_h,tunnel_h,tunnel_t],true); |
|
|
|
|
cube([tunnel_w+2*tunnel_t,door_t+2*tunnel_t,tunnel_t],true); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
cube([tunnel_w,door_t+2*tunnel_t+2,tunnel_h],true); // öffnung |
|
|
|
|
translate((tunnel_h+bearing_outer_dia-gap)/-2*z)cube([bearing_h+2*gap,bearing_outer_dia,bearing_outer_dia],true); |
|
|
|
|
translate(z*(sheet_h-rad)/2){ |
|
|
|
|
translate( x*(tunnel_t+(tunnel_w-axle_len)/2)) rotate(y*90) cylinder(d=axle_dia+gap,h=axle_len+gap,center=true); // axle |
|
|
|
|
translate(-x*(tunnel_t+(tunnel_w-axle_len)/2)) rotate(y*90) cylinder(d=axle_dia+gap,h=axle_len+gap,center=true); // axle |
|
|
|
|
} |
|
|
|
|
cube([tunnel_w,door_t+2*tunnel_t+2,tunnel_h],true); // loch |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -110,6 +121,14 @@ module stopper(){
@@ -110,6 +121,14 @@ module stopper(){
|
|
|
|
|
bearing(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
module axles(){ |
|
|
|
|
translate(z*(sheet_h-rad)/2){ |
|
|
|
|
translate( x*(tunnel_t+(tunnel_w-axle_len)/2)) rotate(y*90) cylinder(d=axle_dia,h=axle_len,center=true); // axle |
|
|
|
|
translate(-x*(tunnel_t+(tunnel_w-axle_len)/2)) rotate(y*90) cylinder(d=axle_dia,h=axle_len,center=true); // axle |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
module flap(){ |
|
|
|
|
translate(z*(sheet_h-rad)/2) rotate(x*angle) { |
|
|
|
|
difference(){ |
|
|
|
@ -117,6 +136,8 @@ module flap(){
@@ -117,6 +136,8 @@ module flap(){
|
|
|
|
|
sheets(); |
|
|
|
|
translate([tunnel_w/ 4,0,rad/-2])screw(); |
|
|
|
|
translate([tunnel_w/-4,0,rad/-2])screw(); |
|
|
|
|
translate(-x*(tunnel_t+(tunnel_w-axle_len)/2)) rotate(y*90) cylinder(d=axle_dia+gap,h=axle_len+2*gap,center=true); |
|
|
|
|
translate( x*(tunnel_t+(tunnel_w-axle_len)/2)) rotate(y*90) cylinder(d=axle_dia+gap,h=axle_len+2*gap,center=true); |
|
|
|
|
} |
|
|
|
|
color(plexy) difference(){ |
|
|
|
|
union(){ |
|
|
|
@ -134,7 +155,7 @@ module flap(){
@@ -134,7 +155,7 @@ module flap(){
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
door(); |
|
|
|
|
*door(); |
|
|
|
|
tunnel(); |
|
|
|
|
flap(); |
|
|
|
|
|
|
|
|
|
axles(); |
|
|
|
|