#compdef -P slic3r(|.pl|.exe)
#
# Slic3r completions configuration for zsh(1).

# Currently undocumented options:
#   --debug, --gui, --ignore-nonexistent-config
#   --acceleration, --perimeter-acceleration, --infill-acceleration

_arguments -S \
    '(- *)--help[output usage screen and exit]' \
    '(- *)--version[output the version of Slic3r and exit]' \
    '--save[save configuration to file]:config output file:_files -g "*.(#i)ini(-.)"' \
    '*--load[load configuration from file]:config input file:_files -g "*.(#i)ini(-.)"' \
    '(--output -o)'{--output,-o}'[specify output file]:output file:_files -g "*.(#i)(gcode|svg)(-.)"' \
    '(--threads -j)'{--threads,-j}'[specify number of threads to use]:number of threads' \
    \
    '--output-filename-format[specify output filename format]:output filename format' \
    '*--post-process[specify post-processing script]:post-processing script file:_files' \
    '--export-svg[export SVG containing slices instead of G-code]' \
    '(--merge -m)'{--merge,-m}'[merge multiple input files into a single print]' \
    \
    '*--nozzle-diameter[specify nozzle diameter]:nozzle diameter in mm' \
    '--print-center[specify print center coordinates]:print center coordinates in mm,mm' \
    '--z-offset[specify Z-axis offset]:Z-axis offset in mm' \
    '--gcode-flavor[specify the type of G-code to generate]:G-code flavor:(reprap teacup repetier makerware sailfish mach3 machinekit no-extrusion)' \
    '(--use-relative-e-distances --no-use-relative-e-distances)'--{no-,}use-relative-e-distances'[disable/enable relative E values]' \
    '--extrusion-axis[specify letter associated with the extrusion axis]:extrusion axis letter' \
    '(--gcode-arcs --no-gcode-arcs)'--{no-,}gcode-arcs'[disable/enable G2/G3 commands for native arcs]' \
    '(--gcode-comments --no-gcode-comments)'--{no-,}gcode-comments'[disable/enable verbose G-code comments]' \
    \
    '*--filament-diameter[specify raw filament diameter]:raw filament diameter in mm' \
    '*--extrusion-multiplier[specify multiplier for amount of plastic extruded]:extrusion multiplier' \
    '*--temperature[specify extrusion temperature]:extrusion temperature in Celsius' \
    '*--first-layer-temperature[specify extrusion temperature for the first layer]:first layer extrusion temperature in Celsius' \
    '--bed-temperature[specify heated bed temperature]:heated bed temperature in Celsius' \
    '--first-layer-bed-temperature[specify heated bed temperature for the first layer]:first layer heated bed temperature in Celsius' \
    \
    '--perimeter-extruder[specify extruder to use for printing perimeters]:extruder number' \
    '--infill-extruder[specify extruder to use for printing infill]:extruder number' \
    '--support-material-extruder[specify extruder to use for printing support material]:extruder number' \
    \
    '--travel-speed[specify speed of non-print moves]:speed of non-print moves in mm/s' \
    '--perimeter-speed[specify speed of print moves for perimeters]:speed of print moves for perimeters in mm/s' \
    '--external-perimeter-speed[specify speed of print moves for external perimeters]:speed of print moves for external perimeters in mm/s or % of --perimeter-speed' \
    '--small-perimeter-speed[specify speed of print moves for small perimeters]:speed of print moves for small perimeters in mm/s or % of --perimeter-speed' \
    '--infill-speed[specify speed of infill print moves]:speed of infill print moves in mm/s' \
    '--solid-infill-speed[specify speed of solid surface print moves]:speed of solid surface print moves in mm/s or % of --infill-speed' \
    '--top-solid-infill-speed[specify speed of top surface print moves]:speed of top surface print moves in mm/s or % of --solid-infill-speed' \
    '--bridge-speed[specify speed of bridge print moves]:speed of bridge print moves in mm/s' \
    '--first-layer-speed[specify speed of bottom layer print moves]:speed of bottom layer print moves in mm/s or % of normal speeds' \
    \
    '--layer-height[specify layer height]:layer height in mm' \
    '--first-layer-height[specify layer height for bottom layer]:layer height for bottom layer in mm or % of --layer-height' \
    '--infill-every-layers[specify infill for every N layers]:N layers' \
    \
    '--perimeters[specify number of perimeters]:number of perimeters' \
    '--solid-layers[specify number of solid layers to do for top/bottom surfaces]:number of layers for top/bottom surfaces' \
    '--fill-density[specify infill density]:infill density in percent' \
    '--fill-angle[specify infill angle]:infill angle in degrees' \
    '--fill-pattern[specify pattern used for infill]:infill pattern:(rectilinear line concentric honeycomb hilbertcurve archimedeanchords octagramspiral)' \
    '--solid-fill-pattern[specify pattern used for solid layers]:solid fill pattern:(rectilinear concentric hilbertcurve archimedeanchords octagramspiral)' \
    '--start-gcode[load initial G-code from file]:start G-code file:_files -g "*.(#i)(gcode)(-.)"' \
    '--end-gcode[load final G-code from file]:end G-code file:_files -g "*.(#i)(gcode)(-.)"' \
    '--layer-gcode[load layer-change G-code from file]:layer-change G-code file:_files -g "*.(#i)(gcode)(-.)"' \
    '(--support-material --no-support-material)'--{no-,}support-material'[disable/enable generation of support material for overhangs]' \
    '--support-material-threshold[specify support material threshold]:maximum slope angle for generating support material' \
    '--support-material-pattern[specify pattern used for support material]:support material pattern:(rectilinear honeycomb)' \
    '--support-material-spacing[specify spacing between support material lines]:spacing between support material lines in mm' \
    '--support-material-angle[specify support material angle]:support material angle in degrees' \
    '(--randomize-start --no-randomize-start)'--{no-,}randomize-start'[disable/enable randomization of starting point across layers]' \
    '(--extra-perimeters --no-extra-perimeters)'--{no-,}extra-perimeters'[disable/enable generation of extra perimeters when needed]' \
    \
    '--retract-length[specify filament retraction length when pausing extrusion]:filament retraction length in mm' \
    '--retract-speed[specify filament retraction speed]:filament retraction speed in mm/s' \
    '--retract-restart-extra[specify filament length to extrude for compensating retraction]: filament lenght in mm' \
    '--retract-before-travel[specify minimum travel length for activating retraction]:minimum travel length for activating retraction in mm' \
    '--retract-lift[specify Z-axis lift for use when retracting]:Z-axis lift in mm' \
    \
    '(--cooling --no-cooling)'--{no-,}cooling'[disable/enable fan and cooling control]' \
    '--min-fan-speed[specify minimum fan speed]:minimum fan speed in percent' \
    '--max-fan-speed[specify maximum fan speed]:maximum fan speed in percent' \
    '--bridge-fan-speed[specify fan speed to use for bridging]:bridging fan speed in percent' \
    '--fan-below-layer-time[specify maximum layer print time before activating fan]:maximum layer print time in seconds' \
    '--slowdown-below-layer-time[specify maximum layer print time before slowing down printing]:maximum layer print time in seconds' \
    '--min-print-speed[specify minimum print speed]:minimum print speed in mm/s' \
    '--disable-fan-first-layers[specify number of bottom layers to print before activating fan]:number of bottom layers' \
    '(--fan-always-on --no-fan-always-on)'--{no-,}fan-always-on'[disable/enable deactivation of fan]' \
    \
    '--skirts[specify number of skirts]:number of skirts' \
    '--skirt-distance[specify distance between innermost skirt and object]:distance between innermost skirt and object in mm' \
    '--skirt-height[specify number of skirt layers]:number of skirt layers' \
    '--brim-width[specify brim width]:width of brim in mm' \
    \
    '--scale[specify object scaling factor]:object scaling factor in percent' \
    '--rotate[specify object rotation angle]:object rotation angle in degrees' \
    '(--duplicate-grid)--duplicate[specify number of duplicates for auto-arrange]:number of duplicates for auto-arrange' \
    '(--duplicate-grid)--bed-size[specify bed size for auto-arrange]:bed size for auto-arrange in mm,mm' \
    '(--duplicate --bed-size)--duplicate-grid[specify number of duplicates for grid arrangement]:number of duplicates for grid arrangement as x,y' \
    '--duplicate-distance[specify distance between duplicates]:distance between duplicates in mm' \
    \
    '(--complete-objects --no-complete-objects)'--{no-,}complete-objects'[disable/enable completion of each object before starting a new one]' \
    '--extruder-clearance-radius[specify radius above which extruder will not collide with anything]:radius in mm' \
    '--extruder-clearance-height[specify maximum vertical extruder depth]:maximum vertical extruder depth in mm' \
    \
    '--notes[specify notes to be added as comments to the output file]:notes' \
    \
    '--extrusion-width[specify extrusion width]:extrusion width in mm or % of --layer-height' \
    '--first-layer-extrusion-width[specify extrusion width for first layer]:first layer extrusion width in mm or % og --layer-height' \
    '--perimeters-extrusion-width[specify extrusion width for perimeters]:perimeter extrusion width in mm or % of --layer-height' \
    '--infill-extrusion-width[specify extrusion width for infill]:infill extrusion width in mm or % of --layer-height' \
    '--support-material-extrusion-width[specify extrusion width for support material]:support material extrusion width in mm or % of --layer-height' \
    '--bridge-flow-ratio[specify multiplier for extrusion when bridging]:bridge extrusion multiplier' \
    \
    '*:input file:_files -g "*.(#i)(stl|obj|amf|xml)(-.)"'

# Local Variables: ***
# mode:sh ***
# End: ***
