I changed the pcbnew layer draw order so I can see what I'm doing

I couldn’t stand how kicad always puts stuff in my way when I’m doing PCB layout and wants me to only be able to see 1-2 layers at once, so I patched it to be more like Eagle 7:

Forum is complaining that new users can’t post attachments, so see screenshots at https://i.imgur.com/6cCgWqr.png and sqQwPmJ.png

Patch against kicad-5.1.7 at https://pastebin.com/vhgaHRTK

I don’t even remotely expect this patch to be merged as-is, but it would be amazing if there were an option in pcbnew preferences to make it render like this.

I can’t tell what it does by looking at that one screenshot. Could you make a screencast or explain the problem and the solution in details?

Have you tried 5.99 nightly builds? The visibility options have changed pretty much. It’s not worth making any changes to 5.1, they won’t be accepted to be merged. If you actually want to create something which possibly could be merged, first test the nightly builds, then communicate with the development team through the mailing list, then write it.

EDIT: and “patches” won’t be accepted. Everything works through gitlab and merge requests nowadays.

There’s two, but the second one is just the filename part because the forum was complaining at me about too many links.

https://i.imgur.com/sqQwPmJ.png for reference.

Quick example: if I start routing a track on B.Cu, it brings B.Cu to the front so I can’t see other stuff that I’d like to route towards or around because it’s hidden by the copper.

Some might say I can set the zones to draw as wireframes, but I’m used to using lots of nested zones and it becomes far too visually confusing to keep track of them like that - especially if I’m trying to route a trace on one layer that doesn’t pass beneath a specific zone of a nested set on another layer, such as commonly happens with switchmode converters.

With this patch, it doesn’t bring B.Cu to the front but still highlights the net I’m routing.

Also, it changes the default draw order so that F.Crtyd, F.Silk, F.Mask, F.paste etc are drawn on top of F.Cu rather than beneath it, so I can see where everything is like a false-colour version of the actual PCB, rather than me having to bring each of those layers to the front individually to check them, and having them become invisible when I start trying to route something.

Yep, they kept segfaulting when I tried to do basic stuff like change track width or via drill size so I went back to 5.1.7. Last one I tried was commit e4675ee9a.

From what I recall, 5.99’s pcbnew still annoyed me in the same way that 5.1.7s does.

When git head is a bit less crashy (so I can actually use it for more than a few minutes at a time) I’ll investigate updating the patch and sending a pull - but I guess it needs to be connected to some configuration option rather than just pushed on everybody.

Ideally the layer draw order should have a whole GUI widget along with a checkbox to enable/disable bringing the active layer to the front - but those sort of GUI additions are rather trickier for me than what I’ve done here.

Changing the zone transparency has been in 5.99 for some time. The former Layers Manager is now Appearance and there’s Objects tab. See Post-v5 new features and development news.

1 Like

You can change layer transparency in 5.1.x
Right click on the little color dot in the right side list of layers.

1 Like

The transparency doesn’t work as well as changing the draw order, since I end up needing to make the copper so transparent I can barely see it.

As can be seen in my screenshots, I’m already using layer transparency in addition to my patch.

I don’t imagine that an additional zone transparency setting will help with routing a copper trace underneath a differential pair or checking for collisions between B.Silk and B.Mask and holes and whatnot.

Once I can run 5.99 for more than a minute or two without it segfaulting, I’ll see if I need to change anything there for me to be happy with it.

The layer order (in the layout viewport) has been discussed sometimes. Please try to find a bug report in the issue database. It would be useful to continue the discussion there if there’s something new to say, and maybe you could get your code merged after 6.0. Unfortunately the master code is in feature freeze until 6.0. In any case such changes which affect the workflows must be discussed thoroughly with the lead developers first.

This has been discussed (probably several times) on this forum, but I do not know if there is an issue on gitlab about it.

Your idea looks very much like what I have in mind (and posted here): Instead of pulling the current copper layer to the front, push it to the back, and draw other layers over it, but with a low opacitity level. So just a layer change would trigger both a change in the drawing order and a change of transparency of multiple layers.

Assuming you’re running the very last nightly, a detailed report to the Gitlab issues tracker (https://gitlab.com/kicad/code/kicad/-/issues) is more than desirable.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.