Gerbview: Insufficient Layer Count to support all copper and technical layers.

Bug #1809019 reported by Victor W
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KiCad
Fix Committed
Medium
Jeff Young

Bug Description

Gerbview only allows the display of 32 layers. However, when kicad creates boards with 32 copper layers, the additional graphical layers can not be displayed. This makes reviewing gerber files very challenging, as it requires you to do the review in stages of 32 layers, as you aren't able to concurrently view all the copper layers alongside mechanical or graphical.

To ensure Gerbview can support the output of a high layer count kicad board, I think the layer limit should be increased to either 48 or 64. This allows users to see all layers (including mechanical and graphical) at once, without having to break down the review process in stages.

Given the number of graphical or non-copper layers, this means that, when trying to view a board with more than 18 copper layers, you encounter errors because gerbview cannot properly display all the layers at once.

Revision history for this message
Seth Hillbrand (sethh) wrote :

It's a non-trivial change to the code but we'll be able to have a look at it with v6

Changed in kicad:
milestone: none → 6.0.0-rc1
status: New → Triaged
importance: Undecided → Medium
Revision history for this message
Jeff Young (jeyjey) wrote :

@Seth, it looks like most of the code is pretty good about using GERBER_DRAWLAYERS_COUNT, and that we could just bump that up. Did you find places where this is not the case (or where we assume GERBER_DRAWLAYERS_COUNT has a particular value)?

summary: - Gerbview: Insufficient Layer Count to support high layer count boards.
+ Gerbview: Insufficient Layer Count to support all copper and technical
+ layers.
Revision history for this message
Seth Hillbrand (sethh) wrote :

This issue with Gerbview are the places where the layer count is a bitmask on the 32-bit value.

c.f. onPopupSelection (visibleLayers)

We'll need to track these all down and move them to the LSET. This may be easier than I'm envisioning but I recall finding a few unexpected places when I first looked at this.

Revision history for this message
Seth Hillbrand (sethh) wrote :

Ah, I recall more now. Search for "SetVisibleLayers" and "GetVisibleLayers" to find a bunch more bitmasks. (files.cpp, gerbview_layer_widget.cpp, gerbview_frame.cpp)

Revision history for this message
Jeff Young (jeyjey) wrote :

Hmmm... indeed.

Changed in kicad:
assignee: nobody → Jeff Young (jeyjey)
Jeff Young (jeyjey)
Changed in kicad:
status: Triaged → In Progress
Revision history for this message
KiCad Janitor (kicad-janitor) wrote :

Fixed in revision b7c12b238fe29e7cf2eefc56910fca4c1c211688
https://git.launchpad.net/kicad/patch/?id=b7c12b238fe29e7cf2eefc56910fca4c1c211688

Changed in kicad:
status: In Progress → Fix Committed
Revision history for this message
Victor W (vicw) wrote :

Hi,

Thanks so much for realizing this feature. I had a chance to test it, but it didn't seem to work perfectly - I've submitted a bug report here

https://bugs.launchpad.net/kicad/+bug/1825248

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.