1 /* GNU AGPLv3 (or later at your option)
2 see bottom for more license info */
4 /* measurements from misumi's 3030 aluminum extrusion data sheet
5 https://us.misumi-ec.com/pdf/fa/2012/p2_0545.pdf
10 diagonal
= sqrt(pow(30/2, 2) + pow(30/2, 2));
14 outer_block
= (30 - 16.5) / 2;
19 module
3030_arm_half(){
21 square(inner_block
/ 2);
23 // diagonal arms connecting inner block to outer blocks
25 square([diagonal
- wall
, wall
/ 2]); }
27 // outer block, without the wall part since wall has rounded corner
28 translate([x
/ 2 - outer_block
, y
/ 2 - outer_block
]) {
29 square(outer_block
- wall
); }
31 // outer arms covering the opening
32 translate([(opening_width
+ wall
) / 2, y
/ 2 - wall
]) {
33 square([(x
- opening_width
- wall
) / 2 - wall
, wall
]); }
34 // rounded part at entrace to inside
35 translate([(opening_width
+ wall
) / 2, (y
- wall
) / 2]){
37 // rounded part around outside of extrusion
39 translate([x
/ 2 - wall
+ corner_squish
, y
/ 2 - wall
+ corner_squish
]) {
40 circle(wall
- corner_squish
); } }
42 module
3030_profile(){
44 for(arm
= [0:arms
- 1]) {
45 rotate(arm
* 360 / arms
) {
47 mirror(){ 3030_arm_half(); } } } }
49 module
3030_sleeve_profile(){
63 module
upper_arm_profile(){
71 arm_center
= [61.8, 140.4];
74 translate(arm_center
) {
75 circle(arm_radius
); } } }
77 module
forearm_profile() {
81 translate([-20, -20]) {
84 module
shoulder_hull() {
86 translate([-15, -15, 5]) {
92 translate([-30, 30, -10]) {
95 module
upper_arm_hull() {
96 linear_extrude(height
= 15) {
97 upper_arm_profile(); } }
103 translate([-50, -300 + 120, -1]) {
107 translate([0, 0, 30]) {
110 module
forearm_hull() {
111 linear_extrude(height
= 120.5) {
112 forearm_profile(); } }
114 module
hand_profile() {
126 translate([-30, -30, -300 + 106]) {
128 translate([53, 135, 115.6]) {
129 linear_extrude(height
= 5) {
130 hand_profile(); } } } }
132 module
3030_spool_holder() {
140 translate([0, 0, -1]) {
141 linear_extrude(height
= 40) {
144 circle(0.2); } } } } }
148 module
original_forearm_profile() {
150 translate([-315, 0, -80]) {
151 import("Spool-holder.stl"); } } }
153 module
original_upper_arm_profile() {
155 translate([-315, 0, -2]) {
156 import("Spool-holder.stl"); } } }
158 module
original_spool_holder() {
159 %translate([-315, 0, 0]) {
160 import("Spool-holder.stl"); } }
162 module
original_hand_profile() {
164 translate([-368, -135, -117]) {
165 import("Spool-holder.stl"); } } }
168 This file is part of 3d-printables.
170 3d-printables is free software: you can redistribute it and/or modify
171 it under the terms of the GNU Affero General Public License as published by
172 the Free Software Foundation, either version 3 of the License, or
173 (at your option) any later version.
175 3d-printables is distributed in the hope that it will be useful,
176 but WITHOUT ANY WARRANTY; without even the implied warranty of
177 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
178 GNU Affero General Public License for more details.
180 You should have received a copy of the GNU Affero General Public License
181 along with challenge-bot. If not, see <http://www.gnu.org/licenses/>.