3dprint/track-attach.scad

41 lines
1.2 KiB
OpenSCAD

// Rubber attachment for track element, something like lego 14149
// (c) Vitaliy Filippov, 2014, license: GPL 3.0+
$fn=20;
difference() {
union() {
hull() {
cylinder(r=2.4, h=4);
translate([0, 16, 0]) cylinder(r=2.4, h=4);
translate([0, 0, 3]) cylinder(r=4, h=1);
translate([0, 16, 3]) cylinder(r=4, h=1);
}
cylinder(r=2.4, h=9);
translate([0, 16, 0]) cylinder(r=2.4, h=9);
translate([0, 0, 8.3]) hull() {
cylinder(r=2.8, h=1);
translate([0, 0, -0.6]) cylinder(r=2.4, h=1+0.6*2);
}
translate([0, 16, 8.3]) hull() {
cylinder(r=2.8, h=1);
translate([0, 0, -0.6]) cylinder(r=2.4, h=1+0.6*2);
}
}
hull() {
translate([4, 0, 8.5]) scale([8, 1, 1]) rotate([-90, 0, 90]) wedge();
translate([-4, -0.5, 8.5]) cube(size=[8, 1, 4]);
}
hull() {
translate([4, 16, 8.5]) scale([8, 1, 1]) rotate([-90, 0, 90]) wedge();
translate([-4, 16-0.5, 8.5]) cube(size=[8, 1, 4]);
}
translate([2.4, -4, 7]) cube(size=[2, 8, 4]);
translate([-2.4-2, -4, 7]) cube(size=[2, 8, 4]);
translate([2.4, 16-4, 7]) cube(size=[2, 8, 4]);
translate([-2.4-2, 16-4, 7]) cube(size=[2, 8, 4]);
}
module wedge() {
linear_extrude(height=1) polygon(points=[[-0.5, 0], [0.5, 0], [0, 1]]);
}