First checkin
This commit is contained in:
+70
@@ -0,0 +1,70 @@
|
||||
// --------------------------------------------------------------------
|
||||
// Build a plate with holesfor using it with the frames
|
||||
// --------------------------------------------------------------------
|
||||
/* [Connector Options] */
|
||||
// The width of the plate
|
||||
Plate_width = 240;
|
||||
// The deepth of the plate
|
||||
Plate_deepth = 210;
|
||||
// The height of the plate
|
||||
Plate_height = 3;
|
||||
// The diameter of the holes
|
||||
Hole_diameter = 10;
|
||||
// Use corner cutouts?
|
||||
Corner_cutouts = false;
|
||||
|
||||
|
||||
/* [Hidden] */
|
||||
|
||||
include <BOSL2/std.scad>
|
||||
|
||||
include <static.scad>
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// A baseplate with holes and, if appliceable, cut outs at the corners
|
||||
// --------------------------------------------------------------------
|
||||
module baseplate(width, deepth, height, diameter, corners) {
|
||||
platesize = [deepth, width, height];
|
||||
difference () {
|
||||
cube(platesize, center = true);
|
||||
holes(platesize, diameter, corners);
|
||||
if (corners)
|
||||
corners(CONNECTOR_LENGTH, width, deepth);
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// Holes in the baseplate
|
||||
// Uses the convinient BOSL2 library for putting the holes on the plate
|
||||
// --------------------------------------------------------------------
|
||||
module holes(ps = [0,0,0], dm = 20, c = false) {
|
||||
fact = 5 - floor(sqrt(dm));
|
||||
translate([0,0,-ps[2]])
|
||||
grid_copies(n = [11 * fact, 8 * fact], size = [ps[0] - (c ? 15 : 0) - dm * (fact+1), ps[1] - (c ? 15 : 0) - dm * (fact+1)], stagger = true)
|
||||
cylinder(d = dm, h = 2*ps[2]);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// Corner cutouts for the frame
|
||||
// Required only if the frame doesn't have the attachments to put the
|
||||
// baseplate on it. In that case the plate lies directly on the frame's
|
||||
// struts and the corners need to be cut out to place the plate.
|
||||
// --------------------------------------------------------------------
|
||||
module corners(size, width, deepth) {
|
||||
x = (deepth - size) / 2;
|
||||
y = (width - size) / 2;
|
||||
|
||||
translate([x, y, 0])
|
||||
cube(size, center = true);
|
||||
translate([-x, y, 0])
|
||||
cube(size, center = true);
|
||||
translate([-x, -y, 0])
|
||||
cube(size, center = true);
|
||||
translate([x, -y, 0])
|
||||
cube(size, center = true);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// do it!
|
||||
baseplate(width=Plate_width, deepth=Plate_deepth, height=Plate_height, diameter=Hole_diameter, corners = Corner_cutouts);
|
||||
Reference in New Issue
Block a user