From fa4f59f538d27c3b8515ca6ec962f72cff1c968d Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 7 Jun 2014 12:43:33 +0000 Subject: [PATCH] fix spacings, make spacing and fixing width also parameters, remove B2 parameter --- tire/tire_81.6_50.scad | 74 +++++++++++++++++++++++++----------------- 1 file changed, 44 insertions(+), 30 deletions(-) diff --git a/tire/tire_81.6_50.scad b/tire/tire_81.6_50.scad index 0876f1c..07cae3d 100644 --- a/tire/tire_81.6_50.scad +++ b/tire/tire_81.6_50.scad @@ -12,8 +12,8 @@ THICKNESS=2.5; PROT_DEPTH=1; PROT_L_WIDTH=2; PROT_A_WIDTH=2; +FIX_WIDTH=2; B=2.5; // width of edge for the rim -B2=B+2; B_W=1.6; // thickness of edge for the rim B_P=4; // position of edge for the rim W=50; // tire width @@ -25,8 +25,9 @@ CUT_BASE=8; CUT_ANGLE=12; CUT_I_R=1.5; CUT_O_R=2; +SPACING=0.2; -/*// 6-spoke variant +// 6-spoke variant N_SPOKE=6; CUT_ANGLE=21; CUT_I_R=2.5; @@ -37,57 +38,72 @@ N_L=2; R=22; BEVEL=1; THICKNESS=1.5; +FIX_WIDTH=1; PROT_A_WIDTH=1; PROT_L_WIDTH=1; -B=1.5; -B2=B+0.5; +B_P=3; +B=1; R_I=15; CUT_O_R=1; CUT_BASE=5; -W=20;*/ +W=20; -translate([0, 0, W]) rotate([180, 0, 0]) { - rim(); +difference() { + union() { + translate([0, 0, W]) rotate([180, 0, 0]) { + rim(); /* - // Support ... - translate([0, 0, SPOKE_THICKNESS+(R_I-2-CUT_BASE)/2+0.4]) cylinder(r=CUT_BASE, h=W-(SPOKE_THICKNESS+(R_I-2-CUT_BASE)/2+0.4)); - translate([0, 0, W-(B_P-2-0.2)+0.4]) cylinder(r=R_I+B+2, h=(B_P-2-0.2)-0.4); - translate([0, 0, W-(B_P-2-0.2)-2-B+0.5+0.4]) difference() { - cylinder(r=R_I+B+2, h=(B_P-2-0.2)+2+B-0.5-0.4); - translate([0, 0, -0.5]) cylinder(r=R_I+B+0.4, h=1+(B_P-2-0.2)+2+B-0.5-0.4); - } + // Support ... + translate([0, 0, SPOKE_THICKNESS+(R_I-2-CUT_BASE)/2+SPACING]) cylinder(r=CUT_BASE, h=W-(SPOKE_THICKNESS+(R_I-2-CUT_BASE)/2+SPACING)); + translate([0, 0, W-(B_P-FIX_WIDTH-SPACING)+SPACING]) cylinder(r=R_I+B+THICKNESS, h=(B_P-FIX_WIDTH-SPACING)-SPACING); + translate([0, 0, W-(B_P-FIX_WIDTH-SPACING)-2-B+SPACING]) difference() { + cylinder(r=R_I+B+THICKNESS, h=(B_P-FIX_WIDTH-SPACING)+2+B-SPACING); + translate([0, 0, -0.5]) cylinder(r=R_I+B+SPACING, h=1+(B_P-2-0.2)+2+B-SPACING); + } */ + } + tire(); + } + // to cut and look inside :) + translate([0, 0, -0.5]) cube(size=[R+10, R+10, W+1]); } -tire(); module rim() { color([0.5, 0.5, 1]) { difference() { union() { - cylinder(r=R_I-0.2, h=W-(B_P-2-0.2)); - cylinder(r=R_I+B-0.5, h=2+(B_P-2-0.2)); - translate([0, 0, W-(B_P-2-0.2)-2]) cylinder(r=R_I+B-0.5, h=2); - hull() { - translate([0, 0, (B_P-2-0.2)+B_P]) cylinder(r=R_I+B2, h=2); - translate([0, 0, (B_P-2-0.2)+B_P+B2+0.2]) cylinder(r=R_I-0.2, h=2); + cylinder(r=R_I-SPACING, h=W-(B_P-FIX_WIDTH-SPACING)); + // outer fixing edges + cylinder(r=R_I+B-SPACING, h=FIX_WIDTH+(B_P-FIX_WIDTH-SPACING)); + translate([0, 0, W-(B_P-FIX_WIDTH-SPACING)-FIX_WIDTH]) cylinder(r=R_I+B-SPACING, h=FIX_WIDTH); + // inner fixing edges, 45 degree slope for easier printing + translate([0, 0, FIX_WIDTH+(B_P-FIX_WIDTH-SPACING)+(B_W+SPACING)+SPACING]) hull() { + cylinder(r=R_I+B+THICKNESS, h=FIX_WIDTH); + translate([0, 0, B+THICKNESS+SPACING]) cylinder(r=R_I-SPACING, h=FIX_WIDTH); } - hull() { - translate([0, 0, W-(B_P-2-0.2)-6]) cylinder(r=R_I+B2, h=2); - translate([0, 0, W-(B_P-2-0.2)-6-B2-0.2]) cylinder(r=R_I-0.2, h=2); + translate([0, 0, W-(FIX_WIDTH+(B_P-FIX_WIDTH-SPACING)+(B_W+SPACING))-FIX_WIDTH-SPACING]) hull() { + cylinder(r=R_I+B+THICKNESS, h=FIX_WIDTH); + translate([0, 0, -(B+THICKNESS+SPACING)]) cylinder(r=R_I-SPACING, h=FIX_WIDTH); } } + // make spokes by cutting space between them for (i = [1 : N_SPOKE]) rotate([0, 0, i*360/N_SPOKE]) rim_cut(); + // cut spokes toroidally inside the rim translate([0, 0, SPOKE_THICKNESS+(R_I-2-CUT_BASE)/2]) rotate_extrude(convexity = 10) translate([(R_I-2-CUT_BASE)/2+CUT_BASE, 0, 0]) circle(r = (R_I-2-CUT_BASE)/2); + // remove the rest of spokes translate([0, 0, SPOKE_THICKNESS+(R_I-2-CUT_BASE)/2]) cylinder(r=R_I-2, h=W); + // add axle hole at the center translate([0, 0, -0.5]) linear_extrude(height=W+1) axle(); - translate([0, 0, -1]) cylinder(r=CUT_BASE-2, h=5+(B_P-2-0.2)); + // add center cut around axle hole + translate([0, 0, -1]) cylinder(r=CUT_BASE-2, h=5+(B_P-FIX_WIDTH-SPACING)); + // make spokes convex using another toroidal cut difference() { - translate([0, 0, -1]) cylinder(r=1+R_I+B-0.5/*R_I-2*/, h=1+(B_P-2-0.2)); - translate([0, 0, (B_P-2-0.2)]) - scale([1, 1, (B_P-2-0.2)/((R_I-2-CUT_BASE+2)/2)]) + translate([0, 0, -1]) cylinder(r=1+R_I+B-0.5/*R_I-2*/, h=1+(B_P-FIX_WIDTH-SPACING)); + translate([0, 0, (B_P-FIX_WIDTH-SPACING)]) + scale([1, 1, (B_P-FIX_WIDTH-SPACING)/((R_I-2-CUT_BASE+2)/2)]) rotate_extrude(convexity = 10) translate([(R_I-2-CUT_BASE+2)/2+CUT_BASE-2, 0, 0]) circle(r = (R_I-2-CUT_BASE+2)/2); } @@ -149,8 +165,6 @@ difference() { // angular protector for (i = [1 : N_A]) rotate([0, 0, 360/N_A*i]) protector_single(); - // to cut and look inside :) - translate([0, 0, -0.5]) cube(size=[R+10, R+10, W+1]); } }