46 lines
800 B
OpenSCAD
46 lines
800 B
OpenSCAD
|
|
slack = 0.5;
|
|
m3Diameter = 3.0;
|
|
m3Radius = m3Diameter/2.0;
|
|
m3ptr = m3Radius + slack;
|
|
|
|
legLength = 60;
|
|
|
|
|
|
module baseLeg(legLength) {
|
|
difference() {
|
|
cube(size=[16,16, legLength]);
|
|
|
|
translate(v=[4,4,4])
|
|
cube(size=[16, 16, legLength-2*4]);
|
|
}
|
|
}
|
|
|
|
|
|
module leg(ui) {
|
|
assert(ui > 0);
|
|
|
|
legLength = 20 + (ui-1)*10;
|
|
|
|
difference() {
|
|
baseLeg(legLength);
|
|
|
|
union() {
|
|
for (i = [0:ui-1]) {
|
|
translate(v=[0,10,(i+1)*10])
|
|
rotate(a=[0,90,0])
|
|
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
|
|
|
|
translate(v=[10,0,(i+1)*10])
|
|
rotate(a=[90,0,0])
|
|
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
|
|
}
|
|
|
|
translate(v=[10,10,legLength/2])
|
|
cylinder(h = legLength*2, r = m3ptr, $fn=32, center=true);
|
|
}
|
|
}
|
|
}
|
|
|
|
leg(18);
|