Differences between revisions 2 and 3
Revision 2 as of 2014-02-25 13:35:37
Size: 1225
Editor: ElenaGrandi
Comment: Some informations on hardware
Revision 3 as of 2014-04-08 11:32:58
Size: 4266
Editor: ElenaGrandi
Comment: Software overview
Deletions are marked like this. Additions are marked like this.
Line 19: Line 19:
 * [[https://www.lulzbot.com/|LulzBot]]: FSF certified [[http://www.fsf.org/resources/hw/endorsement/respects-your-freedom|RespectYourFreedom]] hardware.
 * [[http://reprap.org/wiki/RepRap|RepRapFamily]]: many models, sold from various vendors as either kits or assembled products.
 * [[https://www.lulzbot.com/|LulzBot]]: FSF certified [[http://www.fsf.org/resources/hw/endorsement/respects-your-freedom|RespectYourFreedom]] hardware and closer to a consumer product.
 * [[http://reprap.org/wiki/RepRap|RepRapFamily]]: many models, sold from various vendors as either kits or assembled products; usually they are under a free hardware license and can run using only free software (firmware included).
Line 23: Line 23:

Going from an idea to a finished object requires a number of distinct steps that are usually done from distinct programs.

== Design ==

Any software that is able to manipulate 3D shapes can be used to create a model for printing; ideally it should be able to export an .stl file, but there are conversion tools for many other formats.

 * [[https://packages.debian.org/wheezy/blender|blender]]: the first choice for complex, organic shapes, but it has quite a significant learning curve.
 * [[https://packages.debian.org/wheezy/openscad|openscad]]: an excellent choice for technical models, based on a programming language.
 * [[https://packages.debian.org/jessie/freecad|freecad]].

== Model conversion and fixing ==

Some models may require conversion from other formats to .stl, or they may have geometry problems that could prevent a successful print; programs such as meshlab are useful to prepare the model for printing.

 * [[https://packages.debian.org/wheezy/meshlab|Meshlab]]

== Slicing ==

The next step is slicing, i.e. cutting a 3d model (usually described by triangles) in a number of slices a fraction of mm high and describing each slice with the path that a printing head should follow to print the slice.

This step generates a .gcode file based on settings that are usually specific for the printer (printing plate size, number of printing heads, etc.), filament used (printing temperature, etc.) and model (layer height, speeds, supports for overhangs and many more).

 * Slic3r (not yet in Debian: [[http://bugs.debian.org/689636|ITP #689636]]): a good balace between configurability and simplicity, can be used from a GUI or from command line.
 * [[https://packages.debian.org/jessie/cura-engine|cura-engine]] simple, but command line only (mostly meant to be used from the cura printer control software).
 * [[https://packages.debian.org/jessie/repsnapper|RepSnapper]].
 * [[https://packages.debian.org/wheezy/sfact|sfact]].

== Printer control ==

The last step involves actually sending data to the printer: this is done with a program that is usually also able to give simple commands for mainteinance such as moving the plate/printing head/filament or setting the temperature.

Many printer control programs also include an interface to a slicing program, usually one of the ones mentioned above.

 * [[https://packages.debian.org/jessie/repsnapper|RepSnapper]]
 * Printrun (not yet in Debian: [[http://bugs.debian.org/695336|ITP #695336]]): written in python, with command line, text and GUI interfaces.
 * Octoprint (not yet in Debian: [[http://bugs.debian.org/718591|ITP #718591]]): written in python, web interface with support for a webcam to help remote controlling a printer.
 * Cura (not yet in Debian: [[https://bugs.debian.org/706656|ITP #706656]]): aims to be a complete, easy to use, solution for 3D printing.

== Printer firmware ==

= Tips =
Line 28: Line 70:
== Printer control ==

Work In Progress

This is work in progress. Informations on this page try to be accurate, but are still incomplete.

3D printing is a process to create physical, three-dimensional objects from digital models.

Wikipedia has more informations on the history of 3D printing and the available technologies; this article is concerned with hobbist accessible ones that can be used with software in Debian.

Hardware

Hardware support under Free operating systems tends to be excellent for models developed by the makers community and non-existent for models sold via traditional channels.

Fused deposition modeling (FDM)

Some models supported by Debian include:

  • LulzBot: FSF certified RespectYourFreedom hardware and closer to a consumer product.

  • RepRapFamily: many models, sold from various vendors as either kits or assembled products; usually they are under a free hardware license and can run using only free software (firmware included).

Software

Going from an idea to a finished object requires a number of distinct steps that are usually done from distinct programs.

Design

Any software that is able to manipulate 3D shapes can be used to create a model for printing; ideally it should be able to export an .stl file, but there are conversion tools for many other formats.

  • blender: the first choice for complex, organic shapes, but it has quite a significant learning curve.

  • openscad: an excellent choice for technical models, based on a programming language.

  • freecad.

Model conversion and fixing

Some models may require conversion from other formats to .stl, or they may have geometry problems that could prevent a successful print; programs such as meshlab are useful to prepare the model for printing.

Slicing

The next step is slicing, i.e. cutting a 3d model (usually described by triangles) in a number of slices a fraction of mm high and describing each slice with the path that a printing head should follow to print the slice.

This step generates a .gcode file based on settings that are usually specific for the printer (printing plate size, number of printing heads, etc.), filament used (printing temperature, etc.) and model (layer height, speeds, supports for overhangs and many more).

  • Slic3r (not yet in Debian: ITP #689636): a good balace between configurability and simplicity, can be used from a GUI or from command line.

  • cura-engine simple, but command line only (mostly meant to be used from the cura printer control software).

  • RepSnapper.

  • sfact.

Printer control

The last step involves actually sending data to the printer: this is done with a program that is usually also able to give simple commands for mainteinance such as moving the plate/printing head/filament or setting the temperature.

Many printer control programs also include an interface to a slicing program, usually one of the ones mentioned above.

  • RepSnapper

  • Printrun (not yet in Debian: ITP #695336): written in python, with command line, text and GUI interfaces.

  • Octoprint (not yet in Debian: ITP #718591): written in python, web interface with support for a webcam to help remote controlling a printer.

  • Cura (not yet in Debian: ITP #706656): aims to be a complete, easy to use, solution for 3D printing.

Printer firmware

Tips

Design

Slicing

See also

Many of the programs listed here are or should be managed by the 3D-printer team.