It is important to think ahead when designing for 3D printing. Unfortunately, the volume of thermoplastics is not static after extrusion. It swells when it is hot and shrinks when cooling down. Since we are using PLA and not ABS plastic, this will not be a big issue.
I started off by making a test print of a LEGO-brick on my Materia 101 3D printer and noticed that the outer borders of the bottom of the piece were too thick. The piece would not fit on top of a LEGO piece. That's why I removed material from the border to make it only 1 mm thick.
Let's talk about "Overhang", this is a keyword in 3D printing. Simply put: It's hard to print things in mid-air with no support underneath. The plastic starts to sag if this is done incorrectly. It is in these situations, we need to use our wits and think about ways of cheating gravity:
Find the right orientation for the object: These are the two objects that we are going to print (Download bottom stl, top stl, and here is the FreeCAD file, if you feel like modifying it). The main goal when choosing an orientation of the object we are trying to print is to avoid overhangs and steep angles. If you look at the picture below you will see that I have decided to print the “Bottom.stl” with the “LEGO” part downward. This is because of the big area facing upwards where the Arduino fits. Also notice the “pegs” that the Arduino is meant to rest on, if we were to print these hanging in the air, the printer would have nothing to print them on. You could fix this by using support material, but this would still result in an uneven surface where we want a flush even surface. The orientation of the print also plays a role.
Use support material: There is an option in Slic3r to use “Support material”. This option adds objects to your print that are easy to remove afterwards and makes it possible to print objects that would otherwise be difficult. These are printed in a less solid manner and their only purpose is to hold free hanging objects and steep slopes up when printing them. I will walk you through the support settings under the step “Slic3r settings”.
For this specific item (the lego brick parts) we will need to be extra careful when printing the first layer. There are two related issues here:
What kind of print surface? I chose to use blue painters tape for this print. It is much better to use this tape when not having a heated bed, than hairspray. You can simply tape over your glass plate and make sure that it is even and firmly sticking to the surface. The absolute best tape for this purpose without a doubt is ScotchBlue 2090.
The print bed must be level and at the correct distance from the nozzle. It is paramount for this print (and all others, if you care about precision) to have the bed leveled correctly.
- The nozzle must be right distance from the surface.
- There is an end stop that confirms that print-surface is the right distance from the nozzle and this is adjusted by a screw with a big plastic turn-wheel. This screw is located on the print-bed inwards the printer. When you have adjusted each screw on each corner of the print-bed, you can experiment with this “overall-screw” to get the perfect first layer.
- The thickness of each line being laid down and the temperature of the plastic is very important. When we adjust the bed for the LEGO-compatible casing we must adjust the lines of plastic to look something like the green line in the middle showed in the picture below. If the lines are like the blue one the object won’t stick to the bed. If the nozzle is too close to the bed it might result in something similar to the red line or nothing at all. We really want to avoid a result like the red line since it could result in an extruder malfunction. If pressure inside of the nozzle builds up and the plastic filament is ejected “the wrong way” inside the hot-end and extruder it could cause a blocked hot-end filled with plastic.
These are the settings we are going to use (download the settings file here). However I will walk you through the settings here so that you might gain some insight into the meaning of the words used by Slic3r. It is a .ini file that you load into Slic3r from the file-menu.
Print settings/Layers and Perimeters/Layer height
The layer height is the closest thing to resolution when describing the quality of a 3D print.
Thinner layers equals better bonding between layer and a smoother surface on the printed object, however it takes much more time to print. The thinnest layer possible for your printer is 0.05mm.
Thicker layers are faster to print but could result in weaker bonding between layer if they are printed at a low temperature. The thickest layer possible on your materia printer is 0.28 mm.
On this print we will settle at a medium quality layer height of 0.15 mm.
First layer: We should have a thicker layer on the first layer of the print. Let’s try a thickness of 0.25 mm.
Print settings/Layers and Perimeters/Perimeters
The perimeters are the lines of plastic that contain the infill. They could also be described as the inner and outer walls of the print. The amount of walls needed decides how strong the object will be as much as the infill does.
Print settings/Infill/Fill density
Infill is a value represented in percentage that shows how much a model is filled in with material when printed. Unless you want maximum strength, you do not need 100% fill of a model, especially if you want to save money on material costs, have a lighter model that will print faster. 20-30% percent Infill is usually more than enough for normal use. Actually we can use a efficient fill-pattern instead of filling out the model completely. Honeycomb patterns are well known for strength and rigidity. We will use an infill of 20% on this print.
Print settings/Advanced/Extrusion width
Extrusion Width is the thickness of a single filament extruded either in free air or above a surface. It's not the distance of two paths next to each other since some overlap will be generally applied in order to get better bonding. Slic3r can calculate the extrusion width automatically, but for sake of this exercise we are going to manually set it. The copper nozzle that heats up and extrudes the molten plastic, has a hole with a diameter of 0.35 mm. Best results are obtained when layer height is less than 80% of your nozzle diameter, and with an extrusion width more than or equal to your nozzle diameter. It is recommended that you should not have a extrusion width higher than 120% of your nozzle diameter. Therefor we will use a default extrusion width of 0.42 mm. This is the thickness of the material extruded in free air (for example over a “bridge”) or when it is put down on top of a layer.
Print settings/Advanced/Bridge flow ratio
When you extrude plastic between two “towers” or “walls” that are not connected with each other, you are creating what is commonly called a “bridge”. Imagine soft plastic being extruded and pulled at the same time in mid air, that is what the printer does when creating a bridge. The plastic has a certain elasticity, which we can use to make sure that the free-hanging strains of plastic does not start to sag between the towers. Therefore we will lower the bridge flow ration a bit to make the thread thinner when moving the extruder faster over the bridge. Thinner means lighter and less prone to sag.
I want to show you how I made the LEGO compatible pieces accurately and easily without taking all the measurements.
Download this macro for FreeCAD.
- Make a new macro in FreeCAD.
- Go to the Macro menu.
- Click on “Macros…”.
- Click create in the panel that opens.
- Enter a name of your choosing, for example “LEGO” and click OK. A text editor will open.
- Open the file you downloaded from Thingiverse with a text-editor and copy the code with ctrl+c.
- Paste the code into the text-editor inside FreeCAD and click on the X on the tab with the name LEGO.FCMacro down near the edge of the screen. It will ask you if you want to save the document. Click "Yes".
- Now you can find your LEGO macro in the Macro panel in the Macro menu.
Make your first LEGO compatible brick
- Open the Part design workbench from the workbench drop-down menu.
- Click on the LEGO.FCMacro in the macro panel and then on "execute".
- You will see a 2x4 standard brick on the screen.
- You can change the size of the brick by clicking on the object named "LEGO" in the Model tab and then going to the "Data" down in the left corner.
- In my model of the Arduino Casing I've used a 3 x 7 size piece.