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
The printer that I currently am using is a Anycubic Mega S.
Materials
You may find more information and results of the different filament material's I've used at 3D Printing Filaments.
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.
Determine the maximum overhang angle
Try printing a benchmark that tests overhangs such as https://www.thingiverse.com/thing:58218. Keep note of the print settings and adjust each variable to find the best print possible with your printer.
It might be useful to keep in mind the ambient temperature.
Troubleshooting
See these guides:
Common Problems
Symptom | Fix |
---|---|
Layers appears to have holes or pits. | See Under Extrusion below. |
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 |
Zits or warts | Possibly due to over extrusion.
If this happens on a complex surface (such as a round surface), it could be that the printer is stuttering while gcode is being buffered. This can be remedied by adjusting the maximum resolution, maximum deviation in Cura under 'Mesh Fixes' or by decimating the model prior to slicing. |
Stringing | Primary fix is to use retraction to prevent filament from oozing out during travel. This should be enabled by default in Cura.
Increase travel speed also results in less time for filament from oozing out during travel. Reduce temperature may help stop the filament from oozing out. Possibly inferior filament, try a different brand |
Drooping Overhangs | Increase cooling. Slow down print speed to allow for more time for extruded material to cool. Reduce print temperature as much as possible without causing under extrusion. Bed temperature may play a part of the overhangs are close to the bed. |
Under Extrusion | Ensure that the extruder is calibrated.
Ensure the slicer has the right filament diameter set. Under extrusion can be caused by feeding material faster than the hot end can heat and extrude; reduce print speed or increase temperature. Check if the nozzle is clogged by manually feeding filament through a heated nozzle. It should come out straight and cleanly. Excessive resistance through the bowden tube, due to kinks in the tube or a tightly coiled filament (near the end of a roll). Ensure the roll of filament isn't tangled causing excessive resistance. Increase the flow rate. |
Print materials not touching or adhereing | Possibly due to under extrusion.
Nozzle size isn't a multiple of the requested wall size, which may result in a small gap between walls. (eg. asked for 1mm wall with a 0.4mm nozzle). |
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.
Combing is a method a slicer uses to prevent stringing. The head moves inside the object first before traveling across a void. This helps by depositing any excess materials inside before travelling across.
See Also
- GCode Commands: https://marlinfw.org/docs/gcode/
- 3DBenchy - The boat benchmark object: https://www.thingiverse.com/thing:763622
- Help get calibrated - https://teachingtechyt.github.io/calibration.html
- 10 minute retraction calibration - https://www.thingiverse.com/thing:1815784