Quite often, I find that I need a “hotspot” for copying/moving that KiCad fights me on.
For example, in the footprint “PinHeader_2x10_P2.54mm_Vertical”, I want a hotspot dead center. This would be a spot equidistant from pads 9, 10, 11, 12 and has nothing around it at coordinate (1.27, 11.43).
What I often do in other programs is to create a little “L-shaped” corner in Silkscreen (or a mechnical layer), and that corner is enough to create a “hotspot” that I can grab and use for alignment if I select the layer.
Unfortunately, the same trick doesn’t seem to work in KiCad. Am I missing something? Or is there a different workaround?
As Bob already wrote, all footprints can be grabbed by their centerpoint. If this does not work for you there can be a few causes.
Maybe you have Footprints turned off in the Selection Filter in the lower right corner (You can then still grab a pad).
There is currently a bug in KiCad concerning snapping. I’m not entirely sure about the details, but I think it calculates a snap point from the nearest grid point from the cursor, and not from the cursor position itself. This bug is abundantly clear if you set the grid to a very coarse value, such as 10mm.
Thanks for supporting my response, but the 0.0 point (which I believe to be the “hotspot”) is often not the center of a footprint. In many cases in my library, the 0,0 point is the center of pin 1. Keep in mind that there are many footprints (for example a horizontally mounted TO220) for which the center of the footprint does not make a lot of sense as the anchor. But…beyond that I plead guilty to being consistently inconsistent as to whether the 0,0 point is pin 1 or the footprint center.
One point: Most of us who are experienced with KiCad have our own footprint libraries. It is usually not difficult to take a footprint and save a copy (in your own library) in which the 0,0 point is wherever you want.
Hacky Solution:
Since I can grab a “pad” correctly, I created a circular “SMD Aperture” pad on the silkscreen layer at the center point. This allows me to grab the center of the footprint.
Discussion:
Using the footprint I mentioned as reference …
I can grab the hotspot of any of the pads and move the footprint, and it works fine. I can rotate or translate the footprint accurately around that grab.
What I cannot grab is an end or center of a “line” or “circle” drawn in Silkscreen (or any other layer). My selection filter has all the items checked.
The above example has changed the origin from the centre of pin 1 to the centrepoint between pins 2 & 3.
To do this you must first have the connector in a personal library then probably change your grid then use the tool shown with the RH arrow.
Is this what you require?
This example below has moved the axis centre (white cross hairs with the magenta cross) to the right angle of the graphic lines drawn on the silkscreen from the first example.
When you bring this modified footprint from your library onto the PCB, your cursor will be attached to the axis centre.
Referencing the connector I pointed out, if I want to be able to grab between 1&2 on centerline, 9,10,11,12 on centerline, or 19&20 on centerline, I would have to create 3 separate footprints just to be able to grab and align my connectors since you can only have one origin.
This isn’t theoretical. I have to align centerline and outer pin all the time with keyed connectors. So, I need centerline and aligned with Pin 1 for one connector and centerline and Pin 20 for the same connector rotated 180 degrees.
Or, I have a connector like USB 2.0 and I flip it to the other side of the board. If my alignment was Pin 1 pad edge on top, then it’s now Pin 5 pad edge on bottom.
I’ve got a workaround–perhaps this is even the expected solution from the developers. However, “moving the origin” aka “only one user definable hot spot” really isn’t sufficient.
And carrying around two completely identical except for origin footprints is a good way to hose yourself up by accidentally fixing a bug in one and not the other. “DRY” (don’t repeat youself) obtains.
That issue also has links to similar issues.
I sort of like your hackish workaround to abuse an aperture pad to create extra snap points.
There is also: PCB Editor / Preferences / Preferences / PCB Editor / Editing Options / Magnetic points
KiCad also has a bit complicated use of snap points. Not all snap points are always selectable. You can snap to lines on silk screen, but you indeed not use this directly as an origin point of a move. There is a workaround that is quick enough to be useful (but not ideal). First select your footprint, then right click and select Special Tools / Move with Reference. This lets you select a center or endpoint of a line on the silkscreen layer as your origin point of a move.
Ah, yes my son, wisdom comes with the ages (and experience or experimentation).
It also helps if you have to set some time apart and use that time for no other thing but to browse though the menu’s and try out unknown functions and settings to figure out what they do. Do this on a copy of a project, so you can’t accidentally damage important work.
As much as I do approve of this, as a greybeard, I have also learned over time that using the less documented menu choices is a good way to find youself in a maze of twisty little bugs–all different.