4
\$\begingroup\$

I have a custom footprint in KiCAD format.

When I place the footprint on my PCB in the Pcbnew editor, setting a coarse grid before I place it, the footprint looks technically correct -- it has the right number of pads, and each pad has the right shape and position relative to the silkscreen and other pads in that footprint. (The center of each pad is on a 1.27 mm grid relative to the other pads in this part).

But the pads on this particular footprint currently don't line up with the alignment grid that everything else on the board is lined up with.

Is there a way to edit the footprint to nudge everything in that footprint a certain amount in X and Y, so that the footprint still looks the same, but when I place the footprint on my PCB, the pads line up with the alignment grid the way I expect?

I suppose I could, in the Pcbnew editor, edit the position of each copy of this footprint and change its position on the PCB by the "right amount" in the X and Y direction to get each pad to line up properly. But then every time I use this footprint I have to manually edit the position of that part.

I'm pretty sure it would be better to edit the footprint in the footprint editor and individually select each piece of silkscreen and each pad, and then for each one, edit its position to the new position. From then on, every time I use the improved footprint, the pads will naturally line up with the grid.

Is there some way I can somehow select everything in the footprint editor and move the whole thing over in one operation?

\$\endgroup\$
  • 1
    \$\begingroup\$ have you tried setting the grid origin to a new/better position? \$\endgroup\$ – KyranF Apr 29 '15 at 0:19
  • \$\begingroup\$ @KyranF: Yes, I tried putting my cursor where I wanted the grid origin to go, and then pressing the space bar, but that didn't change the footprint file. How do I set the grid origin? \$\endgroup\$ – davidcary Apr 29 '15 at 1:01
  • 2
    \$\begingroup\$ It's not the space bar, that is only resetting the "measured distance" so you can measure point to point using the dx and dy numbers down the bottom bar there... There is a button on the right hand side of the PCBnew main window which is 2 icons below the trash can icon, it's tooltip says "Set the Origin point for the grid". My version is the Windows x64 march 2015 build. \$\endgroup\$ – KyranF Apr 29 '15 at 23:53
  • 1
    \$\begingroup\$ You could also make the grid so small for that particular component, that basically allows you to line up with the other components, then reset it back. At least this is what I do. \$\endgroup\$ – machineaddict Jun 23 '15 at 6:21
  • \$\begingroup\$ If you have multiple instances of this one footprint, simply editing (fixing) the footprint, deleting them from pcbnew, and re-importing the netlist should correct things. Re-place them, and adjust the tracks accordingly. (The new push-and-shove router could make this a snap.) \$\endgroup\$ – rdtsc Jan 29 '16 at 3:27
3
\$\begingroup\$

One of KiCad's most powerful, but also subtle (and potentially frustrating if you don't notice) features is it's grid and movement system.

When you move a part, which part of it is under the cursor and which thing you select is important. There are multiple possible anchors for any given footprint, and the one you move or place it by will always be aligned to the grid, so be sure to chose which anchor point you move it by wisely.

If you select the center of a footprint, then the center will be moved on the grid, and aligned to the grid. If your grid is 1.27mm, but your part is an 8 pin SOIC, then moving the footprint by the center crosshair (the transparent 'ghost' of the footprint will be locked under the cursor to indicate by which anchor you're moving it by), then because the center of a SOIC falls half way between the two inner pins, all pins will be 0.635mm off the main grid, but the center of the footprint will be properly aligned to the grid. As it should be.

If you want the center of the footprint to be off-alignment, but the pads to be aligned to the grid, simply select any one of the pads, or have your cursor over one of the pads when you hit M for move. The cursor will lock to that pad's center, and now THAT is the anchor point you're using. When you place it, the footprint will now be aligned to that anchor point, which in this case will put all the SOIC's pins in alignment with the 1.27mm grid, at the expense of the center of the footprint being off-alignment. Also as it should be.

You naturally can't do both with a grid size that coarse, though setting your grid to 0.635mm would also solve this. Though, sometimes there are times we want a coarse grid, and that's what makes KiCad's movement system so versatile!

Note: This anchor point selection system is universal. If you are doing rotation, especially finer grained rotation (45 degrees or 30 degrees for example, instead of 90), you'll notice that the axis of rotation is also always the anchor. So you can rotate a part around one of it's pins, or it's center.

It's also universal in the sense that it applies to one footprint or many footprints. If you select a block, any anchor point on any of the selected parts in a block can be used as the movement anchor, and entire groups of parts can likewise be rotated about an anchor as the axis.

\$\endgroup\$
2
\$\begingroup\$

I know this is a bit old but I've just had a similar issue and couldn't find any solution online. Then I discovered it's easier than I'd thought! I'm using KiCad 4.0.3 Stable, under Windows. The process is as follows:

Left click and drag to select everything that you want to move. When you release the left mouse button, it will all be attached to your mouse pointer. At this point, either right click and select "Move Block Exactly" or use the shortcut Ctrl+M.

A "Move Item" dialog will open, with fields for X axis displacement, Y axis displacement, and item rotation. In my case, I wanted to shift everything to the left: I entered "-2.54" into the "Move vector X" field, then clicked OK.

Everything was shifted nicely!

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.