+module ForRackForDemo(){
+ elevation = elevation_of_bolt_for(rear_to_cross_rail);
+ rack_rail_y = rack_rail_y_of_elevation(elevation);
+
+ rotate([atan(
+ front_to_rear_elevation_change /
+ cross_rail_distance
+ ), 0,0])
+ translate([0, rack_rail_y, brk_block_z/2 + rack_rail_y*rack_shear_ratio])
+ children();
+}
+
+module RackForDemoRails(){
+ ForRackForDemo() {
+ for (m=[0]) mirror([m,0,0]) {
+ linextr(-(50 + cross_rail_distance), 50 + rear_to_cross_rail)
+ translate([rack_rail_x, 0])
+ circle(r= rack_rail_dia/2);
+ }
+ }
+}
+
+module RackForDemoCrosses(){
+ ForRackForDemo() {
+ for (z = [
+ rear_to_cross_rail,
+ rear_to_cross_rail - cross_rail_distance,
+ ]) {
+ translate([0,0,z])
+ linextr_x_yz(rack_rail_x, -rack_rail_x)
+ circle(r= rack_rail_dia/2, $fn=8);
+ }
+ }
+}
+
+module Front(){ ////toplevel
+ 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 SomeDemo(){
+ rotate([90, 0, 0]){
+ children();
+
+ color("blue")
+ translate([ 0, -2, -4 ])
+ square(center=true, [ brk_overall_w, 1 ]);
+
+ color("red")
+ translate([ 0, -brk_nearbolt_recess_depth, -4 ])
+ linextr_y_xz(-brk_bolt_eff_len, 0)
+ circle(r = brk_bolt_dia/2);
+
+ }
+}
+
+module FrontDemo(){ ////toplevel
+ SomeDemo() rotate([180,0,0]) Front();
+}
+module RearDemo(){ ////toplevel
+ SomeDemo() Rear();
+}
+module RearRackDemo(){ ////toplevel
+ rotate([atan(rack_shear_ratio),0,0]) SomeDemo() {
+ Rear();
+ translate([0, 0, -rear_bolt_to_front_bolt])
+ rotate([180,0,0]) Front();
+ %RackForDemoRails();
+ color("blue") RackForDemoCrosses();
+ }
+}