**** UPDATED 03/07/2020 **** Changed the Y and N (Yes and No) constants to +999 and -999 to avoid problems with connector socket angles of +1 or -1. **** UPDATED 03/05/2020 **** * Fixed bug that prevented cutting the down (bottom) face socket. * Added fudge to socket angle to get around a SCAD cgal error when the angle was exactly 0 or 90 degrees. ****
I am a backer of Joe Larson's PrintABlok Kickstarter. He is developing a large set of models that can be used to create awesome mechs.
I have developed "baseBloks.scad" with a "baseBloks" main module that allows the creation of many types of standard and custom bloks. This module allows you to:
* Create a blok with any width, depth or height. By default the module creates the Joe Larson 16mm cube base blok.
* Specify for each of the four vertical faces if the edges of the face should be chamfered or plain. By default all edges are chamfered like Joe Larson's base blok.
* Specify for each of the six faces if it should include a centered connector socket. By default all faces include a centered connector socket like Joe Larson's base blok.
* Specify the size of the connector sockets on the faces. By default the connector socket is the size of Joe Larson's connector socket.
* Specify the angle of the connector socket on each face relative to the face edge. By default all connector sockets are drilled at 45 degrees to match Joe Larson's base blok and allow printing without needing supports. The top face socket can be set to any angle without support issues but a socket at another angle on any other face might need supports especially if the angle is set to zero to make the socket edges parallel to the face edges. Note that openSCAD can not render some combinations of sockets on different angles that 45 degrees.
The "makeBloks.scad" file contains the code that made all of theincluded models. Some simple examples of the flexibility:
//Make Joe Larson's basic blok: baseBlok();
//Make Joe Larson's basic blok with no upper (top) connector socket baseBlok(connU=N);
//Make Joe Larson's basic blok with connector sockets only on the left and right faces baseCube(connL=Y,connR=Y);
//Make a double blok by digitally connecting two blocks with plain faces: baseBlok(plainR=Y,connR=N); //Blok with plain right face and no socket translate([baseSize,0,0]) baseBlok(plainL=Y,connL=N); //Blok with plain left face and no socket
All plain faces have an added 0.001 to ensure a clean union between two plain faces. This should be small enough to not cause issues if a block with one or more plain faces is printed in isolation.
I have been scaling all of Joe's parts by 1.125 to get an 18mm base size which is evenly divisible by 0.10, 0.12, 0.15, 0.20, 0.24, 0.30, or 0.40 layer height or nozzle width. I have been printing 18mm bloks at 0.15 layer height on my Prusa Mini with excellent results. The increase in dimensions helps with connector adhesion and the "18mm" connectors seem to work better than the "16mm" connectors because of the slight increase in tolerances.
An example of the type of custom bloks that can be modeled
//Set default size to 24mm with sockets for the 16mm connectors baseSize = 24.0; baseConn = 16.0; baseHalf = baseSize / 2.0; //Make a 48W x 12D x 24H plate with left front and right back connectors baseCube(blokDeep=baseHalf,plainR=Y,connF=Y); //Left translate([baseSize,0,0]) baseCube(blokDeep=baseHalf,plainL=Y,connB=Y); //Right
You will need to download the half negative connector from the Thingaverse PrintABlok block and connector file at https://www.thingiverse.com/thing:4171518 Either rename it to "connNegHalf.stl" or change the name embedded in the"getConnNeg" module in "baseBloks.scad"
You can find the kickstarter for the project here https://www.kickstarter.com/projects/3dpprofessor/printablok-mechs
Thank you to Joe Larson for an awsome kickstarter and the early public release of the base bloks and connectors. Please give Joe and me credit if you remix and distribute additional scad modules based on our work.