+/*
+ 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;
-
-include <wheel-dimensions.scad>
-use <qr.scad>
-
-module mounting_screw_flat() {
- circle(0.9); }
-
-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); } } }
+include <wheel-data.scad>
-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(); }
-
-module wheel_solid(radius,
- width,
- shaft_radius,
- shaft_flat_width,
- wall_width,
- tread_radius) {
- difference() {
- rim(radius, wall_width * 2, width);
- translate([0, 0, width / 2]) {
- tread(radius, tread_radius); } }
- linear_extrude(height = qr_height) {
- difference() {
- square(qr_size, center = true);
- mounting_screw_flat(); } }
- translate([0, 0, qr_height]) {
- motor_shaft_holder(shaft_radius,
- shaft_flat_width,
- wall_width,
- width - qr_height); } }
-
-/*
wheel(wheel_radius,
wheel_width,
motor_shaft_radius,
motor_shaft_flat_width,
wall_width,
tread_radius);
-*/
-wheel_solid(wheel_radius,
- wheel_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/>.
+*/