Edge.Cuts on Connector_Audio:Jack_XLR_Neutrik_NC3FAHR-0_Horizontal

I am trying to use the Connector_Audio:Jack_XLR_Neutrik_NC3FAHR-0_Horizontal footprint in a design but am having problems marrying the edges of the PCB with the lines on the Edge.Cuts layer within the footprint.

On the face of it then it looks to be correct:

When I run the DRC then I get a “Board outline does not form a closed polygon” marker which in extreme close up appears as:

Consequently, it gives an error when the 3D model is drawn and doesn’t show the correct PCB cutout for the connector.

What is the really dumb thing I am missing?

-Andy.

I had a look at that footprint in the library and it looks like the footprint is just wrong.

The meaning of:

is that the endpoint of each line segment on the Edge.Cutsl layer must have the same coordinates as the startpoint of another line segment.

I was also mildly surprised that there were any lines on Edge.Cuts in the library Footprint at all. It is more common to find some indication on F.Fab to where the edge of the PCB itself should be.

To fix it, you have to change the lines on Edge.Cuts in the Footprint itself. At the moment this is not even a continuous line.

On closer examination, I’ve also found a missing feature in the Footprint editor. In Pcbnew you can set the end points of graphic items as snap points, which makes it a lot easier to line up the endpoints of graphic lines, but in the Footprint Editor you can only snap to the grid.
Because of his limitation it is probably easier to change the lines of the footprint itself from the Edge.Cuts layer to F.Fab, and then in Pcbnew draw a continuous outline that follows the cutout on the F.Fab layer of your Neutrik Footprint.

I think that whoever drew the footprint was trying to give a helping hand as the connector does require a cutout in the PCB - actually I think it may need two that are slightly offset from each other - assuming my interpretation of the 2D CAD drawing from Neutrik’s website is correct.

-Andy.

This is the unescapable problem with edges in footprints. If the footprint is made with different grid than the board it may be very difficult to align with the grid.

For this connector it is much worse.
The lines in Edge.Cuts of that footprint already consist of 2 sections where the rectangular “cutout” is separate from the line for the edge of the board.

Yes you are right. This is the reason why adding new components to libraries is a slow process. They must be of highest quality and for some reason this isn’t. The library team would need more people to inspect contributions. This has slipped under radar.

FWIW: This was a year-long, 221 comment review process:


Yet things slipped through. I even recall commenting on that particular cutout but didn’t notice the (in hindsight) obvious issue.

Would you care to open an issue on GitLab?

2 Likes

Opened as issue #2510.

-Andy.

1 Like

This is more a limitation in pcbnew than an issue on the designed footprint.
A cutout should be a boolean operation on the board, giving just a cut on the pcb outline.
If you load the sample kicad_pcb file in StepUp, where I placed two footprint with the two cutout options, both will determine a correct pcb edge.
I’m attaching a sample board with the 2 footprint.
cutout.kicad_pcb (13.3 KB)
cutout-pcb.step (33.7 KB)

There would be two issues with that. First, manufacturers may require gerbers with a continuous outline. Second, it’s easier for the user to have directly the final outline.

It wouldn’t be impossible to have a cleaning command which does that boolean operation and changes the outline, but official footprints should work out of box anyway.

Eagle (and not only) is acting like that… Pcb Edge is different from a Pcb Cut

… a Simple-Minded approach for making a Footprint with an ‘Edge’ cutout is to:

  1. Make new footprint with the Cutout drawn on Dwgs layer, just having the Cutout shape’s Interfacing Edge lines. Add Pads/etc. Best to Ensure the Grid is set to the same as for the PCB (or increments of it).

  2. Edit the footprint’s .mod file and change Dwgs layer to Edge.Cuts.

Using it: drop it onto the PCB, add the Edge.Cuts as needed.

Then, can be used as needed… last image…