How to move several graphic lines from one layer to another?

I have some graphic lines on one layer, in this case F.SilkS, and I need to convert them to board outlines. I can move them one at a time with the edit screen, but I have many lines that are part of a more complex shape that I’d like to move all at once. What’s the best way to do this?

If you can run action plugin move to layer might help you

2 Likes

You can move whole layers with:

Pcbnew / Edit / Move and Swap Layers

But as far as I know there is no good method (yet?) to make complex selectrions in KiCad (For example clicking things while holding [Ctrl] to add things to a selection) and that would be a part of changing lots of things in one swoop.

In the future the object inspector should be able to do that, but it will be available only for 6.0. Maybe it will be very soon in the nightly builds because it has already been coded and 5.1 will be released soon, after which the codebase is opened for v6 development.

2 Likes

The may be able to get something usefull out of:

Pcbnew / File / Export / SVG…

and then edit in an external program, and then import it on the new layer. Importing seems only to be available for .dxf files.

Edit:
I just exported a layer as SVG, opened it in Inkscape and then saved it as DXF and imported it again in Pcbnew. I’ve got some scale and line thickness problems, but those may be overcome with a bit more practice with settings. (I am not good at Inkscape).

Edit2:
Exported again as SVG, and saved again in Inksape as DXF, both with “Linethickness 0” and I’ve got thin lines. Coars calculation shows a conversion scaling factor of 25.2 which is suspicially close to inch -> mm conversion, and circles turn into a mess.

Edit3:
Directly export in DXF with:

Pcbnew / File / Plot / Plot format: DXF.

Thanks for the help so far. To clarify, I want to be able to select several things and move just that selection to another layer.

In other software, you can cut some items to the clipboard and paste them to another layer, but that doesn’t seem to work in pcbnew.

Another option would be to use the scripting console, which I’m looking in to. Perhaps someone has a simple script to do that?

So, I cannot find an easy way to get the current selection in the Python console. It seems that we may need https://bugs.launchpad.net/kicad/+bug/1709149 before doing this is straightfoward.

sorry for going off-topic here… but how did you save as dwg in inkscape?

@apurvdate. Sorry, typo. I meant to type DXF, and corrected that in my previous post.

I think we all agree making complex selections is still “Missing” from KiCad.

I had an Idea. It is definately a hack, but it might get you going for now:
1). Exit KiCad.
2). Copy whole project.
3). Remove everything in the copy but your complex drawing.
4). Export the layer of your drawing.
5). Import the exported layer in your original project.

Also: with a screenshot we have a better idea of the complexity of the stuff you want to copy.

Quick python tip for this:

import pcbnew
board = pcbnew.GetBoard()
for drawing in board.GetDrawings():
    if drawing.IsSelected():
        ...

@Hypher as @MitjaN already pointed out,
you may find this plugin useful
action plugin move to layer

1 Like

thanks… i thought i missed some menu/plugin :grin:

nice… this is handy…

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