59 lines
1.7 KiB
OpenSCAD
59 lines
1.7 KiB
OpenSCAD
|
// LEGO-like tire 81.6x50... Dunno where it's 81.6, it's 84 in fact...
|
||
|
// (c) Vitaliy Filippov 2014, license: CC-BY-SA 3.0
|
||
|
|
||
|
$fn=60;
|
||
|
R=42; // outer radius
|
||
|
W=50; // tire width
|
||
|
N_L=4; // number of lateral protectors
|
||
|
N_A=20; // number of angular protectors
|
||
|
|
||
|
difference() {
|
||
|
hull() {
|
||
|
translate([0, 0, 2]) cylinder(r=R, h=W-4);
|
||
|
cylinder(r=R-2, h=W);
|
||
|
}
|
||
|
// center hole through all piece
|
||
|
translate([0, 0, -0.5]) cylinder(r=26.5, h=W+1);
|
||
|
// top hole
|
||
|
translate([0, 0, W-4]) cylinder(r=29, h=5);
|
||
|
hull() {
|
||
|
translate([0, 0, W-1.5]) cylinder(r=29, h=1.5);
|
||
|
translate([0, 0, W]) cylinder(r=30.5, h=1);
|
||
|
}
|
||
|
// bottom hole
|
||
|
translate([0, 0, -1]) cylinder(r=29, h=5);
|
||
|
hull() {
|
||
|
translate([0, 0, 0]) cylinder(r=29, h=1.5);
|
||
|
translate([0, 0, -1]) cylinder(r=30.5, h=1);
|
||
|
}
|
||
|
// inside cut
|
||
|
translate([0, 0, 4+1.5]) cylinder(r=R-3, h=W-(4+1.5)*2);
|
||
|
difference() {
|
||
|
translate([0, 0, 2.5]) cylinder(r=R-3, h=W-2.5*2);
|
||
|
cylinder(r=31, h=W);
|
||
|
}
|
||
|
// lateral protector
|
||
|
for (i = [1 : N_L])
|
||
|
translate([0, 0, -1+i*W/(N_L+1)]) difference() {
|
||
|
cylinder(r=R+1, h=2.5);
|
||
|
translate([0, 0, -0.1]) cylinder(r=R-1, h=2.5+0.2);
|
||
|
}
|
||
|
// 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.1]) cube(size=[100, 100,100]);
|
||
|
}
|
||
|
|
||
|
module protector_single() {
|
||
|
difference() {
|
||
|
union() {
|
||
|
translate([(W/2)/2, 0, W/2]) rotate([0, -45, 0]) cube(size=[2, R+4, sqrt((W/2)*(W/2)*2)]);
|
||
|
translate([-(W/2+2)/2, 0, 0]) rotate([0, 45, 0]) cube(size=[2, R+4, sqrt((W/2+2)*(W/2+2)*2)]);
|
||
|
}
|
||
|
translate([0, 0, -0.5]) cylinder(r=R-1, h=W+1);
|
||
|
translate([0, 0, W]) cylinder(r=R+10, h=10);
|
||
|
translate([0, 0, -10]) cylinder(r=R+10, h=10);
|
||
|
}
|
||
|
}
|