$hinge_pin_dia = 0.795 + 0.35;
$hinge_main_dia = 4.0;
$hinge_inter_gap = 0.50;
+$hinge_prong_minwidth = 3.5;
$hinge_noncrit_gap = 1.0;
$fa = 3;
}
module HingeProngPlan(behind){
- difference(){
- hull(){
- circle(r= $hinge_main_dia/2);
- polygon([[0,0],
- [-$hinge_main_dia/2, -behind],
- [+$hinge_main_dia/2, -behind]]);
- }
- HingePinPlan();
+ hull(){
+ circle(r= $hinge_main_dia/2);
+ polygon([[0,0],
+ [-$hinge_main_dia/2, -behind],
+ [+$hinge_main_dia/2, -behind]]);
}
}
module PlanDemo(){
HingeProngPlan(5);
%HingeGapPlan();
+ translate([0,0,1]) color("red") HingePinPlan();
+}
+
+module HingePositive(l){
+ linetr_x_yz(0, l)
+ HingeProngPlan();
+}
+
+module HingeNegative(l){
+ eff_l = l + $hionge_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_ayz(-0.1, l+0.1)
+ HingePinPlan();
+ for (i=[0:pairs-1]) {
+ translate(stride * i * [1,0,0])
+ linextr_x_yz(0, prong_width + $hinge_inter_gap)
+ HingeGapPlan();
+ }
}
PlanDemo();