Gerber rotation feature

I normally use gerbv as a gerber viewer but it has a slow response on complex gerbers with multiple layers. On the other hand, kicad’s gerber viewer is very efficient and that’s why I prefer using it in these cases.

However, there is a feature that I miss: The ability to rotate the layers. Would it be possible to implement it in future versions? I’m unaware of the complexity of doing it and I’m not asking about the ability to edit gerbers. Or am I wrong?

Do you mean for viewing purposes only, a bit like rotating the monitor 90 degrees or tilting your head?

1 Like

KiCad’s Gerber Viewer has no intention of being a editor. So features like rotation or movement will never exist.

Even if you aren’t going to save the file, rotating individual elements of a gerber isn’t necessarily simple because the gerber file format can get quite complex.

Now if we are talking rotating the viewport itself, that could be possible one day

I’m just talking about from a viewer perspective. It’s confusing because gerbv rotation feature is on ‘Edit’ Layer menu but nothing is actually being edited. It’s just showing up differently.

The last thing but I am suffering from stiff neck :upside_down_face:

In gerbv everything is edited and everything is rotated, but the kicad viewer does not have this

Releases · gerbv/gerbv · GitHub

Neither the KiCad Schematic Editor, nor the PCB editor or other parts of KiCad have the ability to rotate the viewscreen, so it is unlikely a feature like this will be implemented in the Gerber viewer.

You can rotate the whole PCB in the PCB Editor, but it’s a real rotate (which would be reflected in the Gerbers, so it’s also rotated in the Gerber viewer.

To me it’s just logical that the PCB has the same orientation in both the PCB Editor and Gerber viewer. Also, I’m not sure, but I think your request is related to PCB’s designed in some other program and you only want to use KiCad’s gerber viewer for this?

In projects with a critical layout (let’s take LTC3889 as an example) I usually work by comparing the gerbers on the EVM board and making changes to my PCB layout with the areas of interest. I do this with two screens for obvious reasons.

In general the orientation of my design does not match the orientation of the reference gerbers. I don’t want to change the orientation of my design because I’m comfortable with it. This last point may have some stubbornness. I accept it. In any case I prefer to rotate the gerber of a visualizer (a harmless process) than that of my own PCB layout. Maybe I’m conservative.

I usually do this with gervb, which is a viewer, not an editor, that allows you to rotate any layer. By the way, many pdf viewers, not editors, implement the option to rotate the document.

gaston

what is the problem to rotate your gerber in gerbv on second monitor ? any change to a gerber is an editing function … since the gerber itself is not a picture, but a set of coordinates

While currently no “rotate view feature” is implemented there is already a open gitlab issue regarding a rotated canvas view for the pcb-editor: Implement "Rotate canvas (view)" (#11672) · Issues · KiCad / KiCad Source Code / kicad · GitLab

I can imagine a similar feature (with the same reasoning) for the gerber viewer. The first step obviously would be to open a nice gitlab feature request.

On second thought I can also rotate the monitor :sweat_smile:

this function, like any other for working with gerberas, entails the creation of a gerbera editor … or as it is fashionable to say processor cam … which was refused by the developers …

I first would not answer, but:

this function, …, entails the creation of a gerber editor

This is not true. I’m no pc-programmer, but I imagine:

  • rotating viewport: “only” re-calculation of all existing canvas-elements for a transformed (rotated) coordinate-system (possibly work enough, as this entails not only transforming display coordinates, but also all selection coordinates. And has to be implemented for all items at the same time.)
  • gerber editor:
    • selection of all elements, including all needed selection-modes and selection tools for such a task (look at the many selection possibilities in board editor)
    • modifying commands for all these different selected items, with commands for all sorts of items
    • saving the changed gerber
    • maybe a drc-system which checks the changes against pcb-manufacturer constraints
    • and of course the rotating feature :slight_smile:

If you don’t see that these two options require a very different amount of work, than I can’t help.

I’m sure you really need/want a gerber editor, but the statement “no gerber editor, only gerber viewer” is the current kicad decision. So you have to look elsewhere to fulfill your need. Constant remembering on the limitations will not change the situation.

any change in coordinates is editing … even a turn or a turn … for writing this script, the description of the gerber is used as for any other editor … you can make at least one function, but it will already be an editor and not a viewer … in the result of all the disputes to date is gerbv which does not need to start with 0 …if you have a panel with 2 or more boards? how to make feedback with the board when changing the gerbera? and so on… there’s more work here than you think… and you still have to keep it all in order to follow a specific standard, otherwise, when ordering boards, you will get a marriage…

This is actually easy since it’s just a transform matrix applied to the viewport definition (opengl/cairo take care of it, we render as normal) and the inverse transform applied to the singular get canvas position function. The most work will be adding a GUI action/button lol

I think the transform matrix is already there with the rotate function, we just never use it.

See GAL::SetRotation :wink:

No editing functions required. This same transform matrix is how the “View > Flip Board View” function works.

1 Like

It will not work to flip the picture without changing the coordinates, otherwise you will have a discrepancy between what you see with the real gerber file and the board … The board is a gerber image is a set of coordinates from the board, gerber is generated and not vice versa

The person here wants to rotate the entire canvas just for inspection. That can be done through the transform matrix. All selection function will still work and kicad will display the coordinates in the rotated position automatically through the transform matrix applied to the entire canvas.

I see no issue here.

In what position do you have a real gerber file when you rotate it in the viewer? I understand that you want to rotate just a picture, but this does not correspond to normal viewing, since there is a mode to transfer to the board editor

Only if the change is committed to the file, otherwise the file is unchanged and thus unedited.

You seem to be unable to understand the points that are being made in response to your posts or unwilling to understand . . . either way you are taking this thread and making it go round in circles again. Again its starting to become a distraction and a source of annoyance rather than a source of help and progressing understanding, I don’t like to do this but it’s on you.

6 Likes