+module Pin(){ ////toplevel
+ rotate([90,0,90]) {
+ hull(){
+ for (mir=[0,1]) {
+ mirror([mir,0,0]) {
+ linear_extrude(height=0.1) {
+ polygon([[-0.01, 0],
+ [-0.01, pinminh],
+ [pinbasew*0.5*(pinminh/pinmaxh), 0]]);
+ }
+ translate([0,0,pintaperlen])
+ linear_extrude(height=pinstraightlen) {
+ polygon([[-0.01, 0],
+ [-0.01, pinmaxh],
+ [pinbasew*0.5, 0]]);
+ }
+ }
+ }
+ }
+ }
+}
+
+module TestKit(){ ////toplevel
+ translate([30,0,0]) Pin();
+ translate([30,30,0]) Pin();
+ translate([0,40,0]) intersection(){
+ Trestle();
+ translate([-50,-10,-1]) cube([100,100,100]);
+ }
+ intersection(){
+ translate([-60,0,0]) Bar();
+ cube(50,center=true);
+ }
+}
+
+module Demo(){
+ %Bar();
+ for (mir=[0,1]) {
+ mirror([mir,0,0]) {
+ %translate([spoolbarlen/2,0,0]) rotate([90,0,90]) Trestle();
+ translate([spoolwidth/2 + spoolinnerslop/4, 0, barz])
+ rotate([0,90,0]) AxleWasher();
+ translate([axlepin_x, 0, barz]) rotate([90,0,90]) FtAxlePin();
+ }
+ }
+}