From Fedora Project Wiki
(26 intermediate revisions by 3 users not shown)
Line 3: Line 3:


<!-- The actual name of your feature page should look something like: Features/Your_Feature_Name.  This keeps all features in the same namespace -->
<!-- The actual name of your feature page should look something like: Features/Your_Feature_Name.  This keeps all features in the same namespace -->
[[File:3dprinter.jpg|500px|thumb|right|3D Printer]]
[[File:fedora-printed-thumb.jpg|500px|thumb|right|Fedora Printed [[F19_Artwork/Submissions/Supplemental_Wallpapers|supplemental wallpaper for Fedora 19]]]]
= 3D Printing <!-- The name of your feature --> =
= 3D Printing <!-- The name of your feature --> =


== Summary ==
== Summary ==
<!-- A sentence or two summarizing what this feature is and what it will do.  This information is used for the overall feature summary page for each release. -->
<!-- A sentence or two summarizing what this feature is and what it will do.  This information is used for the overall feature summary page for each release. -->
Bring 3D printing tools to Fedora and allow users of 3D printers, such as [http://www.reprap.org/ RepRap], to be fully satisfied with software in the repositories, without need to download binary blobs or run Python code from git.
Bring 3D printing tools to Fedora and allow users of 3D printers, such as [http://www.reprap.org/ RepRap], to be fully satisfied with software in the repositories, without having to download binary blobs or run Python code from git.


== Owner ==
== Owner ==
Line 19: Line 19:
== Current status ==
== Current status ==
* Targeted release: [[Releases/19|Fedora 19]]  
* Targeted release: [[Releases/19|Fedora 19]]  
* Last updated: 2012-12-31
* Last updated: 2013-05-14
* Percentage of completion: 80%
* Percentage of completion: 100%


== Detailed Description ==
== Detailed Description ==
Line 26: Line 26:
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->


There are several software needs for a 3D printer users: 3D modeling tool, such as [http://www.openscad.org/ OpenSCAD] or [http://www.blender.org/ Blender]; slicing tool, to "compile" the 3D model to a set of G-Code instructions, such as [http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge Skeinforge] or [http://www.slic3r.org/ Slic3r]; and finally a printer control software, such as [https://github.com/kliment/Printrun Printrun], [http://daid.github.com/Cura/ Cura] or [https://github.com/repetier/Repetier-Host RepetierHost].
There are several software needs for 3D printer users: 3D modeling tool, such as [http://www.openscad.org/ OpenSCAD] or [http://www.blender.org/ Blender]; slicing tool, to "compile" the 3D model to a set of G-Code instructions, such as [http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge Skeinforge] or [http://www.slic3r.org/ Slic3r]; and finally a printer control software, such as [https://github.com/kliment/Printrun Printrun], [http://daid.github.com/Cura/ Cura] or [https://github.com/repetier/Repetier-Host RepetierHost].


Other useful application is [http://meshlab.sourceforge.net/ meshlab], that allows users to view and simplify STL files, but it is already in Fedora, so it is not mentioned more.
Other useful application is [http://meshlab.sourceforge.net/ meshlab], that allows users to view and simplify STL files, but it is already in Fedora, so it is not mentioned more.
Line 35: Line 35:
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Fedora become a better distribution or project because of this feature?-->
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new feature, what capabilities does it bring? Why will Fedora become a better distribution or project because of this feature?-->


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.
Most of the 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 ==
== Scope ==
Line 46: Line 46:
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.
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 [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].
* Percentage of completion: 100% - OpenSCAD is available in [[Releases/19|Fedora 19]], as well as an update for [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].


=== Skeinforge ===
=== Skeinforge ===
[http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge Skeinforge] is a tool chain composed of Python scripts that converts your
[http://fabmetheus.crsndoo.com/wiki/index.php/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).
3D model into G-Code instructions for RepRap. It is a very powerful tool with perfect results, however the GUI is horrible and it is often used as an 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 [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].
* Percentage of completion: 100% - Skeinforge is available in [[Releases/19|Fedora 19]], as well as an update for [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].


=== SFACT ===
=== SFACT ===
[https://github.com/ahmetcemturan/SFACT SFACT] is new Skeinforge. It is it's fork and they can coexist in the same system.
[https://github.com/ahmetcemturan/SFACT SFACT] is new Skeinforge. It is its 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 [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].
* Percentage of completion: 100% - SFACT is available in [[Releases/19|Fedora 19]], as well as an update for [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].


=== Slic3r ===
=== Slic3r ===


[http://www.slic3r.org/ 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.
[http://www.slic3r.org/ Slic3r] is another favorite tool for slicing. It has a pleasant wxWidgets GUI, uses more than 1 CPU and brings new features quickly. However, its results 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.
* Percentage of completion: 100% - Slic3r is available as an update for [[Releases/19|Fedora 19]], [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].


=== Printrun ===
=== Printrun ===
[https://github.com/kliment/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.
[https://github.com/kliment/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 software-combo.


Pronsole is a featured command line G-Code sender. It controls the ReRap printer and integrates Skeinforge.
Pronsole is a featured command line G-Code sender. It controls the ReRap printer and integrates Skeinforge.
Line 74: Line 74:
Plater is a GUI tool to prepare printing plate from STL files for ReRap.
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 [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].
* Percentage of completion: 100% - Printrun is available in [[Releases/19|Fedora 19]], as well as an update for [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].


=== Cura ===
=== Cura ===
[http://daid.github.com/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 [http://www.ultimaker.com/ Ultimaker 3D printer], it can be used with other [http://www.reprap.org/ RepRap] based designs.
[http://daid.github.com/Cura/ Cura] is a project which aims to be a single software solution for 3D printing. While it is developed to be used with the [http://www.ultimaker.com/ Ultimaker 3D printer], it can be used with other [http://www.reprap.org/ 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.
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.
Line 83: Line 83:
Slicing part of Cura is originally based on Skeinforge, but it is heavily modified.
Slicing part of Cura is originally based on Skeinforge, but it is heavily modified.


* Percentage of completion: 30% - Several issues.
* Percentage of completion: 100% - Cura is available as an update for [[Releases/19|Fedora 19]] and as a testing update for [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].


=== RepetierHost ===
=== RepetierHost ===
Line 90: Line 90:
Slicing part is done by Skeinforge or Slic3r.
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 [https://github.com/repetier/Repetier-Host/issues/101 possible to build this on Linux] using open-source tools.
* Percentage of completion: 100% - RepetierHost is available in [[Releases/19|Fedora 19]], as well as an update for [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].
 
* Percentage of completion: 100% - RepetierHost is available in rawhide, as well as an update for [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].


=== Repsnapper ===
=== Repsnapper ===
[https://github.com/timschmidt/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.
[https://github.com/timschmidt/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% - Needs reviewers. See the Dependencies section.
* Percentage of completion: 100% - Repsnapper is available as an update for [[Releases/19|Fedora 19]] and as a testing update for [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]].


== How To Test ==
== How To Test ==
<!-- This does not need to be a full-fledged document.  Describe the dimensions of tests that this feature is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.  
<!-- This does not need to be a full-fledged document.  Describe the dimensions of tests that this feature is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.  


Remember that you are writing this how to for interested testers to use to check out your feature - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your feature.
Remember that you are writing this how-to for interested testers to use to check out your feature - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your feature.


A good "how to test" should answer these four questions:
A good "how to test" should answer these four questions:
Line 113: Line 111:
3. What are the expected results of those actions?
3. What are the expected results of those actions?
-->
-->
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 [http://repo.hroncok.cz/reprap/reprap.repo experimental unofficial repository] for [[Releases/17|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.
You can test the packages once they are in updates-testing or rawhide repositories. Of course, you can also test them when they reach stable.


=== OpenSCAD ===
=== OpenSCAD ===
You don't need a 3D printer. Currently available as an update for [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]]. The best way to test OpenSCAD is to open and render/compile your designs, examples or [http://www.thingiverse.com/tag:openscad designs from Thingiverse]. Report bugs when you see any misbehavior or let ABRT report them for you.
You don't need a 3D printer. Currently available in [[Releases/19|Fedora 19]] and as an update for [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]]. The best way to test OpenSCAD is to open and render/compile your designs, examples or [http://www.thingiverse.com/tag:openscad designs from Thingiverse]. Report bugs when you see any misbehavior or let ABRT report them for you.


=== Skeinforge ===
=== Skeinforge ===
You don't need a 3D printer. Currently available as an update for [[Releases/18|Fedora 18]] and [[Releases/17|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.
You don't need a 3D printer. Currently available in [[Releases/19|Fedora 19]] and as an update for [[Releases/18|Fedora 18]] and [[Releases/17|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 ===
=== 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 [[User:Churchyard|Miro Hrončok]], if no, try to [https://github.com/alexrj/Slic3r/issues contact the upstream].
You don't need a 3D printer. Currently available as a testing (or testing-pending) update for [[Releases/19|Fedora 19]], [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]]. The best way to test Slic3r is to load STL models to it and slice them. You can view exported G-Code in Printrun or RepetierHost. Report bugs when you see any misbehavior or let ABRT report them for you.


=== Printrun ===
=== Printrun ===
You might need a 3D printer. Currently available as an update for [[Releases/18|Fedora 18]] and [[Releases/17|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.
You might need a 3D printer. Currently available in [[Releases/19|Fedora 19]] and as an update for [[Releases/18|Fedora 18]] and [[Releases/17|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.
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 ===
=== RepetierHost ===
You might need a 3D printer. Currently available as an update for [[Releases/18|Fedora 18]] and [[Releases/17|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.
You might need a 3D printer. Currently available in [[Releases/19|Fedora 19]] and as an update for [[Releases/18|Fedora 18]] and [[Releases/17|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.
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 ===
=== 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.
You do not need a 3D printer in order to test Cura. Currently available as an update for [[Releases/19|Fedora 19]] and a testing update [[Releases/18|Fedora 18]] and [[Releases/17|Fedora 17]]. If you don't have a 3D printer you can still test 3D model display, model manipulation (scaling, mirroring, etc.) and gcode generation ("slicing") - which is about ~80% of Cura's overall functionality. If you have a 3D printer you can additionally run a printer connection test as well as upgrade printer firmware, perform printer user controls and, obviously, print.
 
Don't forget to add yourself to dialout user group before you try to connect Cura to a 3D printer. Report bugs when you see any misbehavior or let ABRT report them for you.
 
=== Repsnapper ===
You might need a 3D printer. Currently available as an update for [[Releases/19|Fedora 19]] and a testing update [[Releases/18|Fedora 18]] and [[Releases/17|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. If found any bugs consider trying upstream version and compare the results. If they are any differences, contact [[User:Churchyard|Miro Hrončok]], if no, try to [https://github.com/daid/Cura/issues contact the upstream].
Don't forget to add yourself to dialout user group. Report bugs when you see any misbehavior or let ABRT report them for you.


== User Experience ==
== User Experience ==
Line 152: Line 155:




* Slic3r - [https://bugzilla.redhat.com/show_bug.cgi?id=890839 has reviewer]
* Slic3r - [https://bugzilla.redhat.com/show_bug.cgi?id=890839 done]
** perl-Growl-GNTP - [https://bugzilla.redhat.com/show_bug.cgi?id=876409 done]
** perl-Growl-GNTP - [https://bugzilla.redhat.com/show_bug.cgi?id=876409 done]
** perl-Math-Geometry-Voronoi - [https://bugzilla.redhat.com/show_bug.cgi?id=887846 done]
** perl-Math-Geometry-Voronoi - [https://bugzilla.redhat.com/show_bug.cgi?id=887846 done]
** perl-Boost-Geometry-Utils - [https://bugzilla.redhat.com/show_bug.cgi?id=876408 done]*
** perl-Boost-Geometry-Utils - [https://bugzilla.redhat.com/show_bug.cgi?id=876408 done]
*** perl-Module-Build-WithXSpp - [https://bugzilla.redhat.com/show_bug.cgi?id=876405 done]*
*** perl-Module-Build-WithXSpp - [https://bugzilla.redhat.com/show_bug.cgi?id=876405 done]
**** perl-ExtUtils-Typemaps - [https://bugzilla.redhat.com/show_bug.cgi?id=891952 testing], F17 only
**** perl-ExtUtils-Typemaps - [https://bugzilla.redhat.com/show_bug.cgi?id=891952 done], F17 only
**** perl-ExtUtils-CppGuess - [https://bugzilla.redhat.com/show_bug.cgi?id=876403 done]
**** perl-ExtUtils-CppGuess - [https://bugzilla.redhat.com/show_bug.cgi?id=876403 done]
** perl-Math-PlanePath - [https://bugzilla.redhat.com/show_bug.cgi?id=907036 testing]
** perl-Math-PlanePath - [https://bugzilla.redhat.com/show_bug.cgi?id=907036 done]
*** perl-Math-Libm - [https://bugzilla.redhat.com/show_bug.cgi?id=877765 done]
*** perl-Math-Libm - [https://bugzilla.redhat.com/show_bug.cgi?id=877765 done]
*** perl-Math-NumSeq - [https://bugzilla.redhat.com/show_bug.cgi?id=890833 done]
*** perl-Math-NumSeq - [https://bugzilla.redhat.com/show_bug.cgi?id=890833 done]
Line 173: Line 176:
** perl-Math-ConvexHull-MonotoneChain - [https://bugzilla.redhat.com/show_bug.cgi?id=890803 done]
** perl-Math-ConvexHull-MonotoneChain - [https://bugzilla.redhat.com/show_bug.cgi?id=890803 done]
** perl-Math-Clipper - [https://bugzilla.redhat.com/show_bug.cgi?id=887913 done]*
** perl-Math-Clipper - [https://bugzilla.redhat.com/show_bug.cgi?id=887913 done]*
*** perl-ExtUtils-Typemaps-Default - [https://bugzilla.redhat.com/show_bug.cgi?id=876399 done]*
*** perl-ExtUtils-Typemaps-Default - [https://bugzilla.redhat.com/show_bug.cgi?id=876399 done]
** perl-XML-SAX-ExpatXS - [https://bugzilla.redhat.com/show_bug.cgi?id=890806 done]
** perl-XML-SAX-ExpatXS - [https://bugzilla.redhat.com/show_bug.cgi?id=890806 done]
''*'' Only in F18, F17 is in progress




Line 186: Line 187:




* Cura - [https://bugzilla.redhat.com/show_bug.cgi?id=901659 on FPC]
* Cura - [https://bugzilla.redhat.com/show_bug.cgi?id=901659 done]
** python-power - [https://bugzilla.redhat.com/show_bug.cgi?id=894881 done]
** python-power - [https://bugzilla.redhat.com/show_bug.cgi?id=894881 done]
** ultimaker-marlin-firmware - [https://bugzilla.redhat.com/show_bug.cgi?id=905681 waiting for git]
** ultimaker-marlin-firmware - [https://bugzilla.redhat.com/show_bug.cgi?id=905681 done]
*** ino - [https://bugzilla.redhat.com/show_bug.cgi?id=904841 done]
*** ino - [https://bugzilla.redhat.com/show_bug.cgi?id=904841 done]


Line 196: Line 197:




* Repsnapper - [https://bugzilla.redhat.com/show_bug.cgi?id=907585 needs reviewer, on FPC]
* Repsnapper - [https://bugzilla.redhat.com/show_bug.cgi?id=907585 done]
** amftools - [https://bugzilla.redhat.com/show_bug.cgi?id=907032 needs reviewer]
** amftools - [https://bugzilla.redhat.com/show_bug.cgi?id=907032 done]
*** stbi - [https://bugzilla.redhat.com/show_bug.cgi?id=907018 needs reviewer]
*** stbi - [https://bugzilla.redhat.com/show_bug.cgi?id=907018 done]
*** rapidxml - [https://bugzilla.redhat.com/show_bug.cgi?id=907027 needs reviewer]
*** rapidxml - [https://bugzilla.redhat.com/show_bug.cgi?id=907027 done]
** lmfit - [https://bugzilla.redhat.com/show_bug.cgi?id=907213 needs reviewer]
** lmfit - [https://bugzilla.redhat.com/show_bug.cgi?id=907213 done]
** poly2tri - [https://bugzilla.redhat.com/show_bug.cgi?id=907261 needs reviewer]
** poly2tri - [https://bugzilla.redhat.com/show_bug.cgi?id=907261 done]


== Contingency Plan ==
== Contingency Plan ==
Line 215: Line 216:
* [http://daid.github.com/Cura/ Cura Website]
* [http://daid.github.com/Cura/ Cura Website]
* [http://www.repetier.com/documentation/repetier-host/ RepetierHost Documentation]
* [http://www.repetier.com/documentation/repetier-host/ RepetierHost Documentation]
 
* [https://github.com/timschmidt/repsnapper/blob/master/doc/manual.asciidoc Repsanpper Documentation]


== Release Notes ==
== Release Notes ==
Line 225: Line 226:
* See [[Talk:Features/3D_Printing]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
* See [[Talk:Features/3D_Printing]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->


== Further reading ==
* [http://www.absplastic.eu 3D Printing and plastic materials blog]


[[Category:FeatureAcceptedF19]]
[[Category:FeatureAcceptedF19]]

Revision as of 13:54, 13 January 2014


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 having to download binary blobs or run Python code from git.

Owner

  • Email: mhroncok@redhat.com

Current status

  • Targeted release: Fedora 19
  • Last updated: 2013-05-14
  • Percentage of completion: 100%

Detailed Description

OpenSCAD
Skeinforge
Slic3r
Pronterface
Cura
RepetierHost
RepSnapper

There are several software needs for 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 the 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.

Skeinforge

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

SFACT

SFACT is new Skeinforge. It is its fork and they can coexist in the same system.

Slic3r

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

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 software-combo.

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.

Cura

Cura is a project which aims to be a 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.

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.

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: 100% - Repsnapper is available as an update for Fedora 19 and as a testing update for Fedora 18 and Fedora 17.

How To Test

You can test the packages once they are in updates-testing or rawhide repositories. Of course, you can also test them when they reach stable.

OpenSCAD

You don't need a 3D printer. Currently available in Fedora 19 and 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 in Fedora 19 and 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 available as a testing (or testing-pending) update for Fedora 19, Fedora 18 and Fedora 17. The best way to test Slic3r is to load STL models to it and slice them. You can view exported G-Code in Printrun or RepetierHost. Report bugs when you see any misbehavior or let ABRT report them for you.

Printrun

You might need a 3D printer. Currently available in Fedora 19 and 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 in Fedora 19 and as an 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 do not need a 3D printer in order to test Cura. Currently available as an update for Fedora 19 and a testing update Fedora 18 and Fedora 17. If you don't have a 3D printer you can still test 3D model display, model manipulation (scaling, mirroring, etc.) and gcode generation ("slicing") - which is about ~80% of Cura's overall functionality. If you have a 3D printer you can additionally run a printer connection test as well as upgrade printer firmware, perform printer user controls and, obviously, print.

Don't forget to add yourself to dialout user group before you try to connect Cura to a 3D printer. Report bugs when you see any misbehavior or let ABRT report them for you.

Repsnapper

You might need a 3D printer. Currently available as an update for Fedora 19 and a testing update 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.

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 - done
    • perl-Growl-GNTP - done
    • perl-Math-Geometry-Voronoi - done
    • perl-Boost-Geometry-Utils - done
      • perl-Module-Build-WithXSpp - done
        • perl-ExtUtils-Typemaps - done, F17 only
        • perl-ExtUtils-CppGuess - done
    • perl-Math-PlanePath - done
      • perl-Math-Libm - done
      • perl-Math-NumSeq - done
        • 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 - done*
      • perl-ExtUtils-Typemaps-Default - done
    • perl-XML-SAX-ExpatXS - done






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

Further reading