demo_slop = 0.1;
+leg_height = 62;
+
+leg_hole_dia = 5 + 0.75;
+leg_big_dia = 37;
+leg_bot_dia = 15;
+leg_top_flat_z = 5;
+leg_top_thick = 10;
+
+leg_midspc_dia = 20;
+leg_bot_thick = 10;
+
+leg_fin_top_w = 5;
+leg_fin_bot_w = 5;
+leg_fin_bot_rad = 30;
+leg_fin_bot_flat_z = 5;
+
+leg_n_fins = 4;
+leg_n_tubules = 4;
+leg_tubule_dia = 4;
+
// cutout
machine_rear_to_front = 84 + 0.25 - 1.4;
interlock_sq_adj = 0.2; // arbitrary
+leg_fin_top_rad = sqrt( pow(leg_big_dia/2,2) -
+ pow(leg_fin_top_w/2,2) );
+
+leg_tubule_pos_rad = leg_big_dia/2 * 0.6;
+
m4_define(`POST_TCROSSSZ',
`2*( tile_hard_edge_hole_dist - test_edge + 1 )')
MachineEnvelope();
cube(shufflesz, center=true);
}
+ if (JIG) {
+ translate([0,0,-20]) linear_extrude(height=20) {
+ for (diag=[[ +1, botleft ],
+ [ -1, [topright[0], botleft[1]] ]]) {
+ translate(diag[1])
+ rotate(atan2(size[1], diag[0] * size[0]))
+ translate([0, -test_edge/2])
+ square([vectorlen2d(size), test_edge]);
+ }
+ }
+ }
}
}
}
}
}
+module Leg(){ ////toplevel
+ difference(){
+ union(){
+ hull(){
+ mirror([0,0,1])
+ cylinder(r= leg_big_dia/2, height=leg_top_flat_z, $fn=100);
+ translate([0,0, -leg_top_thick])
+ cylinder(r= leg_bot_dia/2, height=1, $fn=100);
+ }
+ for (rot=[0: 360/leg_n_fins : 359]) rotate(rot) {
+ hull(){
+ mirror([0,0,1]) translate([0, -leg_fin_top_w/2, 0])
+ cube([ leg_fin_top_rad - 0.1,
+ leg_fin_top_w,
+ 1 ])
+ ;
+ translate([0, -leg_fin_bot_w/2, -leg_height])
+ cube([ leg_fin_bot_rad,
+ leg_fin_bot_w,
+ leg_fin_bot_flat_z ]);
+ }
+ }
+ }
+ mirror([0,0,1]) translate([0,0,-1])
+ cylinder(r= leg_hole_dia/2, h=leg_height+2, $fn=30);
+ mirror([0,0,1]) translate([0,0,leg_top_thick - 0.1])
+ cylinder(r= leg_midspc_dia/2,
+ h=leg_height - leg_top_thick - leg_bot_thick,
+ $fn=30);
+ for (rot=[45: 360/leg_n_tubules : 359]) rotate(rot) {
+ mirror([0,0,1]) translate([ leg_tubule_pos_rad, 0, -1])
+ cylinder(r= leg_tubule_dia/2, h=leg_height+2, $fn=20);
+ }
+ }
+}
+
function Rectangle_corners(c0, sz) =
// returns the corners of a rectangle from c0 to c0+sz
// if sz is positive, the corners are anticlockwise starting with c0