X-Git-Url: http://challenge-bot.com/repos/?p=challenge-bot;a=blobdiff_plain;f=3d-printables%2Fwheel.scad;h=405a382ecacd821908bd915ba9a0b64b943dba8e;hp=87ec2865c38c456da267159bce0b19b41291c92d;hb=ebd451f42e6bdd3ac42322886c20b43e157fea86;hpb=fa6c6440266670ea11fda3d8bb5a9d48553e00d2 diff --git a/3d-printables/wheel.scad b/3d-printables/wheel.scad index 87ec286..405a382 100644 --- a/3d-printables/wheel.scad +++ b/3d-printables/wheel.scad @@ -1,73 +1,37 @@ +/* + 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 = 20; - -wheel_depth = 6; -wheel_radius = 68/2; - -module encoder_shaft(){ - // measured with calipers, checked against the motor shaft - motor_shaft_big = 3.7; // radius, gets doubled in cylinder - motor_shaft_small = 4.8; // total length of box - motor_shaft_length = wheel_depth * 3 / 4; - - intersection(){ - cylinder(h = motor_shaft_length, r = motor_shaft_big, center = true); - // x direction is multiplied by 2 because the radius of the cylinder - // goes in both directions. the extra .1 is for overlap - cube([motor_shaft_big * 2.1, motor_shaft_small, motor_shaft_length], - center = true);}} - -module mounting_screw(){ - cylinder(h = wheel_depth * 1.1, r = 1, center = true);} - -module wheel(){ - translate([0, 0, wheel_depth / 2]){ - difference(){ - cylinder(h = wheel_depth, r = wheel_radius, center = true); - translate([0, 0, wheel_depth / 4]){ - scale([1, 1, 1.1]){ - encoder_shaft();}} - mounting_screw(); - for(i = [1 : 5]){ - rotate(i * 360/5, [0, 0, 1]){ - translate([0, 0, -0.6 * wheel_depth]) - between_spokes();}} - translate([0, 0, wheel_depth / 4]){ - difference(){ - cylinder(h = wheel_depth / 1.2, - r = 0.85 * wheel_radius, - center = true); - cylinder(h = wheel_depth / 1.2, - r = 0.23 * wheel_radius, - center = true);}}}}} - -module wheel_block(){ - cube([wheel_radius, wheel_radius, wheel_depth]);} - -module pie_slice(){ - intersection(){ - translate([0, 0, wheel_depth / 2]){ - cylinder(h = wheel_depth, - r = 0.85 * wheel_radius, - center = true);} - translate([0, wheel_radius * 0.3, 0]){ - rotate([0, 0, (360 / 5) / 2]){ - intersection(){ - wheel_block(); - rotate([0, 0, 90 - 360 / 5]) - wheel_block();}}}}} - -module between_spokes(){ - minkowski(){ - pie_slice(); - cylinder(h = wheel_depth / 2, r = 1);}} - -wheel(); +include + +wheel(wheel_radius, + 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 . +*/