# Lightburn, raise z for traversal moves?

**URL:** <https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310>\
**Category:** Community Laser Talk\
**Tags:** movable-z, z-axis, neje\
**Created:** [September 7, 2024, 10:29pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310 "2024-09-07T22:29:57Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dr-Zee](https://forum.lightburnsoftware.com/letter_avatar_proxy/v4/letter/d/898d66/32.png) [@Dr-Zee](https://forum.lightburnsoftware.com/u/Dr-Zee)\
**Post date:** [September 7, 2024, 10:29pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/1 "2024-09-07T22:29:57Z")

</div>

When cutting a shape, the z will raise then lower between shapes.  
When filling a shape, if the shape has cutouts, the z remains fixed during traversal moves. Is there a way to force a z up then down during traversal moves in a fill?

Look at what happened to my beautiful unofficial SmashMouth tribute banner… Who will make it right? 😭

 ![IMG20240907173550](https://forum.lightburnsoftware.com/uploads/default/original/3X/b/f/bf136db10e9d8f6ed62ab5898beec9a686eb8c9f.jpeg)

---

<div class="post-metadata">

**Author:** ![Dskall](https://forum.lightburnsoftware.com/letter_avatar_proxy/v4/letter/d/b5e925/32.png) [@Dskall](https://forum.lightburnsoftware.com/u/Dskall)\
**Post date:** [September 7, 2024, 10:43pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/2 "2024-09-07T22:43:12Z")

</div>

Looks more like laser didn’t shut off between moves.

---

<div class="post-metadata">

**Author:** ![Dr-Zee](https://forum.lightburnsoftware.com/letter_avatar_proxy/v4/letter/d/898d66/32.png) [@Dr-Zee](https://forum.lightburnsoftware.com/u/Dr-Zee)\
**Post date:** [September 7, 2024, 10:43pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/3 "2024-09-07T22:43:40Z")

</div>

It’s a pen plotter. It keeps the pen pressed during traversal.

---

<div class="post-metadata">

**Author:** ![jkwilborn](https://forum.lightburnsoftware.com/user_avatar/forum.lightburnsoftware.com/jkwilborn/32/63089_2.png) [@jkwilborn](https://forum.lightburnsoftware.com/u/jkwilborn)\
**Post date:** [September 8, 2024, 4:18pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/4 "2024-09-08T16:18:01Z")

</div>

You need to tell it to raise the pen. There must be a way to do it or you couldn’t mark something as simple as a group of single characters…

I don’t have a pen plotter, so I’m just guessing.

😸

---

<div class="post-metadata">

**Author:** ![Dr-Zee](https://forum.lightburnsoftware.com/letter_avatar_proxy/v4/letter/d/898d66/32.png) [@Dr-Zee](https://forum.lightburnsoftware.com/u/Dr-Zee)\
**Post date:** [September 9, 2024, 2:40pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/5 "2024-09-09T14:40:06Z")

</div>

The issue is with the fill mode. When doing lines it behaves properly.  
There are very few fill-mode settings, definitely nothing along the lines of "home and reset z between traversals.

---

<div class="post-metadata">

**Author:** ![LightBurn](https://forum.lightburnsoftware.com/user_avatar/forum.lightburnsoftware.com/lightburn/32/75577_2.png) [@LightBurn](https://forum.lightburnsoftware.com/u/LightBurn)\
**Post date:** [September 9, 2024, 3:14pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/6 "2024-09-09T15:14:45Z")

</div>

There is no way at present to tell it to raise the Z during traversals with a fill.

---

<div class="post-metadata">

**Author:** ![Dr-Zee](https://forum.lightburnsoftware.com/letter_avatar_proxy/v4/letter/d/898d66/32.png) [@Dr-Zee](https://forum.lightburnsoftware.com/u/Dr-Zee)\
**Post date:** [September 9, 2024, 3:17pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/7 "2024-09-09T15:17:38Z")

</div>

Looks like I’ve been rolled. Somebody once told me this would happen.

---

<div class="post-metadata">

**Author:** ![ROG](https://forum.lightburnsoftware.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@ROG](https://forum.lightburnsoftware.com/u/ROG)\
**Post date:** [November 11, 2025, 11:07pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/8 "2025-11-11T23:07:18Z")

</div>

@LightBurn is there any scope for this? Currently my workflow is to manually fill the shape using tiny rectangles and Boolean tools! It isn’t very efficient… If anyone has any other ideas, I am all ears!

Cheers,

---

<div class="post-metadata">

**Author:** ![LightBurn](https://forum.lightburnsoftware.com/user_avatar/forum.lightburnsoftware.com/lightburn/32/75577_2.png) [@LightBurn](https://forum.lightburnsoftware.com/u/LightBurn)\
**Post date:** [November 12, 2025, 10:18pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/9 "2025-11-12T22:18:10Z")

</div>

If you used custom GCode you might be able to make all “raster” moves emit a “go to Z”, do the move, then Z up"

Like:

```auto
G0 Z{z} ; drop to the proper Z
G1 [X]{x}[Y]{y}[S]{power}[F]{speed}
G0 Z5 ; lift the Z back up

```

This is untested, but it’s feasible. The custom GCode emitter is pretty flexible.

---

<div class="post-metadata">

**Author:** ![LightBurn](https://forum.lightburnsoftware.com/user_avatar/forum.lightburnsoftware.com/lightburn/32/75577_2.png) [@LightBurn](https://forum.lightburnsoftware.com/u/LightBurn)\
**Post date:** [November 12, 2025, 10:20pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/10 "2025-11-12T22:20:15Z")

</div>

This user did something similar to get it to work with a paintbrush:

[Great success using Lightburn on a DIY Brush-Painting Machine - Finished Creations - LightBurn Software Forum](https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352)

… though I think in his case he altered Rapid Move to do the lift and drop, whereas I’m doing drop + lift in the raster move. I imagine either approach would work.

---

<div class="post-metadata">

**Author:** ![ROG](https://forum.lightburnsoftware.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@ROG](https://forum.lightburnsoftware.com/u/ROG)\
**Post date:** [November 12, 2025, 11:32pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/12 "2025-11-12T23:32:15Z")

</div>

Thank you firstly for the fast replies!

Secondly, I hadn’t even considered custom G codes for the operation, forgot Lightburn could do that!

Would it make sense to use the “laser on” command to lift/lower the axis?

Thanks again!

---

<div class="post-metadata">

**Author:** ![LightBurn](https://forum.lightburnsoftware.com/user_avatar/forum.lightburnsoftware.com/lightburn/32/75577_2.png) [@LightBurn](https://forum.lightburnsoftware.com/u/LightBurn)\
**Post date:** [November 13, 2025, 1:30am UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/13 "2025-11-13T01:30:59Z")

</div>

That would likely work too, but you said it was only fills that were an issue, so I was focused on fixing it only for that mode.

---

<div class="post-metadata">

**Author:** ![ROG](https://forum.lightburnsoftware.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@ROG](https://forum.lightburnsoftware.com/u/ROG)\
**Post date:** [November 13, 2025, 3:03am UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/14 "2025-11-13T03:03:59Z")

</div>

Correct! And thank you for the sample, I will work on it!

Is there a method for adding custom gcode commands to “standard” laser configurations? I had a quick look at the settings page, for where custom G code usually is, and had to create a new machine specificying custom G code firmware.

Although, I am sure I will figure it out! Thank you for the product, and for the support!

---

<div class="post-metadata">

**Author:** ![LightBurn](https://forum.lightburnsoftware.com/user_avatar/forum.lightburnsoftware.com/lightburn/32/75577_2.png) [@LightBurn](https://forum.lightburnsoftware.com/u/LightBurn)\
**Post date:** [November 14, 2025, 12:03am UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/15 "2025-11-14T00:03:35Z")

</div>

No, you have to create a Custom GCode profile, and just choose the flavor of controller it is to start with (GRBL, Marlin, Smoothie, etc). The firmware specific devices use hard-wired internal code generators, and the custom GCode generator was written to be able to supplant them, but we didn’t want to break anything by replacing them completely.

---

<div class="post-metadata">

**Author:** ![ROG](https://forum.lightburnsoftware.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@ROG](https://forum.lightburnsoftware.com/u/ROG)\
**Post date:** [November 14, 2025, 6:09am UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/16 "2025-11-14T06:09:00Z")

</div>

Understood, well, at least parts of it are understood!

Thanks again for the help!

---

<div class="post-metadata">

**Author:** ![dusjagr](https://forum.lightburnsoftware.com/user_avatar/forum.lightburnsoftware.com/dusjagr/32/104361_2.png) [@dusjagr](https://forum.lightburnsoftware.com/u/dusjagr)\
**Post date:** [November 18, 2025, 2:42pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/17 "2025-11-18T14:42:49Z")

</div>

In fact, my modification to the custom gcode in the “Rapid Move” only solves the issue when choosing Offset Fill. For the rastering, i havent found a solution, only external script to modify the gcode.

 ![image](https://forum.lightburnsoftware.com/uploads/default/original/3X/d/c/dc68b8ddeb455b2e91938cf77ecfd4864e588b9b.jpeg)

---

<div class="post-metadata">

**Author:** ![ROG](https://forum.lightburnsoftware.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@ROG](https://forum.lightburnsoftware.com/u/ROG)\
**Post date:** [November 18, 2025, 4:38pm UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/18 "2025-11-18T16:38:16Z")

</div>

Interesting, have you tried adding the line to the “laser on” command? Surely that would do the trick, because every time the laser fires, it would (should haha) lift, every time the laser turns off, it should lower. It becomes a similar operator to the “air assist” function, but instead moving the Z.

---

<div class="post-metadata">

**Author:** ![dusjagr](https://forum.lightburnsoftware.com/user_avatar/forum.lightburnsoftware.com/dusjagr/32/104361_2.png) [@dusjagr](https://forum.lightburnsoftware.com/u/dusjagr)\
**Post date:** [November 19, 2025, 9:36am UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/19 "2025-11-19T09:36:46Z")

</div>

Yes, I tried many things. but the gcode generated uses the spindle command to turn on and off the laser. the other options in the custom gcode do pretty much nothing, with all the experiments i tried.

i have many other ways to create gcode, but lightburn would be great and very easy to use to get startet for the upcoming workshop. offsetFill will do the trick for now…

---

<div class="post-metadata">

**Author:** ![dusjagr](https://forum.lightburnsoftware.com/user_avatar/forum.lightburnsoftware.com/dusjagr/32/104361_2.png) [@dusjagr](https://forum.lightburnsoftware.com/u/dusjagr)\
**Post date:** [November 21, 2025, 11:27am UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/20 "2025-11-21T11:27:21Z")

</div>

Looked a bit more into the raster fix… It’s very easy to run an external script over the gcode generated to add the z-moves whenever the spindle changes.

 ![lightburn_rastered](https://forum.lightburnsoftware.com/uploads/default/original/3X/6/1/61c05a50466d4985275a3bf786ce1584584052c4.jpeg)

Here is a fast vibe coded version in python:

> <https://github.com/dusjagr/brushograph-lb2gcode/blob/main/scripts/raster_s_to_z.py>

It just adds all the z-moves….  
I was wondering why the raster / “fill” in lightburn switches from absolute to relative moves, not absolute… @Aaron.F ? it’ doesnt matter so much. just my brain works differently.

```auto
;Custom GCode device profile, absolute coords
;Bounds: X29.95 Y34.1 to X90.08 Y94.94
G00 G17 G40 G21 G54
G90
M3
G1 Z10 F1500
;Scan @ 1500 mm/min, 100% power

M8
G0 Z4.8F1500
G0 X67.543Y34.764Z4.8
G1 Z0F1500
;Layer Green
G91
G0 Z2 F1000
G1 X2.35Y0.855Z0S0F1500
G0 Z-2 F1000
G1 X10.055Y3.659Z0S1000F1500
G0 Z2 F1000
G1 X2.349Y0.855Z0S0F1500
G1 X2.261Y1.888Z0F1500
G1 X-2.349Y-0.855Z0F1500
G0 Z-2 F1000
G1 X-16.674Y-6.069Z0S1000F1500
G0 Z2 F1000

```

I will add this to my collection of gcode python scripts in this webapi. slow loading time, sorry, it’s a free service, to make it most user-friendly.

[https://brushograph-lb2gcode.onrender.com/](https://brushograph-lb2gcode.onrender.com/)

---

<div class="post-metadata">

**Author:** ![ROG](https://forum.lightburnsoftware.com/letter_avatar_proxy/v4/letter/r/7993a0/32.png) [@ROG](https://forum.lightburnsoftware.com/u/ROG)\
**Post date:** [November 24, 2025, 9:03am UTC](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310/21 "2025-11-24T09:03:03Z")

</div>

Cheers for uploading the script, I am away for now, but will do some more playing when I return!

In the meantime, I wonder why that hasn’t worked, seems very strange to me!

[Next page](https://forum.lightburnsoftware.com/t/lightburn-raise-z-for-traversal-moves/149310.md?page=2)
