Update README [ci skip]

This commit is contained in:
Alessandro Ranellucci 2013-09-19 12:09:13 +02:00
parent 147d4b4f0a
commit b90a896a50

View File

@ -1,65 +1,69 @@
_Q: Oh cool, a new RepRap slicer?_ _Q: Oh cool, a new RepRap slicer?_
A: Yes. A: Yes.
# Slic3r Slic3r [![Build Status](https://travis-ci.org/alexrj/Slic3r.png?branch=master)](https://travis-ci.org/alexrj/Slic3r)
======
## What's it? Slic3r takes 3D models (STL, OBJ, AMF) and converts them into G-code instructions for
3D printers. It's compatible with any modern printer based on the RepRap toolchain,
Slic3r is a G-code generator for 3D printers. It's compatible with RepRaps, including all those based on the Marlin, Sprinter and Repetier firmware. It also works
makerwares, Ultimakers and many more machines. with Mach3 and LinuxCNC controllers.
See the [project homepage](http://slic3r.org/) at slic3r.org and the See the [project homepage](http://slic3r.org/) at slic3r.org and the
[documentation](https://github.com/alexrj/Slic3r/wiki/Documentation) on the Slic3r wiki for more information. [manual](http://manual.slic3r.org/) for more information.
## What language is it written in? ## What language is it written in?
Proudly Perl, with some parts in C++. The core geometric algorithms and data structures are written in C++,
and Perl is used for high-level flow abstraction, GUI and testing.
If you're wondering why Perl, see http://xkcd.com/224/ If you're wondering why Perl, see http://xkcd.com/224/
## What's its current status? The C++ API is public and its use in other projects is encouraged.
The goal is to make Slic3r fully modular so that any part of its logic
can be used separately.
Slic3r current key features are: ## What are Slic3r's main features?
* multi-platform (Linux/Mac/Win) and packaged as standalone-app with no dependencies required; Key features are:
* easy configuration/calibration;
* read binary and ASCII STL files as well as OBJ and AMF;
* powerful command line interface;
* easy GUI with plating and manipulation facilities;
* multithreaded;
* multiple infill patterns, with customizable density and angle;
* retraction;
* skirt;
* infill every N layers (like the "Skin" plugin for Skeinforge);
* detect optimal infill direction for bridges;
* save configuration profiles;
* center print around bed center point;
* multiple solid layers near horizontal external surfaces;
* ability to scale, rotate and duplicate input objects;
* customizable initial and final G-code;
* support material;
* cooling and fan control;
* use different speed for bottom layer, perimeters, small perimeters, bridges, solid infill;
* ability to print complete objects before moving onto next one.
Experimental features include: * **multi-platform** (Linux/Mac/Win) and packaged as standalone-app with no dependencies required
* complete **command-line interface** to use it with no GUI
* multi-material (**multiple extruders**) object printing
* multiple G-code flavors supported (RepRap, Makerbot, Mach3 etc.)
* ability to plate **multiple objects having distinct print settings**
* **multithread** processing
* **STL auto-repair** (tolerance for broken models)
* wide automated unit testing
* generation of G2/G3 commands for native arcs; Other major features are:
* G0 commands for fast retraction.
Roadmap includes the following goals: * combine infill every 'n' perimeters layer to speed up printing
* **3D preview** (including multi-material files)
* output some statistics; * **multiple layer heights** in a single print
* support material for internal perimeters; * **spiral vase** mode for bumpless vases
* more GUI work; * fine-grained configuration of speed, acceleration, extrusion width
* more fill patterns; * several infill patterns including honeycomb, spirals, Hilbert curves
* a more complete roadmap is needed too ;-) * support material, raft, brim, skirt
* **standby temperature** and automatic wiping for multi-extruder printing
* customizable **G-code macros** and output filename with variable placeholders
* support for **post-processing scripts**
* **cooling logic** controlling fan speed and dynamic print speed
## How to install? ## How to install?
It's very easy. See the [project homepage](http://slic3r.org/) You can just download a precompiled package from [slic3r.org](http://slic3r.org/);
for instructions and links to the precompiled packages that you can just it will run without the need for any dependency.
download and run, with no dependencies required.
If you want to compile the source yourself just do the following (checkout
[slic3r.org](http://slic3r.org/download) for more details):
```
$ git clone https://github.com/alexrj/Slic3r.git
$ cd Slic3r
$ sudo perl Build.PL
$ sudo perl Build.PL --gui
$ ./slic3r.pl
```
## Can I help? ## Can I help?
@ -85,16 +89,18 @@ The author of the Silk icon set is Mark James.
--help Output this usage screen and exit --help Output this usage screen and exit
--version Output the version of Slic3r and exit --version Output the version of Slic3r and exit
--save <file> Save configuration to the specified file --save <file> Save configuration to the specified file
--load <file> Load configuration from the specified file. It can be used --load <file> Load configuration from the specified file. It can be used
more than once to load options from multiple files. more than once to load options from multiple files.
-o, --output <file> File to output gcode to (by default, the file will be saved -o, --output <file> File to output gcode to (by default, the file will be saved
into the same directory as the input file using the into the same directory as the input file using the
--output-filename-format to generate the filename) --output-filename-format to generate the filename)
Non-slicing actions (no G-code will be generated): Non-slicing actions (no G-code will be generated):
--repair Repair given STL files and save them as <name>_fixed.obj --repair Repair given STL files and save them as <name>_fixed.obj
--info Output information about the supplied file(s) and exit --info Output information about the supplied file(s) and exit
-j, --threads <num> Number of threads to use (1+, default: 2)
GUI options: GUI options:
--no-plater Disable the plater tab --no-plater Disable the plater tab
--gui-mode Overrides the configured mode (simple/expert) --gui-mode Overrides the configured mode (simple/expert)
@ -108,12 +114,12 @@ The author of the Silk icon set is Mark James.
--post-process Generated G-code will be processed with the supplied script; --post-process Generated G-code will be processed with the supplied script;
call this more than once to process through multiple scripts. call this more than once to process through multiple scripts.
--export-svg Export a SVG file containing slices instead of G-code. --export-svg Export a SVG file containing slices instead of G-code.
-m, --merge If multiple files are supplied, they will be composed into a single -m, --merge If multiple files are supplied, they will be composed into a single
print rather than processed individually. print rather than processed individually.
Printer options: Printer options:
--nozzle-diameter Diameter of nozzle in mm (default: 0.5) --nozzle-diameter Diameter of nozzle in mm (default: 0.5)
--print-center Coordinates in mm of the point to center the print around --print-center Coordinates in mm of the point to center the print around
(default: 100,100) (default: 100,100)
--z-offset Additional height in mm to add to vertical coordinates --z-offset Additional height in mm to add to vertical coordinates
(+/-, default: 0) (+/-, default: 0)
@ -127,12 +133,12 @@ The author of the Silk icon set is Mark James.
--gcode-comments Make G-code verbose by adding comments (default: no) --gcode-comments Make G-code verbose by adding comments (default: no)
--vibration-limit Limit the frequency of moves on X and Y axes (Hz, set zero to disable; --vibration-limit Limit the frequency of moves on X and Y axes (Hz, set zero to disable;
default: 0) default: 0)
Filament options: Filament options:
--filament-diameter Diameter in mm of your raw filament (default: 3) --filament-diameter Diameter in mm of your raw filament (default: 3)
--extrusion-multiplier --extrusion-multiplier
Change this to alter the amount of plastic extruded. There should be Change this to alter the amount of plastic extruded. There should be
very little need to change this value, which is only useful to very little need to change this value, which is only useful to
compensate for filament packing (default: 1) compensate for filament packing (default: 1)
--temperature Extrusion temperature in degree Celsius, set 0 to disable (default: 200) --temperature Extrusion temperature in degree Celsius, set 0 to disable (default: 200)
--first-layer-temperature Extrusion temperature for the first layer, in degree Celsius, --first-layer-temperature Extrusion temperature for the first layer, in degree Celsius,
@ -140,7 +146,7 @@ The author of the Silk icon set is Mark James.
--bed-temperature Heated bed temperature in degree Celsius, set 0 to disable (default: 0) --bed-temperature Heated bed temperature in degree Celsius, set 0 to disable (default: 0)
--first-layer-bed-temperature Heated bed temperature for the first layer, in degree Celsius, --first-layer-bed-temperature Heated bed temperature for the first layer, in degree Celsius,
set 0 to disable (default: same as --bed-temperature) set 0 to disable (default: same as --bed-temperature)
Speed options: Speed options:
--travel-speed Speed of non-print moves in mm/s (default: 130) --travel-speed Speed of non-print moves in mm/s (default: 130)
--perimeter-speed Speed of print moves for perimeters in mm/s (default: 30) --perimeter-speed Speed of print moves for perimeters in mm/s (default: 30)
@ -161,7 +167,7 @@ The author of the Silk icon set is Mark James.
--gap-fill-speed Speed of gap fill print moves in mm/s (default: 20) --gap-fill-speed Speed of gap fill print moves in mm/s (default: 20)
--first-layer-speed Speed of print moves for bottom layer, expressed either as an absolute --first-layer-speed Speed of print moves for bottom layer, expressed either as an absolute
value or as a percentage over normal speeds (default: 30%) value or as a percentage over normal speeds (default: 30%)
Acceleration options: Acceleration options:
--perimeter-acceleration --perimeter-acceleration
Overrides firmware's default acceleration for perimeters. (mm/s^2, set zero Overrides firmware's default acceleration for perimeters. (mm/s^2, set zero
@ -178,10 +184,10 @@ The author of the Silk icon set is Mark James.
--default-acceleration --default-acceleration
Acceleration will be reset to this value after the specific settings above Acceleration will be reset to this value after the specific settings above
have been applied. (mm/s^2, set zero to disable; default: 130) have been applied. (mm/s^2, set zero to disable; default: 130)
Accuracy options: Accuracy options:
--layer-height Layer height in mm (default: 0.4) --layer-height Layer height in mm (default: 0.4)
--first-layer-height Layer height for first layer (mm or %, default: 100%) --first-layer-height Layer height for first layer (mm or %, default: 0.35)
--infill-every-layers --infill-every-layers
Infill every N layers (default: 1) Infill every N layers (default: 1)
--solid-infill-every-layers --solid-infill-every-layers
@ -194,51 +200,60 @@ The author of the Silk icon set is Mark James.
--solid-layers Shortcut for setting the two options above at once --solid-layers Shortcut for setting the two options above at once
--fill-density Infill density (range: 0-1, default: 0.4) --fill-density Infill density (range: 0-1, default: 0.4)
--fill-angle Infill angle in degrees (range: 0-90, default: 45) --fill-angle Infill angle in degrees (range: 0-90, default: 45)
--fill-pattern Pattern to use to fill non-solid layers (default: rectilinear) --fill-pattern Pattern to use to fill non-solid layers (default: honeycomb)
--solid-fill-pattern Pattern to use to fill solid layers (default: rectilinear) --solid-fill-pattern Pattern to use to fill solid layers (default: rectilinear)
--start-gcode Load initial G-code from the supplied file. This will overwrite --start-gcode Load initial G-code from the supplied file. This will overwrite
the default command (home all axes [G28]). the default command (home all axes [G28]).
--end-gcode Load final G-code from the supplied file. This will overwrite --end-gcode Load final G-code from the supplied file. This will overwrite
the default commands (turn off temperature [M104 S0], the default commands (turn off temperature [M104 S0],
home X axis [G28 X], disable motors [M84]). home X axis [G28 X], disable motors [M84]).
--layer-gcode Load layer-change G-code from the supplied file (default: nothing). --layer-gcode Load layer-change G-code from the supplied file (default: nothing).
--toolchange-gcode Load tool-change G-code from the supplied file (default: nothing). --toolchange-gcode Load tool-change G-code from the supplied file (default: nothing).
--extra-perimeters Add more perimeters when needed (default: yes)
--randomize-start Randomize starting point across layers (default: yes) --randomize-start Randomize starting point across layers (default: yes)
--avoid-crossing-perimeters Optimize travel moves so that no perimeters are crossed (default: no)
--external-perimeters-first Reverse perimeter order. (default: no) --external-perimeters-first Reverse perimeter order. (default: no)
--spiral-vase Experimental option to raise Z gradually when printing single-walled vases --spiral-vase Experimental option to raise Z gradually when printing single-walled vases
(default: no) (default: no)
--only-retract-when-crossing-perimeters --only-retract-when-crossing-perimeters
Disable retraction when travelling between infill paths inside the same island. Disable retraction when travelling between infill paths inside the same island.
(default: yes) (default: no)
--solid-infill-below-area --solid-infill-below-area
Force solid infill when a region has a smaller area than this threshold Force solid infill when a region has a smaller area than this threshold
(mm^2, default: 70) (mm^2, default: 70)
--infill-only-where-needed --infill-only-where-needed
Only infill under ceilings (default: no) Only infill under ceilings (default: no)
--infill-first Make infill before perimeters (default: no) --infill-first Make infill before perimeters (default: no)
Quality options (slower slicing):
--extra-perimeters Add more perimeters when needed (default: yes)
--avoid-crossing-perimeters Optimize travel moves so that no perimeters are crossed (default: no)
--start-perimeters-at-concave-points
Try to start perimeters at concave points if any (default: no)
--start-perimeters-at-non-overhang
Try to start perimeters at non-overhang points if any (default: no)
--thin-walls Detect single-width walls (default: yes)
--overhangs Experimental option to use bridge flow, speed and fan for overhangs
(default: yes)
Support material options: Support material options:
--support-material Generate support material for overhangs --support-material Generate support material for overhangs
--support-material-threshold --support-material-threshold
Overhang threshold angle (range: 0-90, set 0 for automatic detection, Overhang threshold angle (range: 0-90, set 0 for automatic detection,
default: 0) default: 0)
--support-material-pattern --support-material-pattern
Pattern to use for support material (default: rectilinear) Pattern to use for support material (default: honeycomb)
--support-material-spacing --support-material-spacing
Spacing between pattern lines (mm, default: 2.5) Spacing between pattern lines (mm, default: 2.5)
--support-material-angle --support-material-angle
Support material angle in degrees (range: 0-90, default: 0) Support material angle in degrees (range: 0-90, default: 0)
--support-material-interface-layers --support-material-interface-layers
Number of perpendicular layers between support material and object (0+, default: 0) Number of perpendicular layers between support material and object (0+, default: 3)
--support-material-interface-spacing --support-material-interface-spacing
Spacing between interface pattern lines (mm, set 0 to get a solid layer, default: 0) Spacing between interface pattern lines (mm, set 0 to get a solid layer, default: 0)
--raft-layers Number of layers to raise the printed objects by (range: 0+, default: 0) --raft-layers Number of layers to raise the printed objects by (range: 0+, default: 0)
--support-material-enforce-layers --support-material-enforce-layers
Enforce support material on the specified number of layers from bottom, Enforce support material on the specified number of layers from bottom,
regardless of --support-material and threshold (0+, default: 0) regardless of --support-material and threshold (0+, default: 0)
Retraction options: Retraction options:
--retract-length Length of retraction in mm when pausing extrusion (default: 1) --retract-length Length of retraction in mm when pausing extrusion (default: 1)
--retract-speed Speed for retraction in mm/s (default: 30) --retract-speed Speed for retraction in mm/s (default: 30)
@ -251,20 +266,20 @@ The author of the Silk icon set is Mark James.
--retract-layer-change --retract-layer-change
Enforce a retraction before each Z move (default: yes) Enforce a retraction before each Z move (default: yes)
--wipe Wipe the nozzle while doing a retraction (default: no) --wipe Wipe the nozzle while doing a retraction (default: no)
Retraction options for multi-extruder setups: Retraction options for multi-extruder setups:
--retract-length-toolchange --retract-length-toolchange
Length of retraction in mm when disabling tool (default: 1) Length of retraction in mm when disabling tool (default: 1)
--retract-restart-extra-toolchnage --retract-restart-extra-toolchnage
Additional amount of filament in mm to push after Additional amount of filament in mm to push after
switching tool (default: 0) switching tool (default: 0)
Cooling options: Cooling options:
--cooling Enable fan and cooling control --cooling Enable fan and cooling control
--min-fan-speed Minimum fan speed (default: 35%) --min-fan-speed Minimum fan speed (default: 35%)
--max-fan-speed Maximum fan speed (default: 100%) --max-fan-speed Maximum fan speed (default: 100%)
--bridge-fan-speed Fan speed to use when bridging (default: 100%) --bridge-fan-speed Fan speed to use when bridging (default: 100%)
--fan-below-layer-time Enable fan if layer print time is below this approximate number --fan-below-layer-time Enable fan if layer print time is below this approximate number
of seconds (default: 60) of seconds (default: 60)
--slowdown-below-layer-time Slow down if layer print time is below this approximate number --slowdown-below-layer-time Slow down if layer print time is below this approximate number
of seconds (default: 30) of seconds (default: 30)
@ -272,17 +287,17 @@ The author of the Silk icon set is Mark James.
--disable-fan-first-layers Disable fan for the first N layers (default: 1) --disable-fan-first-layers Disable fan for the first N layers (default: 1)
--fan-always-on Keep fan always on at min fan speed, even for layers that don't need --fan-always-on Keep fan always on at min fan speed, even for layers that don't need
cooling cooling
Skirt options: Skirt options:
--skirts Number of skirts to draw (0+, default: 1) --skirts Number of skirts to draw (0+, default: 1)
--skirt-distance Distance in mm between innermost skirt and object --skirt-distance Distance in mm between innermost skirt and object
(default: 6) (default: 6)
--skirt-height Height of skirts to draw (expressed in layers, 0+, default: 1) --skirt-height Height of skirts to draw (expressed in layers, 0+, default: 1)
--min-skirt-length Generate no less than the number of loops required to consume this length --min-skirt-length Generate no less than the number of loops required to consume this length
of filament on the first layer, for each extruder (mm, 0+, default: 0) of filament on the first layer, for each extruder (mm, 0+, default: 0)
--brim-width Width of the brim that will get added to each object to help adhesion --brim-width Width of the brim that will get added to each object to help adhesion
(mm, default: 0) (mm, default: 0)
Transform options: Transform options:
--scale Factor for scaling input object (default: 1) --scale Factor for scaling input object (default: 1)
--rotate Rotation angle in degrees (0-360, default: 0) --rotate Rotation angle in degrees (0-360, default: 0)
@ -290,19 +305,19 @@ The author of the Silk icon set is Mark James.
--bed-size Bed size, only used for auto-arrange (mm, default: 200,200) --bed-size Bed size, only used for auto-arrange (mm, default: 200,200)
--duplicate-grid Number of items with grid arrangement (default: 1,1) --duplicate-grid Number of items with grid arrangement (default: 1,1)
--duplicate-distance Distance in mm between copies (default: 6) --duplicate-distance Distance in mm between copies (default: 6)
Sequential printing options: Sequential printing options:
--complete-objects When printing multiple objects and/or copies, complete each one before --complete-objects When printing multiple objects and/or copies, complete each one before
starting the next one; watch out for extruder collisions (default: no) starting the next one; watch out for extruder collisions (default: no)
--extruder-clearance-radius Radius in mm above which extruder won't collide with anything --extruder-clearance-radius Radius in mm above which extruder won't collide with anything
(default: 20) (default: 20)
--extruder-clearance-height Maximum vertical extruder depth; i.e. vertical distance from --extruder-clearance-height Maximum vertical extruder depth; i.e. vertical distance from
extruder tip and carriage bottom (default: 20) extruder tip and carriage bottom (default: 20)
Miscellaneous options: Miscellaneous options:
--notes Notes to be added as comments to the output file --notes Notes to be added as comments to the output file
--resolution Minimum detail resolution (mm, set zero for full resolution, default: 0) --resolution Minimum detail resolution (mm, set zero for full resolution, default: 0)
Flow options (advanced): Flow options (advanced):
--extrusion-width Set extrusion width manually; it accepts either an absolute value in mm --extrusion-width Set extrusion width manually; it accepts either an absolute value in mm
(like 0.65) or a percentage over layer height (like 200%) (like 0.65) or a percentage over layer height (like 200%)
@ -319,7 +334,7 @@ The author of the Silk icon set is Mark James.
--support-material-extrusion-width --support-material-extrusion-width
Set a different extrusion width for support material Set a different extrusion width for support material
--bridge-flow-ratio Multiplier for extrusion when bridging (> 0, default: 1) --bridge-flow-ratio Multiplier for extrusion when bridging (> 0, default: 1)
Multiple extruder options: Multiple extruder options:
--extruder-offset Offset of each extruder, if firmware doesn't handle the displacement --extruder-offset Offset of each extruder, if firmware doesn't handle the displacement
(can be specified multiple times, default: 0x0) (can be specified multiple times, default: 0x0)