Comment 12 for bug 1605049

Revision history for this message
PCB Wiz (1-pcb-wiz) wrote :

"How did you do it?"
I am writing a translator, so the PAD layering info comes from the other CAD tool (Mentor PADS), via SW.
I test for simplest stacks and those convert ok, but some do have differing Top/Bot Cu and also differing Mask and Paste.

Mask and Paste look ok, and even Top/Bottom I can get to have no DRC errors, except for the Connect Errors, caused by the shorter-thermals effects.
Those can be hacked, with a quite short trace (enough to jump the inner thermal gap, often inside the Drill). See last added image in thread https://forum.kicad.info/t/stunted-thermals/3510/5

I guess there are a couple of choices :
a) Fix Thermals, to remove unwanted inner gap, so Connect Check passes.
or
b) Modify Check, so any copper overlap is correctly identified as connected.
I guess that may be slower, present seems to check for something like direct-copper-path-to-PAD-centre

Possible Idea : A variant on b), that may not be too much slower, would be to treat inside-drill-radius, as 'pad reached', for Connect checks. (Drill geometry is simpler than Pad shapes.)

This may fix other mentions I've seen of false-no-connect reports ?

"Now it seems this function is not "very far" from being workable..maybe worth working on it as it would be a huge advance!!"

Yes, I think it is quite close. Maybe one line of code even...

I've run more tests, and there is a jump in action when Size moves from .001 to 0
At .001, there is what I've call correct Thermal on a layer, and because Thermals are more of a negative-operation, it is simpler if a size of 0 gives no thermal/fill action.
ie if you have two PADS trying to generate thermals, it gets tricky with who wins...

At size=0, the thermal spokes do go away, which is good, _but_ there is an unexpected cavity left behind.
I think that (unwanted) cavity is 'OR'-ing graphically as a void, as Thermals seem to generate by 'add-void' approach.

Given the jump in outcome, there _must_ be code now that tests for =0, but the decision is not quite right - it should _not_ generate the cavity around a 0 size Pad.

The fix is to do less, not more, in this special case.

Do you know which code handles thermal spokes, and (almost) manages the Size=0 case ?
I've done a quick search, and find some close code, but no bingo yet ?