aboutsummaryrefslogtreecommitdiff
path: root/MTBCanHolder/12ozCanHolder.scad
blob: 27ec2d51f8e040bccdee3175745ff14ea40c8002 (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
can_height=122 + 10; // 12.cm
base_width=20; // 2cm
base_depth=10; // 1cm
screw_small_depth = 3;
screw_thread_diameter = 9;
bolt_head_diameter=12; //6mm for M5 bolt
dist_between_holes=55; // 2.14inch / 64mm
hole_offset=25; // 2cm from origin
bottom_lip_height=4.5; // 4.5mm 2cm (1cm + xyz)
bottom_lip_thickness=5; // 5mm
bottom_lip_base=5; // 10mm
bottom_lip_extrusion=12.5 + base_depth; // 10.5mm
upper_lip_base=5;
upper_lip_thickness=23 + base_depth; // height basically
upper_pushness_thickness=3; 
upper_pusher_base=10;
upper_can_hook_height=10;
upper_can_hook_base=5;
upper_can_hook_width=5;
upper_hook_radius=10;
upper_lip_difference=2.50;

/*
translate([-20,120,base_depth-2]) {

rotate([64,0,20]){

color([1,0,0]) {

import("soda_can.stl");
}
}

}
*/

// Distance from tip to base should 7.5mm
// Distance from tip to left face 6 mm

module pieSlice(a, r, h){
  // a:angle, r:radius, h:height
  rotate_extrude(angle=a) square([r,h]);
}

linear_extrude(base_depth) {
    difference() {
        difference(){
            square([base_width, can_height]);
            translate([base_width/2,hole_offset,0]){
                circle(d=bolt_head_diameter);
                translate([0,(bolt_head_diameter)+dist_between_holes,0]) {
                    circle(d=bolt_head_diameter);
                }
            }
        }
    }
}


linear_extrude(screw_small_depth) {
            translate([base_width/2,hole_offset,0]){
                difference() {
                circle(d=bolt_head_diameter);
                    circle(d=screw_thread_diameter);
                }
            translate([0,(bolt_head_diameter)+dist_between_holes,0]) {
                difference() {
                    circle(d=bolt_head_diameter);
                    circle(d=screw_thread_diameter);
                }
                }
            }
}

// Upper Lip
difference(){
linear_extrude(upper_lip_thickness){
translate([0,-upper_lip_base,0]) {
    square([base_width,upper_lip_base]);
}
}

translate([-2.5,-upper_lip_difference,base_depth/1.5]) {
    linear_extrude(upper_lip_thickness-10-(base_depth/1.5)){
    square([base_width+5,upper_lip_difference]);
    }
}
}

// Upper Lip Pusher (?)
translate([0,0,(upper_lip_thickness*7/8)-upper_pushness_thickness]){
linear_extrude(upper_pushness_thickness){
translate([0,-upper_pusher_base-upper_lip_base,0]) {
    square([base_width,upper_pusher_base]);
}
}
}

// Upper Lip Hook (?)
/*
translate([0,0,(upper_lip_thickness-upper_can_hook_height)]){
linear_extrude(upper_can_hook_height){
translate([0,,0]) {
    square([base_width,upper_can_hook_base]);
}
}
}
*/

translate([base_width,0,upper_lip_thickness-10]){
rotate([0,-90,0]){
pieSlice(90+25,upper_hook_radius,base_width);
}
}


// Bottom Lip

linear_extrude((bottom_lip_extrusion) + bottom_lip_thickness) {
    translate([0,can_height,0]) {
        square([base_width,bottom_lip_base]);
    }
}

translate([0,can_height-bottom_lip_height,(bottom_lip_extrusion)]) {
    linear_extrude(bottom_lip_thickness){
    square([base_width,bottom_lip_height]);
    }
}
/*
translate([10,0,30]){
rotate([360-90,45,0]){
pieSlice(90, 30, 30);
}
}\*/