aboutsummaryrefslogtreecommitdiff
path: root/parts/triangular_connector.scad
blob: 9249639b84be2433053bd54ba5ac12643af08a6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
radius = 8.25;
wall = 6;
top_wall = 6;
len = 40;

rotation = [0,105,0];
//rotation = [0,0,0];

module external(radius, wall, len, top_wall) {
    w = len/2+radius+(radius+wall)*sin(60) ;
    h = (radius + wall) / 2;
    difference() {
        translate([-len/2-radius,0,0]) rotate([0,30,0]) cylinder(r = radius + wall, h = len + top_wall); 
        translate ([-w,-w,-h]) cube([w*2, w*2, h*2]);
    }
}

module tube(radius, wall, len) {
    translate([-len/2-radius,0,0]) rotate([0,30,0]) translate([0,0,-wall/2]) cylinder(r = radius, h = len);
}

rotate(rotation) difference() {
    union() {
        hull() {
            //external(radius, wall, len, top_wall);
            rotate([0,0,120]) external(radius, wall, len, top_wall);
            rotate([0,0,-120]) external(radius, wall, len, top_wall);
            translate([radius+wall,0,(len + top_wall)*sin(60)]) rotate([0,-90,0]) cylinder(r = radius + wall, h = wall*2);
        }
        translate([radius+wall,0,(len+top_wall)*sin(60)]) rotate([0,-90,0]) cylinder(r = radius + wall, h = len + wall);
    }
    rotate([0,0,120]) tube(radius, wall, len);
    rotate([0,0,-120]) tube(radius, wall, len);
    translate([radius,0,(len+top_wall)*sin(60)]) rotate([0,-90,0]) cylinder(r = radius, h = len + 2);
}