Skip to content

Latest commit

 

History

History
140 lines (134 loc) · 9.29 KB

slicing-using-curaengine.asciidoc

File metadata and controls

140 lines (134 loc) · 9.29 KB

Slicing Using CuraEngine

Octoprint uses CuraEngine to slice STL files into GCode. CuraEngine is a C++ rewrite of an older, Python-based Cura slicer. During the rewrite, all the settings changed their names. Most front-ends to CuraEngine, like OctoPrint and Cura (the Cura GUI) still use the older Cura .ini file format for their profiles and then convert on-the-fly to the newer CuraEngine JSON format when calling CuraEngine.

Octoprint also uses JSON format for uploading and downloading slicer profiles from the web API. However, that is a different JSON format from the one CuraEngine uses. Octoprint’s JSON format is a pretty straightforward translation of the Cura .ini format to JSON.

Comparison of Cura and CuraEngine Settings

You can also see the settings that Cura (GUI) is passing to CuraEngine by slicing in Cura and selecting File > Show slice engine log…​.

Note: units are units of CuraEngine setting, not necessarily the same as Cura .ini setting.

Table 1. Comparison of settings
Cura .ini setting CuraEngine setting Meaning

nozzle_size

nozzleSize

Nozzle diameter, in mm

layer_height

layerThickness

Height of each layer, in microns

bottom_thickness

initialLayerThickness

Height of first layer, in microns

filament_diameter

filamentDiameter

Diameter of filament, in microns

filament_flow

filamentFlow

Percent of calculated filament flow to extrude

first_layer_width_factor

layer0extrusionWidth

Extrusion width for first layer, in microns. (Cura setting is a factor of normal width.)

nozzle_size, wall_thickness

extrusionWidth

Width of extruded line, in microns (calculated in Octoprint based on nozzle_size and wall_thickness)

nozzle_size, wall_thickness

insetCount

Number of perimeters (calculated in Octoprint based on nozzle_size and wall_thickness)

solid_bottom, solid_layer_thickness

downSkinCount

Number of bottom solid layers (calculated in octoprint based on solid_layer_thickness and layer_height, if solid_bottom is true)

solid_top, solid_layer_thickness

upSkinCount

Number of top solid layers (calculated in octoprint based on solid_layer_thickness and layer_height, if solid_top is true)

platform_adhesion, skirt_gap

skirtDistance

Distance of skirt from model (if zero, use a brim instead; calculated in Octoprint from platform_adhesion type)

brim_line_count, skirt_line_count

skirtLineCount

Number of skirt perimeters

skirt_minimal_length

skirtMinLength

Minimum skirt extrusion length (unused if adhesion type is brim)

N/A

initialSpeedupLayers

Number of layers over which to ramp up print speed (set to 4 by Octoprint)

bottom_layer_speed

initialLayerSpeed

Print speed for first layer

print_speed

printSpeed

Basic print speed

outer_shell_speed

inset0Speed

Print speed for outer perimeter (defaults to print_speed if set to zero)

inner_shell_speed

insetXSpeed

Print speed for additional perimeters (defaults to print_speed if set to zero)

travel_speed

moveSpeed

Speed for non-print moves

fan_full_height

fanFullOnLayerNr

Layer number at which fan should be full speed (calculated in Octoprint from fan_full_height and layer_height)

fill_density

sparseInfillLineDistance

Distance between infill lines, in microns (calculated in Octoprint from fill_density and extrusion width)

fill_overlap

infillOverlap

Amount of overlap between infill and perimeters

infill_speed

infillSpeed

Speed when printing infill (defaults to print_speed if set to zero)

N/A

infillPattern

Pattern for infill (Octoprint leaves this unset for CuraEngine; default is cross-hatch)

???

skinSpeed

??? (Octoprint leaves this unset)

???

perimeterBeforeInfill

Whether to print perimeter before infill (Octoprint leaves this unset to CuraEngine default, which is to print perimeter first)

support_type

supportType

Type of support (1=lines; otherwise Octoprint leaves this at CuraEngine default (=grid?))

support_angle

supportAngle

Min angle when support required (only set if support is nonzero)

support

supportEverywhere

Whether to provide support (Octoprint only allows 0 or 1, even though Cura .ini has more settings).

support_fill_rate

supportLineDistance

Distance between support lines, in microns (calculated in Octoprint from support_fill_rate and extrusion width)

support_xy_distance

supportXYDistance

Horizontal distance to support, in microns

supportZDistance

supportZDistance

Vertical distance to support, in microns

support_dual_extrusion

supportExtruder

Extruder to use for support (always 0 for single-extruder machines)

retraction_amount

retractionAmount

Retraction amount, in microns

???

retractionAmountPrime

??? (Octoprint leaves this unset)

retraction_speed

retractionSpeed

Retraction speed

retraction_dual_amount

retractionAmountExtruderSwitch

Retraction amount when switching extruders, in microns

