Brief introduction to 3D printing under Linux
3D technology and 3D printing are under quick development at this time. They have big future and can involve all parts of our live. But they are still quite expensive for normal user. BUT …. everything is changing. The 3D printing based on FDM technology is suitable and accessible for everybody.
Principles
The principles of 3D printing is almost common to all kinds of technology. The model is printed layer by layer as described bellow by FDM technology.
FDM – (Fused deposition modeling) is an additive manufacturing technology used for modeling, works on an “additive” principle by laying down material in layers; a plastic filament or metal wire is unwound from a coil and supplies material to produce a part.
As a filament the 3D printer uses thermoplastic materials as ABS or PLA in many colors. You can find other materials of course. But these ones are the most using.
ABS – Acylonitrile Butadiene Styrene, is an oil-based plastic. It is a strong, sturdy material that businesses widely use for constructing things such as plastic car parts, musical instruments, and the ever-popular Lego building blocks. ABS has a high melting point, and can experience warping if cooled while printing. Because of this, ABS objects must be printed on a heated surface, which is something many at-home printers do not have.
PLA – Poly Lactic Acid, is a biodegradable thermoplastic aliphatic polyester derived from renewable resources, such as corn starch (in the United States and Canada), tapioca roots, chips or starch (mostly in Asia), or sugarcane (in the rest of the world). In 2010, PLA had the second highest consumption volume of any bioplastic of the world.
Preparing model and data
At the beginning there is the most important thing – your IDEA. You have to know what to print, what do you want to have in real. After that you need to transfer your idea/model to digital data – modeling it by software like CAD or others modeling tools.
But do not be distressed. If you do not know what to print or you do not know how to use software for any reason – there is again your big friend – Internet – with big library of models for you. For example http://www.thingiverse.com where you can choose from many prepared models in suitable format for Slic3r. So you can skip steps about modeling and go straight to prepare data to your printer by Slic3r.
Openscad
OpenSCAD is a free software for creating solid 3D CAD models. OpenSCAD provides two main modelling techniques: First there is constructive solid geometry (aka CSG) and second there is extrusion of 2D outlines. As data exchange format format for this 2D outlines Autocad DXF files are used. In addition to 2D paths for extrusion it is also possible to read design parameters from DXF files. Besides DXF files OpenSCAD can read and create 3D models in the STL and OFF file formats.
To install it just type:
$ sudo pacman -Sy openscad
and launch the program:
$ openscad
Freecad
FreeCAD is a parametric 3D modeler made primarily to design real-life objects of any size and based on OpenCascade, QT and Python,. Parametric modeling allows you to easily modify your design by going back into your model history and changing its parameters. FreeCAD is open-source and highly customizable, scriptable and extensible. It can reads and writes many open file formats such as STEP, IGES, STL, SVG, DXF, OBJ, IFC, DAE and many others.
Install program:
$ sudo pacman -S freecad
and launch
$ freecad
and finally my favourit program. It is one of the best open source not only modeling programs.
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing and motion tracking, even video editing and game creation.
$ sudo pacman -S blender $ blender
After creation of your first model you need to export it to STL format which is used by Slic3r (see bellow) or other printer preparing software. This is also time to check if your STL file is not corrupted and fix possible errors.
Netfabb
Netfabb is an advanced software for professional editing of 3D printing data. It is licensed for non-commercial use only and features most of the tools used daily by professionals in additive manufacturing and 3D printing.
Most CAD systems and scanners for personal use create STL or OBJ data but the files often need to be edited for a good result. You may also wish to make solid parts hollow or add text or graphic elements and other features to a part before starting the 3D printer. netfabb Private will provide you with a fully-loaded tool-box to do all this and much more:
- fix complicated file errors
- make late design changes
- combine parts into one
- hollow out solid parts into a shell
- smooth the mesh to improve surfaces
- reduce file size
- edit parts on a triangle level to increase quality
- add text
- add graphic elements (pictures, textures, logos)
- design and create 3D parts in full color
- directly load your scans from Microsoft® Kinect® scanner into netfabb
- create 3D parts from 2D pictures
- merge parts together or subtract from each other with powerful 3D Boolean operations
- cut out areas from surfaces and extract them
- make design changes and add from a variety of included geometric primitives
- Text and Image Labeling function
netfabb is not at official repository so you must install it from AUR using yaourt
$ yaourt netfabb-basic $ netfabb-basic
Slic3r
Slic3r is the tool you need to convert a 3D model into printing instructions for your 3D printer. It cuts the model into horizontal slices (layers), generates toolpaths to fill them and calculates the amount of material to be extruded.
again – not at official repo and need to be build from AUR
$ yaourt slic3r $ slic3r
The 3D printer is basically CNC machine so it uses G-code. Bellow you can see the part of code which control your printer to print model of Batman:
; generated by Slic3r 1.2.9 on 2015-11-13 at 22:23:39 ; external perimeters extrusion width = 0.50mm ; perimeters extrusion width = 0.58mm ; infill extrusion width = 0.58mm ; solid infill extrusion width = 0.58mm ; top infill extrusion width = 0.58mm M107 M104 S220 ; set temperature G28 ; home all axes G1 Z5 F5000 ; lift nozzle M109 S220 ; wait for temperature to be reached G21 ; set units to millimeters G90 ; use absolute coordinates M82 ; use absolute distances for extrusion G92 E0 G1 Z0.500 F7800.000 G1 E-2.00000 F2400.00000 G92 E0 G1 X57.745 Y72.602 F7800.000 G1 E2.00000 F2400.00000 G1 X68.665 Y64.407 E2.86216 F1800.000
If you have right configured Slic3r according to your printer you can generate G-code – Expor G-code – and generated file upload to printer. And after some not short time you can see your model in real 🙂
Some my real models made only for presentation – so low quality:
Printers
In this field you have many choices. The best known man of open source 3D printing is Josef Prusa (Czech man and I am proud of him) and his open source project RepRap. His newest printer Prusa i3 Plus (2015) is suitable for everybody. It is low cost printer for every user.
Of course you can choose another one. Everything is up to you. Google is your friend
Conclusion
This article is not focused to be detailed how-to. 3D printing is very complex field of interest and every part of this tutorial can be described by the numbers of how-to’s. The scope is to show you the basics and what is necessary to know and have at start line of your 3D printing.
GOOD LUCK WITH YOUR FIRST MODELS