This is another installment in the monthly, continuing series of Educational Projects by David Thornburg. This October lesson, aimed at middle school students or higher, focuses on an interesting design tool called BlocksCAD. Without further adieu, here's David Thornburg with his monthly lesson!
One of my favorite new 3D design tools is a programming language that design shapes and generates a STL files as its output. This language is called BlocksCAD and it is made by the good folks at Einstein's Workshop (http://www.einsteinsworkshop.com). BlocksCAD is and easy-to-use version of OpenSCAD, a tremendously powerful design tool that can be tricky for younger users to master. If you are familiar with programming languages for kids like Scratch (http://scratch.mit.edu), you already know about coding through the assembly of jigsaw-like pieces to create a program of your own design. BlocksCAD works in a similar way, making it perfect for beginners without limiting the complexity of objects you can design. BlocksCAD works in the cloud, making it perfect for iPads and Chromebooks. To show you how it works, let's design a card holder. While this is not an educational project per se, it showcases the elements of the language. Since “coding” is increasingly of interest in education, it makes sense to highlight the language in this blog.
Go to the BlocksCAD site (https://blockscad.einsteinsworkshop.com) and log in. You will see the screen divided into three areas: a set of colored bars on the left denoting various shapes and operations (the commands of the BlocksCAD language), a window in the center where you will have your program, and a window on the right side where you can see your model as it is progressing. This is also the window you'll use to export your project as an STL file for printing.
Next, in the area to the right of Project Name near the top left of the window, type Card Holder, and click on the 3D shapes button to the left of the screen. This gives you a few options. Click on the Cube icon at it will show up on your center screen.
Enter X, Y and Z values of 60, 95, and 3 mm and choose “centered” for the shape. Press the Render button to see the result.
I like to choose “centered” whenever I can so I know the origin of every object. Objects can be moved and rotated using the transformation tools by pressing the Transforms button on the left side of the screen.
BlocksCAD supports text, so we'll illustrate that next. Click the Text button on the left side of the screen and choose 3D text. This puts an operator on the screen in which you can add your text (I wrote “Genius”), the height of the text in mm, the font (I chose Liberation Serif), and the amount by which the text is extruded (3 mm is fine for us). The only thing that's missing is the “centered” option, which bums me out. The great folks behind BlocksCAD are working on this. But, no problem for us, we have two cool tools in the Transforms button to fix this ― Translate and Rotate. I also used Union from the Set Ops button to combine everything using the Union block. This is important because we will soon rotate the whole plate, and want the cube and the text to stay together.
As you can see, we rotated the text 90º around the Z-axis and translated the text so it is somewhat centered horizontally and located near the top of the cube.
A quick note regarding text: BlocksCAD only provides a few typefaces because they can't go onto your computer and prowl around for your own fonts. Computer-resident software like OpenSCAD doesn't have this restriction. I mention this because it might come up in one of your later projects.
Our next step is to rotate our shape by 60º around the Y-axis so it forms a tilted back for our business card holder.
Once this is done, we make another “cube” with the same dimensions as the first, rotate it 60º the other way (quick, what positive rotation angle is equivalent to rotation by -60º? (No fair looking at the numbers below!)
After doing the rotation, you need to translate the location of the card holder back so it interlocks with the front. You can either use your vast understanding of trigonometry, or tinker around until you get it! I'll let you decide which approach is fastest.
I've chosen to put each of the pieces together with another Union block. The first item is our rotated part with the text. Next, we added the back, and if you click the + sign on the Union block you'll add a place for another part to add.
Now we need a base to hold the stack of cards. To do this, add a cube with X, Y, and X dimensions of 10, 95, and 3 mm. This gives us a flat base you can add to the holder with a Translate command. Add this part to the Union block.
Finally, you need to add a lip to make sure the cards don't slip out the front. This is made with another translated “cube” with X, Y, and Z dimensions of 3, 95 and 10 mm that has been translated into place and added to the Union block.
Now when you render the shape you'll get the finished card holder ready to save as an STL file and send to your printer. If you print the card holder the way it will sit on a desk, your printer will add supports to the interior of the holder that you take off when the print is finished. Now, if you want, you can rotate the entire model by 90º so it prints sideways. This way, no supports are needed, and the finish of the card holder might be prettier. You should try both ways and see which one you like best.
The finished card holder is shown below. The goal of this blog was to show a few of the nice tools in BlocksCAD. You should continue to experiment on your own and let me know how you like the language.