+ translate([0,0,1]) color("red") HingePinPlan();
+}
+
+module HingePositive(l, behind){
+ linextr_x_yz(0, l)
+ HingeProngPlan(behind);
+}
+
+module HingeNegative(l){
+ eff_l = l + $hinge_inter_gap;
+ pairs = floor(eff_l / (2*($hinge_prong_minwidth + $hinge_inter_gap)));
+ stride = eff_l / pairs;
+ prong_width = stride/2 - $hinge_inter_gap;
+ linextr_x_yz(-0.1, l+0.1)
+ HingePinPlan();
+ for (i=[0:pairs-1]) {
+ translate(stride * i * [1,0,0])
+ linextr_x_yz(0 + (i==0 ? -0.1 : 0), prong_width + $hinge_inter_gap)
+ HingeGapPlan();
+ }
+}
+
+module Demo(){
+ difference(){
+ HingePositive(30, 10);
+ %HingeNegative(30);
+ }