5 $hinge_pin_dia = 0.795 + 0.75;
7 $hinge_inter_gap = 0.50;
8 $hinge_prong_minwidth = 3.0;
9 $hinge_noncrit_gap = 1.0;
14 module HingePinPlan(){
15 circle(r= $hinge_pin_dia/2);
18 module HingeProngPlan(behind){
20 circle(r= $hinge_main_dia/2);
22 [-$hinge_main_dia/2, -behind],
23 [+$hinge_main_dia/2, -behind]]);
27 module HingeGapPlan() {
28 circle(r = $hinge_main_dia/2 + $hinge_inter_gap);
34 translate([0,0,1]) color("red") HingePinPlan();
37 module HingePinUnitCell(l) {
38 eff_l = l + $hinge_inter_gap;
39 pairs = floor(eff_l / (2*($hinge_prong_minwidth + $hinge_inter_gap)));
40 stride = eff_l / pairs;
41 $hinge__prong_width = stride/2 - $hinge_inter_gap;
43 translate(stride * i * [1,0,0])
48 module HingePositive(l, behind){
50 linextr_x_yz(0, $hinge__prong_width)
51 HingeProngPlan(behind);
55 module HingeNegative(l){
56 linextr_x_yz(-0.1, l+0.1)
59 linextr_x_yz($hinge__prong_width,
60 $hinge__prong_width*2 + 2*$hinge_inter_gap)
73 HingePositive(test_l, test_h/2);
74 %HingeNegative(test_l);
79 linextr_x_yz(0, test_l){
80 offset(delta = -test_face_gap/2)
82 [-test_wb/2, -test_h],
83 [+test_wb/2, -test_h]]);
91 HingePositive(test_l, test_h/2);
93 HingeNegative(test_l);