Python script to insert gcode commands before a layer
by arpruss, published
Liked ByView 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
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
Nmillimeters or higher (also, can say:
lN: layer number
N(first layer is number 1; also, can omit the
land just give an integer)
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
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.
Upgrade this Thing with Thingiverse Apps
Python script to insert gcode commands before a layer by arpruss is licensed under the Creative Commons - Attribution license.
What does this mean?
- You must attribute (give credit) to the creator of this Thing.
- Remixing or Changing this Thing is allowed.
- Commercial use is allowed.
Show Some Love
Say thanks by giving arpruss a tip and help them continue to share amazing Things with the Thingiverse community.Tip Designer
We're sure arpruss would love to see what you've printed. Please document your print and share a Make with the community.
To post a Make simply visit this Thing again and click I Made One to start uploading your photo. It’s even easier to post a Make via the Thingiverse Mobile app (available via Google Play and Apple App Store).