roll up for loop to express 3030 in less code
[ozzloy@gmail.com/3d-printables] / mk2-haribo-spool-holder.scad
1 /* GNU AGPLv3 (or later at your option)
2 see bottom for more license info */
3
4 /* measurements from misumi's 3030 aluminum extrusion data sheet
5 https://us.misumi-ec.com/pdf/fa/2012/p2_0545.pdf
6 */
7
8 x = 30;
9 y = 30;
10 diagonal = sqrt(pow(30/2, 2) + pow(30/2, 2));
11 opening_width = 8;
12 inner_block = 12;
13
14 major_block_corner_diameter = 4;
15 major_block_corner_radius = major_block_corner_diameter / 2;
16
17 corner_block_inner = (30 - 16.5) / 2;
18 wall = 2;
19
20 $fn = 40;
21
22 intersection(){
23 minkowski() {
24 square(x - major_block_corner_diameter, center=true);
25 circle(major_block_corner_radius); }
26
27 union(){
28 arms = 4;
29 for(arm = [0:arms - 1]) {
30 rotate(arm * 360 / arms) {
31 square(inner_block / 2);
32 rotate(45) {
33 translate([diagonal/2, 0]) {
34 square([diagonal, wall], center=true); } }
35 translate([x / 2-corner_block_inner, y / 2 - corner_block_inner]) {
36 square([corner_block_inner, corner_block_inner]); }
37 translate([opening_width / 2, y/2 - wall]) {
38 square([(x - opening_width) / 2, wall]); }
39 translate([x / 2 - wall, opening_width / 2]) {
40 square([wall, (y - opening_width) / 2]); } } } } }
41
42 /*
43 This file is part of 3d-printables.
44
45 3d-printables is free software: you can redistribute it and/or modify
46 it under the terms of the GNU Affero General Public License as published by
47 the Free Software Foundation, either version 3 of the License, or
48 (at your option) any later version.
49
50 3d-printables is distributed in the hope that it will be useful,
51 but WITHOUT ANY WARRANTY; without even the implied warranty of
52 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
53 GNU Affero General Public License for more details.
54
55 You should have received a copy of the GNU Affero General Public License
56 along with challenge-bot. If not, see <http://www.gnu.org/licenses/>.
57 */