80 lines
1.9 KiB
OpenSCAD
80 lines
1.9 KiB
OpenSCAD
$fn=100;
|
|
|
|
WIDTH = 76;
|
|
DEPTH = 64;
|
|
THICKNESS = 5;
|
|
|
|
BASE_PLATE_CORNER_RADIUS = 10;
|
|
|
|
VSLOT_WHEEL_HOLE_DIA_SMALL = 5;
|
|
VSLOT_WHEEL_HOLE_DIA_BIG = 7;
|
|
|
|
WHEEL_DIA = 24;
|
|
WHEEL_FLANGE = 2.25;
|
|
|
|
EXTRUSION_WIDTH = 20;
|
|
WHEEL_FLANGE_IN_EXTRUSION_SIZE = 2; // /!\ Max = WHEEL_FLANGE
|
|
|
|
module base_plate ()
|
|
{
|
|
difference()
|
|
{
|
|
linear_extrude(THICKNESS)
|
|
minkowski()
|
|
{
|
|
offset(-BASE_PLATE_CORNER_RADIUS)
|
|
square([WIDTH, DEPTH]);
|
|
circle(BASE_PLATE_CORNER_RADIUS);
|
|
}
|
|
|
|
// Wheel holes
|
|
cy = DEPTH / 2;
|
|
wheel_radius = WHEEL_DIA / 2;
|
|
|
|
translate([10, cy - EXTRUSION_WIDTH / 2 - (wheel_radius - WHEEL_FLANGE_IN_EXTRUSION_SIZE), -1])
|
|
cylinder(h=THICKNESS + 2, r=VSLOT_WHEEL_HOLE_DIA_SMALL / 2);
|
|
|
|
translate([WIDTH - 10, cy - EXTRUSION_WIDTH / 2 - (wheel_radius - WHEEL_FLANGE_IN_EXTRUSION_SIZE), -1])
|
|
cylinder(h=THICKNESS + 2, r=VSLOT_WHEEL_HOLE_DIA_SMALL / 2);
|
|
|
|
translate([10, cy + EXTRUSION_WIDTH / 2 + (wheel_radius - WHEEL_FLANGE_IN_EXTRUSION_SIZE), -1])
|
|
cylinder(h=THICKNESS + 2, r=VSLOT_WHEEL_HOLE_DIA_BIG / 2);
|
|
|
|
translate([WIDTH - 10, cy + EXTRUSION_WIDTH / 2 + (wheel_radius - WHEEL_FLANGE_IN_EXTRUSION_SIZE), -1])
|
|
cylinder(h=THICKNESS + 2, r=VSLOT_WHEEL_HOLE_DIA_BIG / 2);
|
|
}
|
|
}
|
|
|
|
module belt_attach()
|
|
{
|
|
linear_extrude(8)
|
|
union()
|
|
{
|
|
translate([0, THICKNESS - 4])
|
|
union()
|
|
{
|
|
hull()
|
|
{
|
|
translate([2, 1.5]) square([3.5, 2.5]);
|
|
translate([2, 2]) circle(2);
|
|
}
|
|
translate([5.5, 1.5]) square([4.7, 2.5]);
|
|
}
|
|
|
|
translate([5.5 + 4.7, -1]) square([7+1, THICKNESS + 2]);
|
|
}
|
|
}
|
|
|
|
difference()
|
|
{
|
|
base_plate();
|
|
|
|
translate([17, DEPTH / 2 - 4, 0.01])
|
|
rotate([90,0,180])
|
|
belt_attach();
|
|
|
|
translate([WIDTH - 17, DEPTH / 2 + 4, 0.01])
|
|
rotate([90,0,0])
|
|
belt_attach();
|
|
}
|