add groove for tire tread
authordaniel watson <ozzloy@gmail.com>
Mon, 27 Jan 2014 21:04:48 +0000 (13:04 -0800)
committerdaniel watson <ozzloy@gmail.com>
Mon, 27 Jan 2014 21:04:48 +0000 (13:04 -0800)
3d-printables/wheel.scad

index 0a922fd6c302dbfdb1a2ca7fefdbe7c05324a8be..bcf91f883e5df16e76b63d3c28169af1830084db 100644 (file)
@@ -22,6 +22,8 @@ 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);}
 
@@ -52,9 +54,22 @@ module motor_shaft_holder(radius, flat_width, wall_width, height){
   linear_extrude(height = height){
     motor_shaft_holder_flat(radius, flat_width, wall_width);}}
 
-module wheel_black(radius, width, shaft_radius, shaft_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"){
-    rim(radius, wall_width, width);
+    difference(){
+      rim(radius, wall_width, width);
+      translate([0, 0, width / 2]){
+        tread(radius, tread_radius);}}
     linear_extrude(height = qr_height){
       difference(){
         qr_black_flat();
@@ -72,16 +87,23 @@ module wheel_white(){
         qr_white_flat();
         mounting_screw_flat();}}}}
 
-module wheel(radius, width, shaft_radius, shaft_flat_width, wall_width){
+module wheel(radius,
+             width,
+             shaft_radius,
+             shaft_flat_width,
+             wall_width,
+             tread_radius){
   wheel_black(radius,
               width,
               shaft_radius,
               shaft_flat_width,
-              wall_width);
+              wall_width,
+              tread_radius);
   wheel_white();}
 
 wheel(wheel_radius,
       wheel_width,
       motor_shaft_radius,
       motor_shaft_flat_width,
-      wall_width);
+      wall_width,
+      tread_radius);