Slicer settings

The configuration file XML contains a number of settings that need to be adjusted for a specific 3D Printer device to control the print capabilities exposed to the 3D Print Dialog in Windows. These settings also control Microsoft 3D Slicer (MS3DPrinterRenderFilter.DLL and dependencies) running parameters.

Slicer settings (XML path)

Setting (XML path) Change Description

psk3d:Job3DOutputArea\

psk3d:Job3DOutputAreaWidth

psk3d:Job3DOutputArea\

psk3d:Job3DOutputAreaDepth

psk3d:Job3DOutputArea\

psk3d:Job3DOutputAreaHeight

Yes

Print volume in microns, defined by width (x max), depth (y max), and height (z max).

The volume should represent the capabilities of the physical device, as one of the tests in the certification phase when publishing the driver ensures the printer can use the declared volume.

psk3d:Job3DOutputArea\

psk3d:Job3DOutputAreaOffsetX

psk3d:Job3DOutputArea\

psk3d:Job3DOutputAreaOffsetX

Optional

X and Y offset of the print volume relative to (0, 0). This allows support for 3D printers where (0, 0) is in the center of the bed (typical for Delta printers) or printers where (0, 0) is not in the front left corner of the print bed.

psk3d:Job3DMaterials\

psk3ds:extruders\

Optional

The number of extruders in the printer. This setting controls how many of the subsequent psk3d:Material<Mat> sections in the XML will be sent to the print dialog as Print Capabilities. If not specified, the drivers will assume a single extruder printer.

psk3d:Job3DMaterials\

psk3d:Material<Material>\

psk:DisplayName

Yes

The display name of the material. This can be any string that shows up in the 3D Print Dialog for user assignment.

psk3d:Job3DMaterials\

psk3d:Material<Material>\

psk:MaterialColor

Yes

RGB or RGBA color for the material rendering in the 3D Print Dialog.

psk3d:Job3DMaterials\

psk3d:Material<Material>\

psk:MaterialType

Reserved

Type of material, as defined in Print Schema Keywords for 3D Printing (for example, "psk3d:PLA"). This setting is being deprecated in favor of generic materials specified by name and color.

psk3d:Job3DMaterials\

psk3d:Material<Material>\

psk3dx:platformtemperature

Yes

The temperature (degrees Celsius) the print bed should be heated to during printing. A value of 0 means the bed should not be heated.

This value can be later referenced via the $platformtemperature$ template in the pre-commands.

psk3d:Job3DMaterials\

psk3d:Material<Material>\

psk3dx:filamentdiameter

Yes

The diameter in microns of the filament loaded in the 3D printer. For example, 1750 is standard 1.75mm filament.

psk3d:Job3DMaterials\

psk3d:Material<Material>\

psk3dx:filamentcalibrationoverride

Optional

A factor that adjusts the flow of filament. It is applied as a ratio of the incoming filament cross-section (based on filamentdiameter) to adjust the speed of extrusion. If this factor is greater than 1.0, less plastic will be extruded. This is a tuning parameter and should always be near 1.0.

psk3d:Job3DMaterials\

psk3d:Material<Material>\

psk3dx:extrudertemperature

Yes

The temperature in degrees Celsius the extruder/hot end should heat to when extruding. This value can be referenced via the $extrudertemperature$ template in the pre-commands.

psk3d:Job3DMaterials\

psk3d:Material<Material>\

psk3dx:autocenter

Optional

A Boolean value (0 or 1) indicating whether the model should be centered on the print bed (on the XY plane). The model is also auto-centered if it does not fit in the print volume.

psk3d:Job3DMaterials\

psk3d:Material<Material>\

psk3dx:SetupCommands\

psk3dx:command

Yes

A list of commands to use as material set-up. This is typically G-Code executed during pre-commands to control nozzle pre-heating, priming, and so on.

psk3d:Job3DMaterials\

psk3d:Material<Material>\

psk3dx:SelectCommands\

psk3dx:command

Yes

A list of commands to issue when the material needs to be used while printing. This is typically G-Code executed for: T0/T1 extruder selection, nozzle wiping sequence, turn fan on/off/gradual, retract the material, temperature, and so on.

psk3d:Job3DMaterials\

psk3d:Material<Material>\

psk3dx:DeselectCommands\

psk3dx:command

Yes

A list of commands to issue when the material is being released during printing. This is typically G-Code executed for: retract the material, park the nozzle, reduce temperature, and so on.

psk3dx:customStatus

Optional

A string representing the initial print job status, typically the slicing phase. If missing, the job status will be set to "Printing". Typically this value should be set to "Slicing" when the slicing happens in the render filter, for example, when using the Microsoft Slicer.

psk3dx:userprompt

Yes

A message displayed as the user prompt before a print begins. This prompt is used to prevent the extruder from crashing into an existing print on devices that require manual removal of prints.

For devices that can display the prompt on the device itself at the beginning or end of print, this setting is not required.

psk3dx:MS3DPrinter\

