Loading

Python script to insert gcode commands before a layer

by arpruss, published

Python script to insert gcode commands before a layer by arpruss 6 days ago

Contents

Tags

Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

90Views 10Downloads Found in 3D Printing

Summary

From time to time I need to insert a pause in gcode to change filament. It's a nuisance to manually edit gcode and have to count layers or search for "g1 z". So I wrote a simple python script to automate this and other similar things (e.g., inserting a temperature change). Here it is (click on "Raw" to download).

USE AT YOUR OWN RISK.

You should first edit the script to change the parking command for pauses. I set X to -12, which should work for my DaVinci 1.0a (Repetier) printer.

The script is designed for gcode produced by Slic3r and my Repetier-based DaVinci 1.0a. You should examine the output the first few times yourself to make sure that you are happy with it and it works with your slicer/printer and isn't confused by preambles in detecting layers.

Here is how to run it:

python insert.py filename.gcode layerspec layercommands layerspec layercommands ...

The layers must be given in order, lowest to highest, and are specified by the layerspecs, which can be:

  • zN : z-coordinate rises to N millimeters or higher (also, can say: Nmm)
  • lN: layer number N (first layer is number 1; also, can omit the l and just give an integer)

The layercommands can be:

  • tN: set extruder temperature to N degrees
  • "pPause message": park, print message, pause (M25; this is the SD-card pause command), and return to xyz coordinates
  • "ARBITRARY GCODE" (multiple lines can be separated by colons; capitalization is strongly recommended not to be confused with lowercase insert.py commands)

Note that if you're not using an SD card to feed the file, the M25 pause may not be what you want, and you may want to do "@pause message" instead (using the ARBITRARY GCODE option).

There is no support for checksums in the gcode file.

More from 3D Printing

view more

All Apps

Upgrade this Thing with Thingiverse Apps


No results.

Top