3D Printing
Concepts
Printing Technologies
Fused Deposition Modeling (FDM)
FDM is the most widely used 3D printing technology. It is an additive manufacturing process that builds an object layer by layer.
Digital Light Processing (DLP)
DLP uses Vat polymerization to create a 3D object. Typically, it uses a photopolymer resin which is then cured when exposed to a lilght source.
File Formats
STL
STL is the De Facto Standard. It is an old format and as a result, it is universally supported. STL stores 3d models geometry as polygons through the process of tessellation. Lots of 3D objects are shared using the STL format, including at Thingiverse.
Limitations of STL are:
- it only works with a single material (and as a consequence, a single color).
- Unique shapes such as a smooth surface are stored as polygons with flat edges.
- The file format is also inefficient and bloated compared to newer formats.
- The format also does not enforce that a surface is closed, requiring repairs to be made
Utilities that work with STL include: VIewSTL, GLC-Player, FreeCAD, Netfabb
OBJ
OBJ originally was used to share 3D graphic models and was later used as a printer file format. The format is open source. Geometry data includes its color, material, and textures. Geometry can be stored as tessellated polygons (like in STL), or with free-form curves / free-form surfaces to allow encoding curved geometry without losing fidelity.
Colors and texture information are stored in a separate Material Template Library (MTL) file.
Limitations with the OBJ format:
- More complicated format; Fixing broken OBJ files is tricky
- Data comes in pairs of files (OBJ and MTL)
- Most CAD software can open, but is less widely supported overall
OBJ files can be found at TurboSquid, Free 3D, GCTrader, Archive3D, Clara, The Free 3D Models, and Oyonale.
AMF
AMF is a 3D printer file format designed by the ASTM. It is designed to address all the limitations with STL and add additional features such as color, materials, lattices, duplicates, orientation. Objects can be represented as triangular meshes like in STL but allows for curved surfaces. Multiple objects can also be placed in the same file the 'constellation' feature.
3MF
3MF is a 3D printer file format designed originally by Microsoft and later by the 3MF Consortium. It is an alternate to AMF.
3MF ensures that models have no cracks or overlapping triangles.
Software Tools
Slicers Overview
| Name | Price | Open source? | Website |
|---|---|---|---|
| Ultimaker Cura | Free | Yes | https://ultimaker.com/software/ultimaker-cura |
| Slic3r | Free | Yes | http://slic3r.org/ |
| PrusaSlicer | Free | Yes | https://www.prusa3d.com/prusaslicer/ |
| OctoPrint | Free | Yes | https://octoprint.org/ |
| Repetier | Free | No | https://www.repetier.com/ |
| KISSlicer | Paid ($35) with free option | No | http://kisslicer.com/ |
| SelfCAD | Paid ($15/mo) | No | https://www.selfcad.com/ |
| Simplify3D | Paid ($150) | No | https://www.simplify3d.com/ |
Ultimaker Cura
Cura can be integrated with OctoPi with the OctoPrint Connection Plugin. Install it from the Cura Marketplace. You can remotely control and see the 3D printer directly from Cura.
OctoPrint
OctoPrint provides a web interface to manage and control a 3D printer. It can be installed on a SBC such as a Raspberry Pi (also called OctoPi). This allows for the option to put any 3D printer somewhere remote, away from a normal desktop computer, and still be accessible via WiFi. A webcam can be attached and OctoPrint will allow video streaming from the webcam via the web interface.
Installing OctoPi on a Raspberry Pi is the same as any other raspberry pi images out there (dd the image to a SD card and boot). To configure WiFi, edit the WPA supplicant configuration file in /boot before first boot. Alternatively, edit /etc/wpa_supplicant/wpa_supplicant.conf after the first boot. To add multiple access points, just add additional network blocks to the configuration file. An example is given below:
network={
ssid="home-net1"
psk="password"
id_str="net1"
}
network={
ssid="home-net2"
psk="password"
id_str="net2"
}
Printer
Materials
PLA
The hot end for PLA should be set to 190-220C. The bed should be between 55-70C. Cooling fans should be on.
| Too Hot | Too Cold | |
|---|---|---|
| Hot End | Excessive stringing
Cannot bridge, sags |
Not adhering to the bed or other layers
Extruder is skipping |
| Print Bed | Elephant's foot, causing first couple layers to melt | Prints aren't adhering |
Note that different color filaments may have different print temperatures.
ABS
The hot end for ABS should be set to 210-250C. The bed should be between 80-110C. ABS should be cooled slowly to avoid warping and should be done inside an enclosure.
PETG
Hot end between 220-250C. Does not need a hot bed.
Configuration
Print speed should be between 40mm/s - 70mm/s. Faster prints may require a hotter extruder temperature to compensate for more materials going through. Printing too fast may result in the material not cooling fast enough by the cooling fan, resulting in uneven layers. Printing too slowly may cause a clog.
Tasks
Extruder Calibration
Extruder Calibration ensures that the extruder is extruding exactly what is asked of it. See https://mattshub.com/blog/2017/04/19/extruder-calibration. If the extruder is under or over extruding, this can be compensated by adjusting the flow rate.
To do this, mark the filament 120mm from where it enters the extruder, turn the printer on and send the following commands which will make the printer extrude 100mm.
M83
G1 E100
If the extruder extruded exactly 100mm, the remaining filament between the extruder and the marking should be 20mm. In my case, I got 26mm remaining. This means that when extruding 100mm, the extruder actually extruded 94mm instead, or 6.38% under extrusion.
Adjust the current extrusion , get the current steps/mm value from the M503 command. In my case, it is E384.00. Multiply this value by the difference (384.00 * 100/94 = 408.51).
> M503
Recv: echo:Steps per unit:
Recv: echo: M92 X80.00 Y80.00 Z400.00 E384.00
Recv: echo:Maximum feedrates (mm/s):
Recv: echo: M203 X500.00 Y500.00 Z8.00 E60.00
Recv: echo:Maximum Acceleration (mm/s2):
Recv: echo: M201 X3000 Y2000 Z60 E10000
Recv: echo:Accelerations: P=printing, R=retract and T=travel
Recv: echo: M204 P3000.00 R3000.00 T3000.00
...
Set the new value using M92 E408.51, then save to EEPROM with M500. Confirm value again with M503 after a power cycle. Redo the test above and verify that it has extruded exactly 100mm.
Finding the best print settings
Determining the best temperature and speed by test printing something starting at 60mm/s, 210C nozzle and 60C bed. Adjust each variable to find the best print possible.
Try printing a 2.5cm cube as a vase (no infill, a wall thickness of 0.5mm with 1 layer wall thickness, no top thickness) at 0.15mm layer height. Use a caliper to determine the actual thickness of the walls and then adjust the flow rate. For example, if the actual wall thickness was 0.45mm, increase the flow rate.
Troubleshooting
Common Problems
| Symptom | Fix |
|---|---|
| Layers appears to have holes or pits. | Under extrusion. Ensure that extruder calibration is done. Try increasing flow rate. Ensure nozzle is not clogged. Do not exceed 115% flow rate as it may mean there are other issues. |
| Over extrusion | Lower the printer's flow rate. Ensure that extruder calibration is done. Ensure that filament diameter is correct in the slicer. Try lowering the print temperature. |
| Droopy Bridges | Reduce flow rate by 5% increments..... |
| Layer delamination | Calibrate flow rate. Increase flow rates by 5% increments |
Glossary
In OcotoPrint:
- The feed rate affects the speed of the print.
- The flow rate affects how much material (in total) is to be extruded. This is also sometimes referred to as the extrusion multiplier.
See Also
- GCode Commands: https://marlinfw.org/docs/gcode/
- 3DBenchy - The boat benchmark object: https://www.thingiverse.com/thing:763622