psk3dx:debug\

psk3dx:log

Optional

When present, this setting enables driver debug logging to a file, allowing a developer to inspect the G-Code and firmware responses.

This setting can also be turned on globally via registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print

StandardGCodeDebugLog="c:\Path\To\LogFile"

psk3dx:MS3DPrinter\

psk3dx:communication\

psk3dx:connection\

psk3dx:comport

Optional

URI to a serial port name. When present, this setting overrides the driver auto-resolution of the COM port (Printer Queue -> Printer Port Name -> Enum\3DPrinter\Device -> Enum\USB\Serial Device). This allows temporarily printing to a device that does not have final hardware IDs.

psk3dx:MS3DPrinter\

psk3dx:communication\

psk3dx:connection\

psk3dx:baudrate

Optional

The baud rate of the serial connection for the connected device. Typical values are 115200 or 250000.

psk3dx:MS3DPrinter\

psk3dx:communication\

psk3dx:connection\

psk3dx:mode

Reserved

This setting controls the reset on connect behavior (DTR setting). Use values of 1 or 3 if the device fails to connect.

psk3dx:MS3DPrinter\

psk3dx:communication\

psk3dx:connection\

psk3dx:protocol

Reserved

This setting is highly experimental and controls the communication protocol with the firmware. When not specified, the driver defaults to ASCII G-Code with RepRap/Marlin checksums. When set to 2, the driver can send binary G-Code.

psk3dx:MS3DPrinter\

psk3dx:communication\

psk3dx:connection\

psk3dx:timeout

Reserved

Timeout in milliseconds for printer response. Use a value of 0 (default) for no timeout.

psk3dx:MS3DPrinter\

psk3dx:customcommands\

psk3dx:initcommands\

psk3dx:command

Yes

The sequence of commands sent before slicing. These commands are executed in parallel with the slicer. This is typically a sequence of G-Code commands that home, calibrate, auto-level and/or heat up the printer to a near final temperature.

psk3dx:MS3DPrinter\

psk3dx:customcommands\

psk3dx:precommands\

psk3dx:command

Yes

The set of G-Code commands to send at the start of each job, generally to initialize the 3D printer, like homing and heating up the extruder to the final temperature and priming the extruder. Each device has different required pre-commands. Each line of G-Code should appear in a child <command> element. Variables that are to be replaced by the referenced setting can be declared as the name delimited by '$' characters, for example, <command>M104 S$extrudertemperature$</command>. Refer to the next section for the built-in variables.

psk3dx:MS3DPrinter\

psk3dx:customcommands\

psk3dx:postcommands\

psk3dx:command

Yes

The set of G-Code commands to send at the end of each job, generally to bring the 3D printer to a safe state, like cooling down the extruder and moving the part away from the extruder/hot end to where it's easy to remove from the bed. Each device has different required post-commands.

This sequence is also executed when a job is cancelled.

psk3dx:MS3DPrinter\

psk3dx:customcommands\

psk3dx:failsafepostcommands\

psk3dx:command

Optional

A set of G-Code commands to be sent as fail safe mechanism, for example, in case of a slicer error. If missing, the driver will execute an "M110 N0" followed by "M104 S0".

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:layerthickness

Yes

The thickness (z-height) of a layer in microns. This value should be defined based on the machine physical resolution to minimize the positioning errors.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:maxlayerthickness

Reserved

Maximum layer thickness in microns.

This setting is reserved and may be deprecated in the future.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:minlayerthickness

Reserved

Minimum layer thickness in microns.

This setting is reserved and may be deprecated in the future.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:pathwidth

Yes

The width (in the XY plane) of an extruded toolpath in microns. A value close to and slightly larger than the nozzle diameter tends to produce best results.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:shells

Optional

An integer number of inset shells before infill begins. A value of 1 makes only a single perimeter and a value of 0 makes only infill (very rough surface finish).

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:shelloffset

Optional

Offset of the outer shells in microns. Use this value to tune the results on models that have a very tight fit between parts (for example, gears).

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:topsurfacelayers

Optional

An integer number of layers to fill solidly on the upper surfaces of the print. A value of 0 makes sparse infill visible from the top.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:bottomsurfacelayers

Optional

An integer number of layers to fill solidly on the lower surfaces of the print. A value of 0 makes sparse infill visible from the bottom.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:fill

Reserved

Specifies the sparse infill fraction, between 0.0 and 1.0 inclusive. 0.1 (10%) is a good default. A value of 0.0 will result in only the shells being printed and a value of 1.0 will use the solid infill pattern instead of a sparse infill.

This setting is reserved and may be deprecated in the future.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:fillangle

Optional

The initial angle of the fill pattern, measured in degrees along the XY (horizontal) plane, counter-clockwise from the X-axis.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:filloverlap

Reserved

Infill overlap (between 0 and 1 of the path width, inclusive).

This setting is reserved and may be deprecated in the future.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:speed

Yes

The default speed for printing movements, in microns/second. This is the 2-norm of the X and Y axis speeds.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:speedouter