retraction_min_travel

retractionMinimalDistance

Minimum travel before retract, in microns

retraction_minimal_extrusion

minimalExtrusionBeforeRetraction

Minimum extrusion before a retraction, in microns

retraction_hop

retractionZHop

Amount of head Z movement when retracting, in microns

retraction_combing

enableCombing

Whether to use combing (0=no, 1=all, 2=no skin)

ooze_shield

enableOozeShield

???

wipe_tower, wipe_tower_volume

wipeTowerSize

??? (calculated in Octoprint from wipe_tower and wipe_tower_size)

overlap_dual

multiVolumeOverlap

???

N/A

objectPosition.X

Model X position (???) (set in Octoprint based on model)

N/A

posx

Same as objectPosition.X

N/A

objectPosition.Y

Model Y position (???) (set in Octoprint based on model)

???

posy

Same as objectPosition.Y

object_sink

objectSink

??? (microns)

???

autoCenter

??? (left unset by Octoprint)

raft_margin

raftMargin

Raft margin, in microns

raft_line_spacing

raftLineSpacing

???

raft_base_thickness

raftBaseThickness

Raft base thickness

raft_base_linewidth

raftBaseLinewidth

Width of lines in the raft base

raft_interface_thickness

raftInterfaceThickness

Raft interface layer thickness

raft_interface_linewidth

raftInterfaceLinewidth

Width of lines in the interface layer

raft_interface_linewidth

raftInterfaceLineSpacing

Line spacing in the interface layer (set by Octoprint to 2*raft_interface_linewidth)

???

raftAirGap

??? (left unset by Octoprint)

raft_airgap

raftAirGapLayer0

???

bottom_layer_speed

raftBaseSpeed

Print speed for first raft layer

N/A

raftFanSpeed

Speed of fan in raft layers (set to 100 by Octoprint)

N/A

raftSurfaceThickness

??? (set equal to raftSurfaceThickness by Octoprint)

N/A

raftSurfaceLinewidth

??? (set equal to the width of perimeter lines by Octoprint)

N/A

raftSurfaceLineSpacing

??? (set equal to 90% of the width of perimeter lines by Octoprint)

raft_surface_layers

raftSurfaceLayers

???

N/A

raftSurfaceSpeed

??? (set equal to bottom_layer_speed by Octoprint)

cool_min_layer_time

minimalLayerTime

Minimal time to spend on a layer, in seconds

cool_min_feedrate

minimalFeedrate

Minimum feed rate when slowing down a layer

cool_head_lift

coolHeadLift

??? (set by Octoprint to 1 if cool_head_lift is true)

fan_enabled, fan_speed

fanSpeedMin

Minimum fan speed (set only if fan_enabled is true)

fan_speed_max

fanSpeedMax

Maximum fan speed (set only if fan_enabled is true)

???

fixHorrible

??? (set to zero by Octoprint)

spiralize

spiralizeMode

Whether to print perimeter in a helix fashion (set to 1 if spiralize is true)

follow_surface

simpleMode

??? (set to 1 if follow_surface is true)

gcode_flavor

gcodeFlavor

Style of GCode (1=Ultimaker, 2=Makerbot, 3=BFB, 4=Mach3, 5=Reprap)

extruder_offset_x0

extruderOffset[0].X

Extruder 0 X offset from head center

extruder_offset_y0

extruderOffset[0].Y

Extruder 0 Y offset from head center

extruder_offset_x1

extruderOffset[1].X

etc.

extruder_offset_y1

extruderOffset[1].Y

etc.

extruderOffset[2].X

extruderOffset[2].Y

extruderOffset[3].X

extruderOffset[3].Y

extruderOffset[4].X

extruderOffset[4].Y

extruderOffset[5].X

extruderOffset[5].Y

extruderOffset[6].X

extruderOffset[6].Y

extruderOffset[7].X

extruderOffset[7].Y

extruderOffset[8].X

extruderOffset[8].Y

extruderOffset[9].X

extruderOffset[9].Y

extruderOffset[10].X

extruderOffset[10].Y

extruderOffset[11].X

extruderOffset[11].Y

extruderOffset[12].X

extruderOffset[12].Y

extruderOffset[13].X

extruderOffset[13].Y

extruderOffset[14].X

extruderOffset[14].Y

extruderOffset[15].X

extruderOffset[15].Y

start.gcode

startCode

GCode prologue

end.gcode

endCode

GCode epilogue

???

acceleration

??? (left unset by Octoprint)

???

max_acceleration[0]

??? (left unset by Octoprint)

???

max_acceleration[1]

??? (left unset by Octoprint)

???

max_acceleration[2]

??? (left unset by Octoprint)

???

max_acceleration[3]

??? (left unset by Octoprint)

???

max_xy_jerk

??? (left unset by Octoprint)

???

max_z_jerk

??? (left unset by Octoprint)

???

max_e_jerk

??? (left unset by Octoprint)