construct arm half without intersection or minkowski
[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 module arm_half(){
23 square(inner_block / 2);
24 rotate(45) {
25 square([diagonal - major_block_corner_radius, wall / 2]); }
26 translate([x / 2 - corner_block_inner, y / 2 - corner_block_inner]) {
27 square(corner_block_inner - wall); }
28 translate([(opening_width + major_block_corner_diameter) / 2,
29 y/2 - wall]) {
30 square([(x - opening_width - 2 * major_block_corner_diameter) / 2,
31 wall]);
32 translate([0, wall/2]){
33 circle(wall / 2); } }
34 translate([(x - major_block_corner_diameter) / 2,
35 (y - major_block_corner_diameter) / 2]) {
36 circle(major_block_corner_radius); } }
37
38 arms = 4;
39 for(arm = [0:arms - 1]) {
40 rotate(arm * 360 / arms) {
41 arm_half();
42 mirror(){ arm_half(); } } }
43
44 /*
45 This file is part of 3d-printables.
46
47 3d-printables is free software: you can redistribute it and/or modify
48 it under the terms of the GNU Affero General Public License as published by
49 the Free Software Foundation, either version 3 of the License, or
50 (at your option) any later version.
51
52 3d-printables is distributed in the hope that it will be useful,
53 but WITHOUT ANY WARRANTY; without even the implied warranty of
54 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
55 GNU Affero General Public License for more details.
56
57 You should have received a copy of the GNU Affero General Public License
58 along with challenge-bot. If not, see <http://www.gnu.org/licenses/>.
59 */