chiark / gitweb /
light-bracket: wip, new base
[reprap-play.git] / light-bracket.scad
1 remote_width=56.2;
2 remote_height=124.7;
3 remote_thick=6.8;
4 mainhole_thick=remote_thick+1;
5 hook_hook_thick=1.5;
6 hook_stem_thick=1.5;
7 hook_hook_len=1.5;
8 base_thick=6;
9 base_margin=4.0;
10 base_width=remote_width-base_margin*2;
11 base_height=remote_height-base_margin*2;
12
13 // origin is base of mainhole
14
15 module mainhole() {
16         translate([ -remote_width/2, 0, 0 ])
17         cube(center=false,
18                 size=[ remote_width, remote_height, mainhole_thick ] );
19 }
20
21 module hhook(extent) {
22         difference() {
23                 translate([ -hook_stem_thick, 0, -base_thick*2 ])
24                         cube(center=false, size=[ hook_stem_thick+15, extent,
25                                 base_thick*2 + mainhole_thick
26                                         + hook_hook_thick ]);
27                 translate([hook_hook_len, -5, 0])
28                          cube(center=false, size=[ 20, extent+10, 30 ]);
29         }
30 }
31
32 module hhookside(extent) {
33         translate([ -remote_width/2, 0, 0 ])
34                 hhook(extent);
35 }
36
37 module hhookbot(extent) {
38         rotate(a=90, v=[0,0,1]) hhook(extent);
39 }
40
41 module hstuff() {
42         translate([0,70,0]) hhookside(15);
43         translate([0,10,0]) hhookside(15);
44         translate([-10,0,0]) hhookbot(15);
45 }
46
47 module base() {
48         difference() {
49                 translate([ 0, base_height/2 + base_margin, -base_thick/2 ])
50                         cube(center=true,
51                                 [ base_width, base_height, base_thick+10 ]);
52         }
53 //      translate([-base_width/2, base_margin, -base_thick*2])
54 //              cube(center=false, [base_width,base_height,base_thick+10]);
55 }
56
57 screw_ys=[ 20, remote_height-30 ];
58
59 module stuff() {
60         hstuff();
61         mirror([1,0,0]) hstuff();
62         base();
63         //for (y=screw_ys)
64 }
65
66 module screwhole(holedia, csdia) {
67         // screw goes along z axis downwards
68         // origin is base of countersink
69         // results are positive, so this should be subtracted
70         translate([0,0,-100]) cylinder(h=200, r=holedia/2);
71         cylinder(h=100, r=csdia/2);
72 }
73
74 difference() {
75         stuff();
76         mainhole();
77         for (y=screw_ys) translate([0, y, -base_thick+2]) screwhole(4,10);
78         translate([0,0,-50 - base_thick])
79                 cube(center=true,[300,300,100]); // print bed
80 }