Features/3D Printing

From FedoraProject

< Features
Revision as of 02:55, 3 February 2013 by Churchyard (Talk | contribs)

Jump to: navigation, search


3D Printer

Contents

3D Printing

Summary

Bring 3D printing tools to Fedora and allow users of 3D printers, such as RepRap, to be fully satisfied with software in the repositories, without need to download binary blobs or run Python code from git.

Owner

  • Email: mhroncok@redhat.com

Current status

  • Targeted release: Fedora 19
  • Last updated: 2012-12-31
  • Percentage of completion: 80%

Detailed Description

OpenSCAD
Skeinforge
Slic3r
Pronterface
Cura
RepetierHost

There are several software needs for a 3D printer users: 3D modeling tool, such as OpenSCAD or Blender; slicing tool, to "compile" the 3D model to a set of G-Code instructions, such as Skeinforge or Slic3r; and finally a printer control software, such as Printrun, Cura or RepetierHost.

Other useful application is meshlab, that allows users to view and simplify STL files, but it is already in Fedora, so it is not mentioned more.

CAM flow.png

Benefit to Fedora

Most of mentioned tools (except some 3D modeling software) are currently not present in Fedora (or other Linux distributions as well). The goal is to bring them here, and make Fedora the best distribution for 3D printing.

Scope

OpenSCAD

OpenSCAD is a software for creating solid 3D CAD objects. Unlike most free software for creating 3D models (such as the famous application Blender) it does not focus on the artistic aspects of 3D modeling but instead on the CAD aspects. Thus it might be the application you are looking for when you are planning to create 3D models of machine parts but pretty sure is not what you are looking for when you are more interested in creating computer-animated movies.

OpenSCAD is very often used in 3D printing community as the main tool for creating models, as well as parts of 3D printers.

The MCAD library is shipped together with OpenSCAD. This library contains components commonly used in designing and moching up mechanical designs. It is currently unfinished and you can expect some API changes, however many things are already working.

  • Percentage of completion: 100% - OpenSCAD is available in rawhide, as well as an update for Fedora 18 and Fedora 17.

Skeinforge

Skeinforge is a tool chain composed of Python scripts that converts your 3D model into G-Code instructions for RepRap. It is very powerful tool with perfect results, however the GUI is horrible and it is often used as a integrated slicer in printer control software, where only one part of the GUI is used (Slicing settings).

  • Percentage of completion: 100% - Skeinforge is available in rawhide, as well as an update for Fedora 18 and Fedora 17.

SFACT

SFACT is new Skeinforge. It is it's fork and they can coexist in the same system.

  • Percentage of completion: 99% - SFACT is available in rawhide, as well as a testing update for Fedora 18 and Fedora 17.

Slic3r

Slic3r is another favorite tool for slicing. It has a pleasant wxWidgets GUI, uses more then 1 CPU and brings new features quickly. However, it's result aren't always as good as the results from Skeinforge. Slic3r also provides a tool for printing plate preparation.

  • Percentage of completion: 90% - It has a loads of Perl modules dependencies, some of them are ready, some waiting for the reviewer, see the Dependencies section.

Printrun

Printrun is a set of G-Code sending applications for RepRap. It consists of printcore (dumb G-Code sender), pronsole (featured command line G-Code sender), pronterface (featured G-Code sender with graphical user interface), and a small collection of helpful scripts. Together with Skeinforge they form a pretty powerful softwarecombo.

Pronsole is a featured command line G-Code sender. It controls the ReRap printer and integrates Skeinforge.

Pronterface is a featured G-Code sender with graphical user interface. It controls the ReRap printer and integrates Skeinforge.

Plater is a GUI tool to prepare printing plate from STL files for ReRap.

  • Percentage of completion: 100% - Printrun is available in rawhide, as well as an update for Fedora 18 and Fedora 17.

Cura

Cura is a project which aims to be an single software solution for 3D printing. While it is developed to be used with the Ultimaker 3D printer, it can be used with other RepRap based designs.

Cura helps you to setup an Ultimaker, shows your 3D model, allows for scaling/positioning, can slice the model to G-Code, with sane editable configuration settings and send this G-Code to the 3D printer for printing.

Slicing part of Cura is originally based on Skeinforge, but it is heavily modified.

  • Percentage of completion: 30% - Several issues.

RepetierHost

RepetierHost is another all-in-one tool for 3D printing. It can arrange one or more models on a virtual print plate, slice the models into G-Code, check the created G-Code for errors and printability, send the G-Code to the printer or copy the code to a SD card (to be used by the printer) and monitor the printer.

Slicing part is done by Skeinforge or Slic3r.

