chiark / gitweb /
air-hockey-puck: wip
[reprap-play.git] / flyscreen-wall-spacer.scad
1 // -*- C -*-
2
3 include <utils.scad>
4
5 bracket_th = 2.70;
6 left_inboard_to_wall = 9.78;
7 right_inboard_to_wall = 13.21;
8
9 plug_dia = 10;
10 screw_dia = 5;
11 bucket_wall = 2.5;
12 bucket_floor = 2.5;
13 whole_dia = plug_dia + bucket_wall *2;
14
15 min_spacing = 8;
16 max_spacing = 19;
17
18 general_spacer_height = 10;
19
20 // calculated
21
22 module Oval(r, dc) {
23   hull(){
24     circle(r);
25     translate([0, dc])
26       circle(r);
27   }
28 }
29
30 module MainCircle() {
31   difference(){
32     circle(r = whole_dia/2);
33     circle(r = screw_dia/2);
34   }
35 }
36
37 module MultiSpacer() {
38   difference(){
39     linextr(0, $inboard_to_wall - bracket_th){
40       Oval(whole_dia/2, max_spacing);
41     }
42
43     linextr(bucket_floor, 100) {
44       Oval(plug_dia/2, max_spacing);
45     }
46
47     linextr(-1, 100) {
48       circle(screw_dia/2);
49
50       translate([0, min_spacing])
51         Oval(screw_dia/2, max_spacing - min_spacing);
52     }
53   }
54 }
55
56 module AnySpacer(max_z) {
57   linextr(0, bucket_wall)
58     MainCircle();
59   linextr(0, max_z){
60     difference(){
61       MainCircle();
62       circle(r = plug_dia/2);
63     }
64   }
65 }
66
67 module Spacer($inboard_to_wall) {
68   AnySpacer($inboard_to_wall - bracket_th);
69 }
70
71 module Spacers1() {
72   for (dy = [0, 30]) {
73     translate([0,dy,0]) {
74       Spacer($inboard_to_wall = left_inboard_to_wall);
75       translate([0, 70, 0])
76         Spacer($inboard_to_wall = right_inboard_to_wall);
77     }
78   }
79
80   translate([40, 0, 0])
81     MultiSpacer($inboard_to_wall = left_inboard_to_wall);
82   translate([40, 70, 0])
83     MultiSpacer($inboard_to_wall = right_inboard_to_wall);
84 }
85
86 module Spacers2() {
87   for (dy = 30 * [0]) {
88     echo(dy);
89     translate([0, dy, 0])
90       AnySpacer(general_spacer_height);
91   }
92 }
93
94 module Spacers3() {
95   AnySpacer(6.08);
96   translate([0, 30, 0])
97     AnySpacer(8.18);
98 }
99
100 Spacers3();