← Back to team overview

kicad-developers team mailing list archive

Re: Gerbview wishlist and development


On 03/10/2012 12:29 PM, Element Green wrote:
> It seems like the current state of gerbview leaves a lot to be desired.  From what I can
> see though, its pretty close.  Here are some of the lacking features which cause me to
> resort to using gerbv (which also has its own set of limitations and issues).
> I've added these to the Wiki here:
> http://wiki.xtronics.com/index.php/Kicad#Gerb_View
> Wishlist:
> 1. Location and size information for selected geometry.
> 2. Layer names (based on file name by default).
> 3. Re-ordering of layers.
> 4. Easy toggling of layer visibility (select ranges of layers to toggle, etc).
> 5. Interactive layer offset, rotation and flip.
> 6. Show drill holes as geometry (circles at the drill hole sizes).
> I've started adding code for #1.  So far it shows basic location and size information
> for circles, rectangles and ovals in the status bar when an item is clicked on.
> For items 2-4, it seems like the layer selection panel needs to be changed to a list
> control of some sort, which allows for re-ordering, SHIFT/CTRL multi selection, right
> click menu, etc.

The inheritance tree from GERBVIEW_LAYER_WIDGET goes up to LAYER_WIDGET and over to
PCB_LAYER_WIDGET.  It may be necessary to break off GERBVIEW_LAYER_WIDGET so as to not
negatively impact PCB_LAYER_WIDGET.  There were several objectives I had in writing
LAYER_WIDGET and PCB_LAYER_WIDGET, that I would not want to lose at this point.  Just to
name one:

*) at most two clicks away from controlling anything relative to visibles.  This means
scroll bars would bother me, since I don't want to have to "look for" or reposition  anything.

(My concerns are less with GERBVIEW_LAYER_WIDGET than PCB_LAYER_WIDGET, so I would not
easily embrace an attempted move to a list control within PCB_LAYER_WIDGET.)

Exploring a path where you keep the existing base class, these considerations come into play:

I think you have toggling of layer visibility now, range selection no, but single items yes.

Other tips regarding only GERBVIEW_LAYER_WIDGET which do not entail changing base class:

*) Much can be done with the right mouse popup menu that gets added in the derived
classes, below LAYER_WIDGET. 
  a) a "move up" and "move down" choice for re-ordering. 
  b) Unload this gerber file.
  c) group visibility toggling based on file extension, which is a cheap way to get your 4)

You would have to add mouse hit testing for specific row choices.  But much is doable with
the right mouse popup menu idea.

*) Could keep the read only LAYER_WIDGET::ROW items at the LAYER_WIDGET level in a private
internal member list to ease re-ordering.

Regarding GERBVIEW itself:

*) I had started down the path of keeping a separate display list for each gerber file.  
This is fundamentally different than PCBNEW where all graphical items are on one display
list accessed via GetBoard(), and earmarked with a specific layer number. 

What a separate display list for each gerber file would give you is the ability to easily
unload any particular gerber file.  Before I could implement this, I got distracted some
2-3 years ago.  The only disadvantage I can see is if you are going to support rich mouse
hit testing, then you have to search all the lists separately.  

But I think that sounds like a for loop to me, and we have a very nice COLLECTOR support
which can and should be used to gather up items found during list walking.

However, mouse hit testing is mostly useful if you want to do something with the selected
item, and we are not talking about a full blown editor here.  But I guess you are
concerned about displaying something about the selected item.  Full blown hit testing
would involve the dis-ambiguating menus that we have in PCBNEW and EESCHEMA.

> Before I delve into it too much, I'd like to know if anyone else has been
> planning/currently working on gerbview or if there is some sort of vision for it.

I think you have a Green light.  (What else could I say?)

We welcome the additional help.


> I've been using Kicad for a few months now to make schematics and PCB layouts.  Its
> great software and its nice to see how active the development is.
> Best regards,
> Element Green

Follow ups