This project uses .NET (or Mono) and official build instructions are for Microsft Visual Studio, however, it is possible to build this on Linux using open-source tools. We are working with the author to make the build good and use Slic3r and Skeinforge from the distribution.

  • Percentage of completion: 99% - RepetierHost is available in rawhide, as well as a testing update for Fedora 18 and Fedora 17.

Repsnapper

Repsnapper is another RepRap control software. It is completely written in C++ and thus should be faster than all the scripted slicers out there. It has some unique features while others are still missing.

  • Percentage of completion: 20% - Unbundling in progress. See the Dependencies section.

How To Test

You can test the packages once they are in updates-testing or rawhide repositories. Of course, you can test them also when they reach stable. If you are hardcore, you can use the experimental unofficial repository for Fedora 17 only (and most of the time 64bit only), but you might need to solve some deps by yourself, as it contains both 32 and 64bit packages.

OpenSCAD

You don't need a 3D printer. Currently available as an update for Fedora 18 and Fedora 17. The best way to test OpenSCAD is to open and render/compile your designs, examples or designs from Thingiverse. Report bugs when you see any misbehavior or let ABRT report them for you.

Skeinforge

You don't need a 3D printer. Currently available as an update for Fedora 18 and Fedora 17. The best way to test Skeinforge is to load STL models to it and slice them. You can view exported G-Code in Printrun or even use Skeinforge from Printrun by openning a STL file. Report bugs when you see any misbehavior or let ABRT report them for you.

Slic3r

You don't need a 3D printer. Currently only in the experimental repository. The best way to test Slic3r is to load STL models to it and slice them. You can view exported G-Code in Printrun. If found any bugs consider trying upstream version and compare the results. If they are any differences, contact Miro Hrončok, if no, try to contact the upstream.

Printrun

You might need a 3D printer. Currently available as an update for Fedora 18 and Fedora 17. If you don't have a 3D printer you can still test integrated Skeinforge and G-Code view. If you have one, test connection, user controls and printing itself.

Don't forget to add yourself to dialout user group. Report bugs when you see any misbehavior or let ABRT report them for you.

RepetierHost

You might need a 3D printer. Currently available as an testing update for Fedora 18 and Fedora 17. If you don't have a 3D printer you can still test parts of the application. If you have a 3D printer, test connection, user controls and printing itself.

Don't forget to add yourself to dialout user group. Report bugs when you see any misbehavior or let ABRT report them for you.

Cura

You might need a 3D printer. Currently only in the experimental repository. If you don't have a 3D printer you can still test parts of the application. If you have a 3D printer, test connection, user controls and printing itself.

Don't forget to add yourself to dialout user group. If found any bugs consider trying upstream version and compare the results. If they are any differences, contact Miro Hrončok, if no, try to contact the upstream.

User Experience

For now, users needs to download precompiled binaries from various websites, clone git repositories and use the software directly from them or use some crazy bash scripts to get this software. Let's show Linux 3D printer community, that Fedora is the best solution for them.

Dependencies

No other packages depend on this software, however, there are some dependencies not yet in Fedora, mostly for Slic3r.


  • Slic3r - has reviewer
    • perl-Growl-GNTP - done
    • perl-Math-Geometry-Voronoi - done
    • perl-Boost-Geometry-Utils - testing*
      • perl-Module-Build-WithXSpp - done*
        • perl-ExtUtils-Typemaps - on FPC, F17 only
        • perl-ExtUtils-CppGuess - done
    • perl-Math-PlanePath - needs reviewer
      • perl-Math-Libm - done
      • perl-Math-NumSeq - testing
        • perl-Math-Prime-XS - done
        • perl-Math-Factor-XS - done
        • perl-Math-Expression-Evaluator - done
        • perl-Language-Expr - done
          • perl-Data-Rmap - done
            • perl-Lingua-EN-Numbers-Easy - done
              • perl-Lingua-EN-Numbers - done
          • perl-UUID-Tiny - done
    • perl-Math-ConvexHull - done
    • perl-Math-ConvexHull-MonotoneChain - done
    • perl-Math-Clipper - testing*
      • perl-ExtUtils-Typemaps-Default - done*
    • perl-XML-SAX-ExpatXS - done

* Only in F18, waiting for deps in F17






  • Repsnapper - waitng for bundled libs to be ready

Contingency Plan

Release only ready applications. It is not necessary to release them all in one Fedora release.

Documentation


Release Notes

  • Fedora 19 includes support for 3D printing. This includes software for creating 3D models, generate G-Code for printers from them and control the 3D printers such as RepRap.

Comments and Discussion