1
$\begingroup$

My printer is calibrated for a certain clearance from the heated bed, which is chosen based on PLA.

I would like to try to increase it for the first layer for PETG, so that adhesion is reduced. The printer has M5 screws with 4000 steps/mm, so the resolution clearly allows that.

I don't want to modify the printer, I would like a G-Code or another option that I can apply in Prusa slicer in association with the specific filament when desired. I don't want to change the flow rate of the first layer, only the "zero" distance.

How can I do that?

$\endgroup$
1
  • $\begingroup$ In Cura it is easy, there is a Z offset option after you install a plug-in. To be honest, I print mostly PETG, but PLA with the same printer without making any offset changes. $\endgroup$
    – 0scar
    Apr 3, 2020 at 17:56

2 Answers 2

1
$\begingroup$

Placeholders

I don't know if you are familiar with the concept of placeholders? PrusSlicer is a derivative of Slic3r which uses this concept to insert placeholders (sort of constants, with the possibility to do arithmetic) into your G-code (e.g. start or end codes) which are evaluated just before the slicer generates the final G-code upon slicing.

Unfortunately, although there is a constant for the filament type (filament_type), you cannot use a conditional expression as this does not work on string comparison (which should work with regular expressions...), but with some imagination you can fabricate a way to get past this problem.

E.g.

{if printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/};Printer is Prusa{endif}
M117 [filament_type]

evaluates fine, but

{if filament_type=~/.*PLA.*/};Filament type is PLA{endif}

does not evaluate fine...

enter image description here

Solving this using placeholders, the printing temperatures for PLA and PETG are different, so in a conditional statement of the first_layer_temperature you could add an additional offset to the code at the end of the start G-code.

Start G-code

A place to do this is the filament dependent start G-code section:

enter image description here

You can always edit this start G-code to include a manually set offset by moving the printer to a certainly height:

G1 Z0.15

and then redefining the zero level

G92 Z0

Printer Z-offset

Note that a z_offset constant exists, so it is configurable in the graphical interface, if so, than I assume this fixes your problem instantly as the offset is directly applied in the final G-code. The z-offset option is part of the "printer settings" interface. This extra offset is added to the initial layer height movement.

enter image description here

$\endgroup$
0
1
$\begingroup$

If your environment supports it, you can also use a G54 to add a constant offset to any positioning. So, you could use:

G53 ; clear offsets  
G54 Z0.15 ; add 0.15mm to every Z position

Just remember to clear the offsets at the end of your gcode:

G53 ; clear offsets
$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .