use spokes instead of square for wheel
[challenge-bot] / 3d-printables / wheel.scad
index bcf91f883e5df16e76b63d3c28169af1830084db..405a382ecacd821908bd915ba9a0b64b943dba8e 100644 (file)
+/*
+  Copyright (C) 2015 Daniel Watson
+  See the end of the file for license conditions.
+*/
 // challenge-bot
 // GNU AGPLv3 (or later at your option)
-// project available at these locations:
-// https://gitorious.org/ozzloy/challenge-bot
-// https://github.com/waynegramlich/challenge-bot
+// project available here:
+// https://challenge-bot.com/
 
 // use $fn = 20 while developing, 100 when about to print
 //  20 will make previews fast
 //  100 will make printing smooth
-$fn = 100;
-
-use <qr.scad>
-
-qr_size = 54;
-qr_height = 2;
-
-wall_width = 3;
-
-wheel_width = 6;
-wheel_radius = sqrt(2 * pow(qr_size / 2, 2)) + wall_width / 2;
-
-motor_shaft_radius = 3.7;
-motor_shaft_flat_width = 4.8;
-
-tread_radius = 2.5 / 2;
-
-module mounting_screw_flat(){
-  square(2, center = true);}
-
-module motor_shaft_flat(radius, flat_width){
-  intersection(){
-    circle(radius);
-    square([flat_width, radius * 2], center = true);}}
-
-module motor_shaft(radius,
-                   flat_width,
-                   shaft_length){
-  linear_extrude(height = shaft_length){
-    motor_shaft_flat(radius, flat_width);}}
-
-module rim(radius, wall_width, wheel_width){
-  linear_extrude(height = wheel_width){
-    difference(){
-      circle(radius);
-      circle(radius - wall_width);}}}
-
-module motor_shaft_holder_flat(radius, flat_width, wall_width){
-  difference(){
-    motor_shaft_flat(radius + wall_width,
-                     flat_width + wall_width);
-    motor_shaft_flat(radius, flat_width);}}
-
-module motor_shaft_holder(radius, flat_width, wall_width, height){
-  linear_extrude(height = height){
-    motor_shaft_holder_flat(radius, flat_width, wall_width);}}
-
-module tread(wheel_radius, tread_radius){
-  rotate_extrude(convexity = 10){
-    translate([wheel_radius, 0]){
-      circle(tread_radius);}}}
-
-module wheel_black(radius,
-                   width,
-                   shaft_radius,
-                   shaft_flat_width,
-                   wall_width,
-                   tread_radius){
-  color("black"){
-    difference(){
-      rim(radius, wall_width, width);
-      translate([0, 0, width / 2]){
-        tread(radius, tread_radius);}}
-    linear_extrude(height = qr_height){
-      difference(){
-        qr_black_flat();
-        mounting_screw_flat();}}
-    translate([0, 0, qr_height]){
-      motor_shaft_holder(shaft_radius,
-                         shaft_flat_width,
-                         wall_width,
-                         width - qr_height);}}}
-
-module wheel_white(){
-  color("white"){
-    linear_extrude(height = qr_height){
-      difference(){
-        qr_white_flat();
-        mounting_screw_flat();}}}}
-
-module wheel(radius,
-             width,
-             shaft_radius,
-             shaft_flat_width,
-             wall_width,
-             tread_radius){
-  wheel_black(radius,
-              width,
-              shaft_radius,
-              shaft_flat_width,
-              wall_width,
-              tread_radius);
-  wheel_white();}
+include <wheel-data.scad>
 
 wheel(wheel_radius,
-      wheel_width,
+      rim_width,
       motor_shaft_radius,
       motor_shaft_flat_width,
       wall_width,
       tread_radius);
+
+/*
+  This file is part of challenge-bot.
+
+  Challenge-bot is free software: you can redistribute it and/or modify
+  it under the terms of the GNU Affero General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  GNU Affero Emacs is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU Affero General Public License for more details.
+
+  You should have received a copy of the GNU Affero General Public License
+  along with challenge-bot.  If not, see <http://www.gnu.org/licenses/>.
+*/