2 GNU AGPLv3 (or later at your option)
3 see bottom for more license info.
4 please keep this notice.
8 measurements from misumi's 3030 aluminum extrusion data sheet
9 https://us.misumi-ec.com/pdf/fa/2012/p2_0545.pdf
12 //$fn = 30; // use this while editing
13 $fn
= 100; // use this for generating STL
18 // 20 for final prints
22 desired_corner_rounding_radius
= 2/2.1;
24 // rounding radius needs to be just under half the size of the wall_width
25 maximum_corner_rounding_radius
= wall_width
/ 2 - 0.1;
26 corner_rounding_radius
=
27 (desired_corner_rounding_radius
< maximum_corner_rounding_radius
)
29 desired_corner_rounding_radius
31 maximum_corner_rounding_radius
;
33 // the printed nubs did not fit into the extrusion gap perfectly.
34 // we can change the model just a little bit to accomodate printing
44 outer_block
= (30 - 16.5) / 2;
47 module
ring(outer_radius
, wall_width
) {
50 circle(outer_radius
- wall_width
); } }
57 module
round_corners(r
) {
58 fillet(r
) { fillet(-r
) { children(); } } }
61 // side nub, goes into side 3030 openings
63 b
= foot_height
+ wall_width
- (y
- opening_width
) / 2;
64 side_nub_length
= (a
< b
) ? a
: b
;
65 translate([0, (y
- opening_width
) / 2 + fudge
]) {
66 square([nub_depth
, side_nub_length
- fudge
]); } }
69 // bottom nub, goes into bottom 3030 opening
70 translate([(x
- opening_width
) / 2, 0]) {
71 square([opening_width
/ 2, nub_depth
]); } }
73 module
half_foot_2d() {
76 ring(foot_height
+ wall_width
, wall_width
);
77 square(foot_height
+ wall_width
);
79 square(foot_height
+ wall_width
); } }
80 // upper connector, vertical 3030 holder
81 translate([-wall_width
, -wall_width
]) {
82 square([wall_width
, foot_height
+ wall_width
]); }
83 // upper connecter, horizontal 3030 holder
84 translate([-wall_width
, -wall_width
]) {
85 square([wall_width
+ x
/ 2, wall_width
]); }
87 translate([cos(45) * foot_height
,
88 -(sin(45) * foot_height
+ wall_width
)]) {
89 square([x
/ 2 - cos(45) * foot_height
, wall_width
]); }
94 round_corners(corner_rounding_radius
) {
95 translate([-x
/ 2, 0, 0]) {
97 translate([x
/ 2, 0, 0]) {
99 half_foot_2d(); } } } }
102 rotate(a
= 0, v
= [1, 0, 0]) {
103 linear_extrude(height
= foot_length
) {
111 This file is part of 3d-printables.
113 3d-printables is free software: you can redistribute it and/or modify
114 it under the terms of the GNU Affero General Public License as published by
115 the Free Software Foundation, either version 3 of the License, or
116 (at your option) any later version.
118 3d-printables is distributed in the hope that it will be useful,
119 but WITHOUT ANY WARRANTY; without even the implied warranty of
120 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
121 GNU Affero General Public License for more details.
123 You should have received a copy of the GNU Affero General Public License
124 along with challenge-bot. If not, see <http://www.gnu.org/licenses/>.