chiark / gitweb /
filamentspool: FilamentGuideArm: correct guide_armcorelen to be actual whole core...
[reprap-play.git] / osstest-arm-net-bracket.scad
1 // -*- C -*-
2
3 holedist = 64;
4 tonguewidth = 10;
5 tongue2width = 15;
6 totaldepth = 26;
7 tongue2depth = 35;
8 thick = 4;
9 tabover = 7+6;
10 tabunder = 15;
11
12 tabsidel = 7+1;
13 tabsider = 7+10;
14
15 tonguethick = 4;
16 tongue2thick = 5;
17 strapthick = 2;
18 strapwidth = 5 + 0.35;
19 ridgewidth = 2;
20
21 hstrengthick = 2.5;
22 hstrengdepth = strapwidth;
23
24 cutoutover = 7;
25 rcutoutside = 7+2 - 0.5;
26 lcutoutside = 7-6.5 - 0.5;
27
28 t2strengwidth = 10;
29 t2strengwidtht = 4;
30 t2strenglen = tongue2depth + 5;
31 t2strengthicker = 1;
32
33 strapholethicker = 1.5;
34
35 holedia = 3.5;
36
37 tongue2x = tongue2width - holedist;
38
39 module Tongue(tw,tt,ad,slots=2){
40   y0=thick+0.1;
41   yn=ad-ridgewidth-strapwidth;
42   difference(){
43     union(){
44       translate([-tw, 0, 0])
45         cube([tw, ad, tt+strapthick]);
46       child();
47     }
48     for (yi=[1:slots-1])
49       translate([-tw-1, y0 + (yn-y0)*yi/(slots-1), tt])
50         cube([tw+2, strapwidth, strapthick+strapholethicker]);
51   }
52 }
53
54 module Body(){
55   translate([-holedist-tabsider, 0, 0]) {
56     cube([tabsidel+tabsider+holedist, thick, tabunder+tabover]);
57     cube([tabsidel+tabsider+holedist, thick+hstrengdepth, hstrengthick]);
58   }
59   Tongue(tonguewidth,tonguethick,totaldepth,3);
60   translate([tongue2x,0,0])
61     Tongue(tongue2width,tongue2thick,tongue2depth+thick,5) {
62     mirror([1,0,0]) hull(){
63       translate([-(tongue2width-t2strengwidth)*0.05, 0,0]) 
64         cube([t2strengwidth,t2strenglen,
65               tongue2thick+strapthick+strapholethicker+t2strengthicker]);
66       cube([t2strengwidtht,thick+0.1,tabunder+tabover]);
67     }
68   }
69 }
70
71 module Object(){
72   difference(){
73     Body();
74     translate([0,-25,tabunder+cutoutover]) {
75       translate([-(holedist+rcutoutside), 0,0])
76         mirror([1,0,0])
77         cube([50,50,50]);
78       translate([lcutoutside, 0,0])
79         cube([50,50,50]);
80     }
81     for (x=[-holedist,0])
82       translate([x, 0, tabunder]) {
83         translate([0, -1, 0]) {
84           rotate([-90,0,0]) {
85             cylinder(r= holedia/2+0.5, h=thick+2, $fn=20);
86           }
87         }
88         translate([0, 19.95 + thick, 0])
89           cube(center=true,[10,40,10]);
90       }
91   }
92 }
93
94 Object();