scadstuff/L-Core/lead-screw-constraint-front...

56 lines
1.8 KiB
OpenSCAD

$fn=60;
// Physical dimensions
EXTRUSION_WIDTH = 40;
EXTRUSION_HEIGHT = 40;
EXTRUSION_GROOVE_WIDTH = 8.2;
MOTOR_WIDTH = 43.0;
MOTOR_HEIGHT = 43.0;
MOTOR_DEPTH = 40.0;
MOTOR_CORNER = 4.5;
MOTOR_SHAFT_HOLE_DIAMETER = 24;
BOLT_HOLE_DIAMETER = 6.4; // M6
BOLT_HOLE_HEAD_DIAMETER = 11; // M6
MGN_RAIL_WR = 12;
MGN_RAIL_HR = 8;
F688ZZ_D = 16;
// Parameters
CORNER_SIZE = 5.0; // Part corner size
MOTOR_TO_BORDER_CLEARANCE = 5.0;
CHAMFER_SIZE = 1;
EXTRUSION_BORDER_CLEARANCE = 4; // Distance between extrusion and part borders
EXTRUSION_GROOVE_SLIDE_CLEARANCE = 0.2; // Slide to groove clearance
EXTRUSION_GROOVE_SLIDE_DEPTH = 2; // Slide depth
// Variables
total_width = EXTRUSION_WIDTH - EXTRUSION_BORDER_CLEARANCE + MOTOR_WIDTH + MOTOR_TO_BORDER_CLEARANCE;
total_height = EXTRUSION_HEIGHT - EXTRUSION_BORDER_CLEARANCE + MOTOR_HEIGHT + MOTOR_TO_BORDER_CLEARANCE;
//minkowski()
{
linear_extrude(8 - CHAMFER_SIZE)
difference()
{
hull()
{
square([EXTRUSION_WIDTH + 3, EXTRUSION_HEIGHT + 3]);
translate([EXTRUSION_WIDTH + MOTOR_WIDTH / 2, EXTRUSION_HEIGHT + MOTOR_HEIGHT / 2]) circle(F688ZZ_D/2 + MOTOR_TO_BORDER_CLEARANCE);
}
translate([-1, -1]) square([EXTRUSION_WIDTH + 1, EXTRUSION_HEIGHT +1]);
translate([EXTRUSION_WIDTH + MOTOR_WIDTH / 2, EXTRUSION_HEIGHT + MOTOR_HEIGHT / 2]) circle(F688ZZ_D/2);
translate([EXTRUSION_WIDTH / 2 - MGN_RAIL_WR / 2, EXTRUSION_HEIGHT - 1]) square([MGN_RAIL_WR, MGN_RAIL_HR + 1]);
square([EXTRUSION_WIDTH / 2 - MGN_RAIL_WR / 2, EXTRUSION_HEIGHT + MGN_RAIL_HR + 10]);
square([EXTRUSION_WIDTH + 10, EXTRUSION_BORDER_CLEARANCE]);
}
translate([CHAMFER_SIZE, CHAMFER_SIZE]) cylinder(CHAMFER_SIZE,CHAMFER_SIZE,0);
}