fix spacings, make spacing and fixing width also parameters, remove B2 parameter
parent
38113e5caf
commit
fa4f59f538
|
@ -12,8 +12,8 @@ THICKNESS=2.5;
|
||||||
PROT_DEPTH=1;
|
PROT_DEPTH=1;
|
||||||
PROT_L_WIDTH=2;
|
PROT_L_WIDTH=2;
|
||||||
PROT_A_WIDTH=2;
|
PROT_A_WIDTH=2;
|
||||||
|
FIX_WIDTH=2;
|
||||||
B=2.5; // width of edge for the rim
|
B=2.5; // width of edge for the rim
|
||||||
B2=B+2;
|
|
||||||
B_W=1.6; // thickness of edge for the rim
|
B_W=1.6; // thickness of edge for the rim
|
||||||
B_P=4; // position of edge for the rim
|
B_P=4; // position of edge for the rim
|
||||||
W=50; // tire width
|
W=50; // tire width
|
||||||
|
@ -25,8 +25,9 @@ CUT_BASE=8;
|
||||||
CUT_ANGLE=12;
|
CUT_ANGLE=12;
|
||||||
CUT_I_R=1.5;
|
CUT_I_R=1.5;
|
||||||
CUT_O_R=2;
|
CUT_O_R=2;
|
||||||
|
SPACING=0.2;
|
||||||
|
|
||||||
/*// 6-spoke variant
|
// 6-spoke variant
|
||||||
N_SPOKE=6;
|
N_SPOKE=6;
|
||||||
CUT_ANGLE=21;
|
CUT_ANGLE=21;
|
||||||
CUT_I_R=2.5;
|
CUT_I_R=2.5;
|
||||||
|
@ -37,57 +38,72 @@ N_L=2;
|
||||||
R=22;
|
R=22;
|
||||||
BEVEL=1;
|
BEVEL=1;
|
||||||
THICKNESS=1.5;
|
THICKNESS=1.5;
|
||||||
|
FIX_WIDTH=1;
|
||||||
PROT_A_WIDTH=1;
|
PROT_A_WIDTH=1;
|
||||||
PROT_L_WIDTH=1;
|
PROT_L_WIDTH=1;
|
||||||
B=1.5;
|
B_P=3;
|
||||||
B2=B+0.5;
|
B=1;
|
||||||
R_I=15;
|
R_I=15;
|
||||||
CUT_O_R=1;
|
CUT_O_R=1;
|
||||||
CUT_BASE=5;
|
CUT_BASE=5;
|
||||||
W=20;*/
|
W=20;
|
||||||
|
|
||||||
translate([0, 0, W]) rotate([180, 0, 0]) {
|
difference() {
|
||||||
rim();
|
union() {
|
||||||
|
translate([0, 0, W]) rotate([180, 0, 0]) {
|
||||||
|
rim();
|
||||||
/*
|
/*
|
||||||
// Support ...
|
// 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, 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-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-FIX_WIDTH-SPACING)+SPACING]) cylinder(r=R_I+B+THICKNESS, h=(B_P-FIX_WIDTH-SPACING)-SPACING);
|
||||||
translate([0, 0, W-(B_P-2-0.2)-2-B+0.5+0.4]) difference() {
|
translate([0, 0, W-(B_P-FIX_WIDTH-SPACING)-2-B+SPACING]) difference() {
|
||||||
cylinder(r=R_I+B+2, h=(B_P-2-0.2)+2+B-0.5-0.4);
|
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+0.4, h=1+(B_P-2-0.2)+2+B-0.5-0.4);
|
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() {
|
module rim() {
|
||||||
color([0.5, 0.5, 1]) {
|
color([0.5, 0.5, 1]) {
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
cylinder(r=R_I-0.2, h=W-(B_P-2-0.2));
|
cylinder(r=R_I-SPACING, h=W-(B_P-FIX_WIDTH-SPACING));
|
||||||
cylinder(r=R_I+B-0.5, h=2+(B_P-2-0.2));
|
// outer fixing edges
|
||||||
translate([0, 0, W-(B_P-2-0.2)-2]) cylinder(r=R_I+B-0.5, h=2);
|
cylinder(r=R_I+B-SPACING, h=FIX_WIDTH+(B_P-FIX_WIDTH-SPACING));
|
||||||
hull() {
|
translate([0, 0, W-(B_P-FIX_WIDTH-SPACING)-FIX_WIDTH]) cylinder(r=R_I+B-SPACING, h=FIX_WIDTH);
|
||||||
translate([0, 0, (B_P-2-0.2)+B_P]) cylinder(r=R_I+B2, h=2);
|
// inner fixing edges, 45 degree slope for easier printing
|
||||||
translate([0, 0, (B_P-2-0.2)+B_P+B2+0.2]) cylinder(r=R_I-0.2, h=2);
|
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-(FIX_WIDTH+(B_P-FIX_WIDTH-SPACING)+(B_W+SPACING))-FIX_WIDTH-SPACING]) hull() {
|
||||||
translate([0, 0, W-(B_P-2-0.2)-6]) cylinder(r=R_I+B2, h=2);
|
cylinder(r=R_I+B+THICKNESS, h=FIX_WIDTH);
|
||||||
translate([0, 0, W-(B_P-2-0.2)-6-B2-0.2]) cylinder(r=R_I-0.2, h=2);
|
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])
|
for (i = [1 : N_SPOKE])
|
||||||
rotate([0, 0, i*360/N_SPOKE]) rim_cut();
|
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])
|
translate([0, 0, SPOKE_THICKNESS+(R_I-2-CUT_BASE)/2])
|
||||||
rotate_extrude(convexity = 10)
|
rotate_extrude(convexity = 10)
|
||||||
translate([(R_I-2-CUT_BASE)/2+CUT_BASE, 0, 0]) circle(r = (R_I-2-CUT_BASE)/2);
|
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);
|
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, -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() {
|
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, -1]) cylinder(r=1+R_I+B-0.5/*R_I-2*/, h=1+(B_P-FIX_WIDTH-SPACING));
|
||||||
translate([0, 0, (B_P-2-0.2)])
|
translate([0, 0, (B_P-FIX_WIDTH-SPACING)])
|
||||||
scale([1, 1, (B_P-2-0.2)/((R_I-2-CUT_BASE+2)/2)])
|
scale([1, 1, (B_P-FIX_WIDTH-SPACING)/((R_I-2-CUT_BASE+2)/2)])
|
||||||
rotate_extrude(convexity = 10)
|
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);
|
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
|
// angular protector
|
||||||
for (i = [1 : N_A])
|
for (i = [1 : N_A])
|
||||||
rotate([0, 0, 360/N_A*i]) protector_single();
|
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]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue