First checkin

This commit is contained in:
2026-04-06 12:05:23 +02:00
parent c37f0032d2
commit bac2293dce
17 changed files with 277 additions and 0 deletions
+70
View File
@@ -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);