rear_to_front_distance = 230; // rack cross rail (fam) to very front end
rear_to_cross_rail = 43.05; // bolt centre to rail centre, rail to rear
rear_bolt_to_front_bolt = 155.4;
-front_elevation_nominal = 3;
+front_elevation_nominal = 0; // this parameter adjusts rear too somehow?
cross_rail_distance = 232.09;
general_gap_y = 1.0;
+support_bridge_gap_z = 1.0;
strap_w = 8.0 + 1.0;
strap_th = 2.5;
brk_nearbolt_recess_dia = 8.86 + 1.5;
brk_nearbolt_recess_depth = 1.09 + 0.25;
+bolt_nut_around = 5;
+bolt_nut_around_y_extra = 3;
+
brk_bolt_eff_len = 11.78; // inside of recess, to end of bolt
brk_bolt_len_slop = 0.5;
brk_bolt_nut_th = 3.89;
circle(brk_nearbolt_recess_dia/2);
linextr_y_xz( -100, brk_bolt_nut_top_y ) {
- circle( r= brk_bolt_nut_r, $fn = 6 );
- translate([ 0, brk_bolt_nut_across_flats/2 ])
- circle( r=brk_bolt_nut_r/2, $fn = 4);
+ hull()
+ for (dz = [0, support_bridge_gap_z])
+ translate([0, dz])
+ circle( r= brk_bolt_nut_r, $fn = 6 );
}
}
}
module FamGraspElevation(){
- hull(){
- ybot = $rack_rail_y - rack_rail_dia/2 + grasp_large_r
- - fit_slope_len * 0.5;
- for (y = [
- ybot,
- adapt_main_top_y - grasp_large_r
- ])
- for (dx= [/*-1,*/ +1] * rack_rail_dia/2)
- translate([ -$foreaftmaint_rail_z + dx, y ])
- circle(r= grasp_large_r);
+ difference(){
+ hull(){
+ ybot = $rack_rail_y - rack_rail_dia/2 + grasp_large_r
+ - fit_slope_len * 0.5;
+ for (y = [
+ ybot,
+ adapt_main_top_y - grasp_large_r
+ ])
+ for (dx= [/*-1,*/ +1] * rack_rail_dia/2)
+ translate([ -$foreaftmaint_rail_z + dx, y ])
+ circle(r= grasp_large_r);
+ }
+ if ($foreaftmaint_cutoff) {
+ translate([ -$foreaftmaint_rail_z, 0 ])
+ rectfromto([-100, -100],
+ [0, 100]);
+ }
}
}
module FamStemElevation(){
hull(){
- rectfromto([ -$foreaftmaint_rail_z, adapt_main_top_y ],
+ rectfromto([ -$foreaftmaint_rail_z
+ , adapt_main_top_y ],
[ 0, block_y_min]);
translate([
-$foreaftmaint_rail_z,
}
FamLinextr(){
- if ($foreaftmaint_rail_z > foreaftmaint_top_block_zs[0] - bolt_z) {
+ if ($foreaftmaint_top_block) {
rectfromto([ -foreaftmaint_top_block_zs[0] + bolt_z, 0 ],
[ -foreaftmaint_top_block_zs[1] + bolt_z, block_y_min] );
}
$foreaftmaint_rail_z ])
cube(center=true, 100);
}
+
+ linextr_y_xz( block_y_min - bolt_nut_around_y_extra , adapt_main_top_y )
+ intersection(){
+ translate([ 0, brk_block_z/2 ])
+ circle(r = bolt_nut_around + brk_bolt_nut_r );
+ rectfromto([-100, 0], [+100,+100]);
+ }
}
RackShear() linextr(-10, main_sz_lhs_z+main_sz_rhs_z) {
}
module Front(){ ////toplevel
- // xxx elevation is wrong
+ rotate([180,0,0])
Principal($reverse_sign = -1,
+ $foreaftmaint_top_block = false,
+ $foreaftmaint_cutoff = true,
$elevation_nominal=
elevation_of_bolt_for(rear_to_cross_rail + rear_bolt_to_front_bolt),
$foreaftmaint_dz= front_to_cross_rail);
module Rear(){ ////toplevel
Principal($reverse_sign = +1,
+ $foreaftmaint_top_block = true,
+ $foreaftmaint_cutoff = false,
$elevation_nominal=
elevation_of_bolt_for(rear_to_cross_rail),
$foreaftmaint_dz= rear_to_cross_rail);
}
module FrontDemo(){ ////toplevel
- SomeDemo() Front();
+ SomeDemo() rotate([180,0,0]) Front();
}
module RearDemo(){ ////toplevel
SomeDemo() Rear();
rotate([atan(rack_shear_ratio),0,0]) SomeDemo() {
Rear();
translate([0, 0, -rear_bolt_to_front_bolt])
- Front();
+ rotate([180,0,0]) Front();
%RackForDemoRails();
color("blue") RackForDemoCrosses();
}