~ubuntu-branches/ubuntu/utopic/slic3r/utopic

« back to all changes in this revision

Viewing changes to README.md

  • Committer: Package Import Robot
  • Author(s): Chow Loong Jin
  • Date: 2014-06-17 01:27:26 UTC
  • Revision ID: package-import@ubuntu.com-20140617012726-2wrs4zdo251nr4vg
Tags: upstream-1.1.4+dfsg
ImportĀ upstreamĀ versionĀ 1.1.4+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
_Q: Oh cool, a new RepRap slicer?_
 
2
 
 
3
A: Yes.
 
4
 
 
5
Slic3r [![Build Status](https://travis-ci.org/alexrj/Slic3r.png?branch=master)](https://travis-ci.org/alexrj/Slic3r)
 
6
======
 
7
 
 
8
Slic3r takes 3D models (STL, OBJ, AMF) and converts them into G-code instructions for 
 
9
3D printers. It's compatible with any modern printer based on the RepRap toolchain,
 
10
including all those based on the Marlin, Sprinter and Repetier firmware. It also works
 
11
with Mach3 and LinuxCNC controllers.
 
12
 
 
13
See the [project homepage](http://slic3r.org/) at slic3r.org and the
 
14
[manual](http://manual.slic3r.org/) for more information.
 
15
 
 
16
### What language is it written in?
 
17
 
 
18
The core geometric algorithms and data structures are written in C++,
 
19
and Perl is used for high-level flow abstraction, GUI and testing.
 
20
If you're wondering why Perl, see http://xkcd.com/224/
 
21
 
 
22
The C++ API is public and its use in other projects is encouraged.
 
23
The goal is to make Slic3r fully modular so that any part of its logic
 
24
can be used separately.
 
25
 
 
26
### What are Slic3r's main features?
 
27
 
 
28
Key features are:
 
29
 
 
30
* **multi-platform** (Linux/Mac/Win) and packaged as standalone-app with no dependencies required
 
31
* complete **command-line interface** to use it with no GUI
 
32
* multi-material **(multiple extruders)** object printing
 
33
* multiple G-code flavors supported (RepRap, Makerbot, Mach3 etc.)
 
34
* ability to plate **multiple objects having distinct print settings**
 
35
* **multithread** processing
 
36
* **STL auto-repair** (tolerance for broken models)
 
37
* wide automated unit testing
 
38
 
 
39
Other major features are:
 
40
 
 
41
* combine infill every 'n' perimeters layer to speed up printing
 
42
* **3D preview** (including multi-material files)
 
43
* **multiple layer heights** in a single print
 
44
* **spiral vase** mode for bumpless vases
 
45
* fine-grained configuration of speed, acceleration, extrusion width
 
46
* several infill patterns including honeycomb, spirals, Hilbert curves
 
47
* support material, raft, brim, skirt
 
48
* **standby temperature** and automatic wiping for multi-extruder printing
 
49
* customizable **G-code macros** and output filename with variable placeholders
 
50
* support for **post-processing scripts**
 
51
* **cooling logic** controlling fan speed and dynamic print speed
 
52
 
 
53
### How to install?
 
54
 
 
55
You can just download a precompiled package from [slic3r.org](http://slic3r.org/);
 
56
it will run without the need for any dependency.
 
57
 
 
58
If you want to compile the source yourself just do the following (checkout
 
59
[slic3r.org](http://slic3r.org/download) for more details):
 
60
 
 
61
```
 
62
$ git clone https://github.com/alexrj/Slic3r.git
 
63
$ cd Slic3r
 
64
$ sudo perl Build.PL
 
65
$ sudo perl Build.PL --gui
 
66
$ ./slic3r.pl
 
67
```
 
68
 
 
69
### Can I help?
 
70
 
 
71
Sure! Drop me a line at aar@cpan.org. You can also 
 
72
find me in #reprap and in #slic3r on FreeNode with the nickname _Sound_.
 
73
Before sending patches and pull requests contact me to discuss your proposed
 
74
changes: this way we'll ensure nobody wastes their time and no conflicts arise
 
75
in development.
 
76
 
 
77
### What's Slic3r license?
 
78
 
 
79
Slic3r is licensed under the _GNU Affero General Public License, version 3_.
 
80
The author is Alessandro Ranellucci.
 
81
 
 
82
The [Silk icon set](http://www.famfamfam.com/lab/icons/silk/) used in Slic3r is
 
83
licensed under the _Creative Commons Attribution 3.0 License_.
 
84
The author of the Silk icon set is Mark James.
 
85
 
 
86
### How can I invoke slic3r.pl using the command line?
 
87
 
 
88
    Usage: slic3r.pl [ OPTIONS ] [ file.stl ] [ file2.stl ] ...
 
89
    
 
90
        --help              Output this usage screen and exit
 
91
        --version           Output the version of Slic3r and exit
 
92
        --save <file>       Save configuration to the specified file
 
93
        --load <file>       Load configuration from the specified file. It can be used
 
94
                            more than once to load options from multiple files.
 
95
        -o, --output <file> File to output gcode to (by default, the file will be saved
 
96
                            into the same directory as the input file using the
 
97
                            --output-filename-format to generate the filename.) If a
 
98
                            directory is specified for this option, the output will
 
99
                            be saved under that directory, and the filename will be
 
100
                            generated by --output-filename-format.
 
101
 
 
102
      Non-slicing actions (no G-code will be generated):
 
103
        --repair            Repair given STL files and save them as <name>_fixed.obj
 
104
        --cut <z>           Cut given input files at given Z (relative) and export
 
105
                            them as <name>_upper.stl and <name>_lower.stl
 
106
        --info              Output information about the supplied file(s) and exit
 
107
    
 
108
        -j, --threads <num> Number of threads to use (1+, default: 2)
 
109
    
 
110
      GUI options:
 
111
        --no-plater         Disable the plater tab
 
112
        --gui-mode          Overrides the configured mode (simple/expert)
 
113
        --autosave <file>   Automatically export current configuration to the specified file
 
114
    
 
115
      Output options:
 
116
        --output-filename-format
 
117
                            Output file name format; all config options enclosed in brackets
 
118
                            will be replaced by their values, as well as [input_filename_base]
 
119
                            and [input_filename] (default: [input_filename_base].gcode)
 
120
        --post-process      Generated G-code will be processed with the supplied script;
 
121
                            call this more than once to process through multiple scripts.
 
122
        --export-svg        Export a SVG file containing slices instead of G-code.
 
123
        -m, --merge         If multiple files are supplied, they will be composed into a single
 
124
                            print rather than processed individually.
 
125
    
 
126
      Printer options:
 
127
        --nozzle-diameter   Diameter of nozzle in mm (default: 0.5)
 
128
        --print-center      Coordinates in mm of the point to center the print around
 
129
                            (default: 100,100)
 
130
        --z-offset          Additional height in mm to add to vertical coordinates
 
131
                            (+/-, default: 0)
 
132
        --gcode-flavor      The type of G-code to generate (reprap/teacup/makerware/sailfish/mach3/no-extrusion,
 
133
                            default: reprap)
 
134
        --use-relative-e-distances Enable this to get relative E values (default: no)
 
135
        --use-firmware-retraction  Enable firmware-controlled retraction using G10/G11 (default: no)
 
136
        --gcode-arcs        Use G2/G3 commands for native arcs (experimental, not supported
 
137
                            by all firmwares)
 
138
        --g0                Use G0 commands for retraction (experimental, not supported by all
 
139
                            firmwares)
 
140
        --gcode-comments    Make G-code verbose by adding comments (default: no)
 
141
        --vibration-limit   Limit the frequency of moves on X and Y axes (Hz, set zero to disable;
 
142
                            default: 0)
 
143
    
 
144
      Filament options:
 
145
        --filament-diameter Diameter in mm of your raw filament (default: 3)
 
146
        --extrusion-multiplier
 
147
                            Change this to alter the amount of plastic extruded. There should be
 
148
                            very little need to change this value, which is only useful to
 
149
                            compensate for filament packing (default: 1)
 
150
        --temperature       Extrusion temperature in degree Celsius, set 0 to disable (default: 200)
 
151
        --first-layer-temperature Extrusion temperature for the first layer, in degree Celsius,
 
152
                            set 0 to disable (default: same as --temperature)
 
153
        --bed-temperature   Heated bed temperature in degree Celsius, set 0 to disable (default: 0)
 
154
        --first-layer-bed-temperature Heated bed temperature for the first layer, in degree Celsius,
 
155
                            set 0 to disable (default: same as --bed-temperature)
 
156
    
 
157
      Speed options:
 
158
        --travel-speed      Speed of non-print moves in mm/s (default: 130)
 
159
        --perimeter-speed   Speed of print moves for perimeters in mm/s (default: 30)
 
160
        --small-perimeter-speed
 
161
                            Speed of print moves for small perimeters in mm/s or % over perimeter speed
 
162
                            (default: 30)
 
163
        --external-perimeter-speed
 
164
                            Speed of print moves for the external perimeter in mm/s or % over perimeter speed
 
165
                            (default: 70%)
 
166
        --infill-speed      Speed of print moves in mm/s (default: 60)
 
167
        --solid-infill-speed Speed of print moves for solid surfaces in mm/s or % over infill speed
 
168
                            (default: 60)
 
169
        --top-solid-infill-speed Speed of print moves for top surfaces in mm/s or % over solid infill speed
 
170
                            (default: 50)
 
171
        --support-material-speed
 
172
                            Speed of support material print moves in mm/s (default: 60)
 
173
        --support-material-interface-speed
 
174
                            Speed of support material interface print moves in mm/s or % over support material
 
175
                            speed (default: 100%)
 
176
        --bridge-speed      Speed of bridge print moves in mm/s (default: 60)
 
177
        --gap-fill-speed    Speed of gap fill print moves in mm/s (default: 20)
 
178
        --first-layer-speed Speed of print moves for bottom layer, expressed either as an absolute
 
179
                            value or as a percentage over normal speeds (default: 30%)
 
180
    
 
181
      Acceleration options:
 
182
        --perimeter-acceleration
 
183
                            Overrides firmware's default acceleration for perimeters. (mm/s^2, set zero
 
184
                            to disable; default: 0)
 
185
        --infill-acceleration
 
186
                            Overrides firmware's default acceleration for infill. (mm/s^2, set zero
 
187
                            to disable; default: 0)
 
188
        --bridge-acceleration
 
189
                            Overrides firmware's default acceleration for bridges. (mm/s^2, set zero
 
190
                            to disable; default: 0)
 
191
        --first-layer-acceleration
 
192
                            Overrides firmware's default acceleration for first layer. (mm/s^2, set zero
 
193
                            to disable; default: 0)
 
194
        --default-acceleration
 
195
                            Acceleration will be reset to this value after the specific settings above
 
196
                            have been applied. (mm/s^2, set zero to disable; default: 130)
 
197
    
 
198
      Accuracy options:
 
199
        --layer-height      Layer height in mm (default: 0.4)
 
200
        --first-layer-height Layer height for first layer (mm or %, default: 0.35)
 
201
        --infill-every-layers
 
202
                            Infill every N layers (default: 1)
 
203
        --solid-infill-every-layers
 
204
                            Force a solid layer every N layers (default: 0)
 
205
    
 
206
      Print options:
 
207
        --perimeters        Number of perimeters/horizontal skins (range: 0+, default: 3)
 
208
        --top-solid-layers  Number of solid layers to do for top surfaces (range: 0+, default: 3)
 
209
        --bottom-solid-layers  Number of solid layers to do for bottom surfaces (range: 0+, default: 3)
 
210
        --solid-layers      Shortcut for setting the two options above at once
 
211
        --fill-density      Infill density (range: 0%-100%, default: 40%)
 
212
        --fill-angle        Infill angle in degrees (range: 0-90, default: 45)
 
213
        --fill-pattern      Pattern to use to fill non-solid layers (default: honeycomb)
 
214
        --solid-fill-pattern Pattern to use to fill solid layers (default: rectilinear)
 
215
        --start-gcode       Load initial G-code from the supplied file. This will overwrite
 
216
                            the default command (home all axes [G28]).
 
217
        --end-gcode         Load final G-code from the supplied file. This will overwrite
 
218
                            the default commands (turn off temperature [M104 S0],
 
219
                            home X axis [G28 X], disable motors [M84]).
 
220
        --layer-gcode       Load layer-change G-code from the supplied file (default: nothing).
 
221
        --toolchange-gcode  Load tool-change G-code from the supplied file (default: nothing).
 
222
        --seam-position     Position of loop starting points (random/nearest/aligned, default: aligned).
 
223
        --external-perimeters-first Reverse perimeter order. (default: no)
 
224
        --spiral-vase       Experimental option to raise Z gradually when printing single-walled vases
 
225
                            (default: no)
 
226
        --only-retract-when-crossing-perimeters
 
227
                            Disable retraction when travelling between infill paths inside the same island.
 
228
                            (default: no)
 
229
        --solid-infill-below-area
 
230
                            Force solid infill when a region has a smaller area than this threshold
 
231
                            (mm^2, default: 70)
 
232
        --infill-only-where-needed
 
233
                            Only infill under ceilings (default: no)
 
234
        --infill-first      Make infill before perimeters (default: no)
 
235
    
 
236
       Quality options (slower slicing):
 
237
        --extra-perimeters  Add more perimeters when needed (default: yes)
 
238
        --avoid-crossing-perimeters Optimize travel moves so that no perimeters are crossed (default: no)
 
239
        --thin-walls        Detect single-width walls (default: yes)
 
240
        --overhangs         Experimental option to use bridge flow, speed and fan for overhangs
 
241
                            (default: yes)
 
242
    
 
243
       Support material options:
 
244
        --support-material  Generate support material for overhangs
 
245
        --support-material-threshold
 
246
                            Overhang threshold angle (range: 0-90, set 0 for automatic detection,
 
247
                            default: 0)
 
248
        --support-material-pattern
 
249
                            Pattern to use for support material (default: honeycomb)
 
250
        --support-material-spacing
 
251
                            Spacing between pattern lines (mm, default: 2.5)
 
252
        --support-material-angle
 
253
                            Support material angle in degrees (range: 0-90, default: 0)
 
254
        --support-material-interface-layers
 
255
                            Number of perpendicular layers between support material and object (0+, default: 3)
 
256
        --support-material-interface-spacing
 
257
                            Spacing between interface pattern lines (mm, set 0 to get a solid layer, default: 0)
 
258
        --raft-layers       Number of layers to raise the printed objects by (range: 0+, default: 0)
 
259
        --support-material-enforce-layers
 
260
                            Enforce support material on the specified number of layers from bottom,
 
261
                            regardless of --support-material and threshold (0+, default: 0)
 
262
        --dont-support-bridges
 
263
                            Experimental option for preventing support material from being generated under bridged areas (default: yes)
 
264
    
 
265
       Retraction options:
 
266
        --retract-length    Length of retraction in mm when pausing extrusion (default: 1)
 
267
        --retract-speed     Speed for retraction in mm/s (default: 30)
 
268
        --retract-restart-extra
 
269
                            Additional amount of filament in mm to push after
 
270
                            compensating retraction (default: 0)
 
271
        --retract-before-travel
 
272
                            Only retract before travel moves of this length in mm (default: 2)
 
273
        --retract-lift      Lift Z by the given distance in mm when retracting (default: 0)
 
274
        --retract-layer-change
 
275
                            Enforce a retraction before each Z move (default: yes)
 
276
        --wipe              Wipe the nozzle while doing a retraction (default: no)
 
277
    
 
278
       Retraction options for multi-extruder setups:
 
279
        --retract-length-toolchange
 
280
                            Length of retraction in mm when disabling tool (default: 1)
 
281
        --retract-restart-extra-toolchnage
 
282
                            Additional amount of filament in mm to push after
 
283
                            switching tool (default: 0)
 
284
    
 
285
       Cooling options:
 
286
        --cooling           Enable fan and cooling control
 
287
        --min-fan-speed     Minimum fan speed (default: 35%)
 
288
        --max-fan-speed     Maximum fan speed (default: 100%)
 
289
        --bridge-fan-speed  Fan speed to use when bridging (default: 100%)
 
290
        --fan-below-layer-time Enable fan if layer print time is below this approximate number
 
291
                            of seconds (default: 60)
 
292
        --slowdown-below-layer-time Slow down if layer print time is below this approximate number
 
293
                            of seconds (default: 30)
 
294
        --min-print-speed   Minimum print speed (mm/s, default: 10)
 
295
        --disable-fan-first-layers Disable fan for the first N layers (default: 1)
 
296
        --fan-always-on     Keep fan always on at min fan speed, even for layers that don't need
 
297
                            cooling
 
298
    
 
299
       Skirt options:
 
300
        --skirts            Number of skirts to draw (0+, default: 1)
 
301
        --skirt-distance    Distance in mm between innermost skirt and object
 
302
                            (default: 6)
 
303
        --skirt-height      Height of skirts to draw (expressed in layers, 0+, default: 1)
 
304
        --min-skirt-length  Generate no less than the number of loops required to consume this length
 
305
                            of filament on the first layer, for each extruder (mm, 0+, default: 0)
 
306
        --brim-width        Width of the brim that will get added to each object to help adhesion
 
307
                            (mm, default: 0)
 
308
    
 
309
       Transform options:
 
310
        --scale             Factor for scaling input object (default: 1)
 
311
        --rotate            Rotation angle in degrees (0-360, default: 0)
 
312
        --duplicate         Number of items with auto-arrange (1+, default: 1)
 
313
        --bed-size          Bed size, only used for auto-arrange (mm, default: 200,200)
 
314
        --duplicate-grid    Number of items with grid arrangement (default: 1,1)
 
315
        --duplicate-distance Distance in mm between copies (default: 6)
 
316
    
 
317
       Sequential printing options:
 
318
        --complete-objects  When printing multiple objects and/or copies, complete each one before
 
319
                            starting the next one; watch out for extruder collisions (default: no)
 
320
        --extruder-clearance-radius Radius in mm above which extruder won't collide with anything
 
321
                            (default: 20)
 
322
        --extruder-clearance-height Maximum vertical extruder depth; i.e. vertical distance from
 
323
                            extruder tip and carriage bottom (default: 20)
 
324
    
 
325
       Miscellaneous options:
 
326
        --notes             Notes to be added as comments to the output file
 
327
        --resolution        Minimum detail resolution (mm, set zero for full resolution, default: 0)
 
328
    
 
329
       Flow options (advanced):
 
330
        --extrusion-width   Set extrusion width manually; it accepts either an absolute value in mm
 
331
                            (like 0.65) or a percentage over layer height (like 200%)
 
332
        --first-layer-extrusion-width
 
333
                            Set a different extrusion width for first layer
 
334
        --perimeter-extrusion-width
 
335
                            Set a different extrusion width for perimeters
 
336
        --infill-extrusion-width
 
337
                            Set a different extrusion width for infill
 
338
        --solid-infill-extrusion-width
 
339
                            Set a different extrusion width for solid infill
 
340
        --top-infill-extrusion-width
 
341
                            Set a different extrusion width for top infill
 
342
        --support-material-extrusion-width
 
343
                            Set a different extrusion width for support material
 
344
        --bridge-flow-ratio Multiplier for extrusion when bridging (> 0, default: 1)
 
345
    
 
346
       Multiple extruder options:
 
347
        --extruder-offset   Offset of each extruder, if firmware doesn't handle the displacement
 
348
                            (can be specified multiple times, default: 0x0)
 
349
        --perimeter-extruder
 
350
                            Extruder to use for perimeters (1+, default: 1)
 
351
        --infill-extruder   Extruder to use for infill (1+, default: 1)
 
352
        --support-material-extruder
 
353
                            Extruder to use for support material (1+, default: 1)
 
354
        --support-material-interface-extruder
 
355
                            Extruder to use for support material interface (1+, default: 1)
 
356
                            --ooze-prevention   Drop temperature and park extruders outside a full skirt for automatic wiping
 
357
                            (default: no)
 
358
        --ooze-prevention   Drop temperature and park extruders outside a full skirt for automatic wiping
 
359
                            (default: no)
 
360
        --standby-temperature-delta
 
361
                            Temperature difference to be applied when an extruder is not active and
 
362
                            --ooze-prevention is enabled (default: -5)
 
363
 
 
364
 
 
365
If you want to change a preset file, just do
 
366
 
 
367
    slic3r.pl --load config.ini --layer-height 0.25 --save config.ini
 
368
 
 
369
If you want to slice a file overriding an option contained in your preset file:
 
370
 
 
371
    slic3r.pl --load config.ini --layer-height 0.25 file.stl