2 Copyright (C) 2015 Daniel Watson
3 See the end of the file for license conditions.
6 // GNU AGPLv3 (or later at your option)
7 // project available here:
8 // https://challenge-bot.com/
10 // use $fn = 20 while developing, 100 when about to print
11 // 20 will make previews fast
12 // 100 will make printing smooth
15 wheel_square_spoke_size
= 45;
16 wheel_square_spoke_thickness
= 2;
22 sqrt(2 * pow(wheel_square_spoke_size
/ 2, 2)) + wall_width
/ 2 + 1;
24 motor_shaft_radius
= 3.9;
25 motor_shaft_flat_width
= 5.2;
29 module
mounting_screw_flat() {
32 module
motor_shaft_flat(radius
, flat_width
) {
35 square([flat_width
, radius
* 2], center
= true); } }
37 module
motor_shaft(radius
,
40 linear_extrude(height
= shaft_length
) {
41 motor_shaft_flat(radius
, flat_width
); } }
43 module
rim(radius
, wall_width
, wheel_width
) {
44 linear_extrude(height
= wheel_width
) {
47 circle(radius
- wall_width
); } } }
49 module
motor_shaft_holder_flat(radius
, flat_width
, wall_width
) {
51 motor_shaft_flat(radius
+ wall_width
,
52 flat_width
+ wall_width
);
53 motor_shaft_flat(radius
, flat_width
); } }
55 module
motor_shaft_holder(radius
, flat_width
, wall_width
, height
) {
56 linear_extrude(height
= height
) {
57 motor_shaft_holder_flat(radius
, flat_width
, wall_width
); } }
59 module
tread(wheel_radius
, tread_radius
) {
60 rotate_extrude(convexity
= 10) {
61 translate([wheel_radius
, 0]) {
62 circle(tread_radius
); } } }
71 spoke_width
= radius
/ 3;
73 rim(radius
, wall_width
* 2, width
);
74 translate([0, 0, width
/ 2]) {
75 tread(radius
, tread_radius
); } }
76 linear_extrude(height
= wheel_square_spoke_thickness
) {
79 for(spoke
= [0: spoke_count
- 1]) {
80 rotate(spoke
* 360 / spoke_count
) {
81 translate([-spoke_width
/ 2, 0]){
82 square([spoke_width
, radius
- 2]); } } } }
83 mounting_screw_flat(); } }
84 translate([0, 0, wheel_square_spoke_thickness
]) {
85 motor_shaft_holder(shaft_radius
,
88 width
- wheel_square_spoke_thickness
); } }
91 This file is part of challenge-bot.
93 Challenge-bot is free software: you can redistribute it and/or modify
94 it under the terms of the GNU Affero General Public License as published by
95 the Free Software Foundation, either version 3 of the License, or
96 (at your option) any later version.
98 GNU Affero Emacs is distributed in the hope that it will be useful,
99 but WITHOUT ANY WARRANTY; without even the implied warranty of
100 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
101 GNU Affero General Public License for more details.
103 You should have received a copy of the GNU Affero General Public License
104 along with challenge-bot. If not, see <http://www.gnu.org/licenses/>.