chiark / gitweb /
pin-hinge: wip
[reprap-play.git] / pin-hinge.scad
1 // -*- C -*-
2
3 $hinge_pin_dia = 0.795 + 0.35;
4 $hinge_main_dia = 4.0;
5 $hinge_inter_gap = 0.50;
6 $hinge_prong_minwidth = 3.5;
7 $hinge_noncrit_gap = 1.0;
8
9 $fa = 3;
10 $fs = 0.05;
11
12 module HingePinPlan(){
13   circle(r= $hinge_pin_dia/2);
14 }
15
16 module HingeProngPlan(behind){
17   hull(){
18     circle(r= $hinge_main_dia/2);
19     polygon([[0,0],
20              [-$hinge_main_dia/2, -behind],
21              [+$hinge_main_dia/2, -behind]]);
22   }
23 }
24
25 module HingeGapPlan() {
26   circle(r = $hinge_main_dia/2 + $hinge_inter_gap);
27 }
28
29 module PlanDemo(){
30   HingeProngPlan(5);
31   %HingeGapPlan();
32   translate([0,0,1]) color("red") HingePinPlan();
33 }
34
35 module HingePositive(l){
36   linetr_x_yz(0, l)
37     HingeProngPlan();
38 }  
39
40 module HingeNegative(l){
41   eff_l = l + $hionge_inter_gap;
42   pairs = floor(eff_l / (2*($hinge_prong_minwidth + $hinge_inter_gap)));
43   stride = eff_l / pairs;
44   prong_width = stride/2 - $hinge_inter_gap;
45   linextr_x_ayz(-0.1, l+0.1)
46     HingePinPlan();
47   for (i=[0:pairs-1]) {
48     translate(stride * i * [1,0,0])
49       linextr_x_yz(0, prong_width + $hinge_inter_gap)
50       HingeGapPlan();
51   }
52 }
53
54 PlanDemo();