Yes

Speed of the outer perimeter (first shell) in microns/second. This can be set lower than the normal speed to create a better surface finish on the print.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:speedfirst

Yes

Speed of the first layer (superseding speedouter) in microns/second. This can be set lower than the normal speed to create better print bed adhesion.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:speedtravel

Yes

Speed of non-extrusion moves in microns/second. This can be set higher than the normal speed to minimize stringing and speed up the print when the extruder is the limiting factor.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:speedretract

Yes

Speed of filament retraction and push-back in microns/second. Unlike other speed settings, this is measured on the input filament, rather than on the X and Y axes. This speed is therefore about a factor of 20 smaller than the speeds above (depending on your filament). However, it can be higher than the equivalent speed, because plastic is not being forced to extrude during retraction.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:retraction

Yes

Length of filament to be retracted, again measured on input filament, in microns. This is symmetric for retracting and pushing back and is designed to reduce stringing and oozing of the nozzle when traveling.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:supportorientationoptimization

Reserved

A Boolean value (0 or 1) indicating whether to automatically reorient the model to minimize required support, or not.

This setting is reserved and may be deprecated in the future.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:supportoverhangangle

Optional

The maximum overhang angle requiring support, measured from the horizontal plane up to the model facet, in degrees. Smaller angles create less support structure.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:supportzgap

Yes

The Z gap in microns between the part and support. This setting can reduce the adhesion to support, making the support easier to remove.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:supportxygap

Yes

The gap in micron between support and part in the XY plane.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:supportfill

Optional

Sparse infill fraction for support (between 0 and 1, inclusive).

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:raftlayers

Optional

Number of solid raft layers. A number of 2 is generally sufficient.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:raftlayerthickness

Yes

Layer thickness (Z height) of the raft in microns.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:raftpathwidth

Yes

Path width of raft in microns. This is generally a larger value to accommodate variations in the print bed surface.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:raftfill

Optional

Sparse infill fraction for support (between 0 and 1, inclusive).

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:raftoffset

Optional

Size of the raft in microns.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:raftzgap

Yes

The Z gap in microns between the raft and the object. A higher value makes the raft easier to remove, but might produce an uneven surface.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:raftspeedfirst

Yes

Speed of raft first layer in microns/second. This should be similar or lower to speedfirst to increase bed adhesion.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:coolingtime

Optional

Minimum cooling time for a layer in seconds. The layer speed is reduced such that at it prints in more than this number of seconds.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:mincoolingspeed

Optional

The minimum cooling speed for a layer in microns/second.

psk3dx:MS3DPrinter\

psk3dx:print\

psk3dx:{quality}\

psk3dx:bridgingspeed

Yes

The speed of extrusion during bridging in microns. This value depends on factors such as machine cooling characteristics and filament type and is typically slower than normal printing speed.

Note

In the print node's settings (psk3dx:MS3DPrinter\psk3dx:print\psk3dx:{quality}), the {quality} element name is replaced by one of the corresponding psk3d:Quality Print Schema 3D Keyword settings sent in the PrintTicket along with the print job. This allows each quality level to define its own set of slicer settings. If the PrintTicket is omitted, the slicer will use the [quality] setting marked with the attribute default="true", so exactly one quality level should always define this attribute.

Slicer settings (name)

Setting name Description
$extrudertemperature$, $extruder2temperature$ The temperature of the first and respectively the second extruder, as specified by <psk3dx:extrudertemperature> in the Materials section in the XML. These variables are being deprecated and being replaced by $MaterialSetup$.
$platformtemperature$ The temperature of the heated bed as specified by the <psk3dx:platformtemperature> entry in the last material in the list.
$MaterialSetupx$ Where x is a single digit. The material setup section <psk3dx:SetupCommands> in materials. For example, $MaterialSetup3$ represents the 3rd material in the list, typically the 3rd extruder.
$rampup$ This is a variable that can be in the range of 0 - 255. It scales with Z axis and is controlled by the <psk3dx:rampuptarget> in the slicer quality settings. For example, a command "M106 S$rampup$" turns on the fan gradually as the Z axis increases. If the <psk3dx:rampuptarget> is set to 500 microns, the value of the variable would be 0 on the first layer, and 255 once the layer is at 500 microns or above. This variable is intended to provide support for better print adhesion on heated print beds but it can be used in any command.
;?ack=<pattern> This setting instructs the driver to change the command ACK pattern (the printer response) from the default 'ok' to something temporary, for example ";?ack=Writing to file" would tell the driver to wait for a confirmation the printer is ready to write to the internal storage.
;?err=<pattern> This setting instructs the driver to look for an additional error pattern in the printer response, in addition to the default 'error'. For example ";?err=open failed" would tell the driver to fail if such a response is received (in this example the hardware would return this response if the internal SD card storage was not initialized or full).
;?wait=<pattern> This setting instructs the driver to ignore the pattern, this is typically used for keep alive signals, and the default value is ';?wait=wait'.