Copper zone fillet/chamfer improvement

Bug #1783546 reported by Hildo Guillardi Júnior
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
Unknown

Bug Description

Copper zone fillet/chamer could be improved to (using the points on the Cmts.User layers on the file):
1) Take account the element (pads) that belong to the specific NET to calculate the curves / chamfer;
2) Same of (1) but to other zones that belongs to the same NET;
3) Include pins/pads that belongs to the NET to the filed zone, not just evaluate the contour around;
4) Avoid acute angles;
5) Avoid (as an additional option) dead filled zone (to narrow zone connection that fill the board but connect no pad).

Version: 6.0.0-rc1-unknown-994a9c5~65~ubuntu16.04.1, release build

Tags: pcbnew
Revision history for this message
Hildo Guillardi Júnior (hildogjr) wrote :
Revision history for this message
Hildo Guillardi Júnior (hildogjr) wrote :
Seth Hillbrand (sethh)
Changed in kicad:
importance: Undecided → Wishlist
milestone: none → 6.0.0-rc1
status: New → Triaged
Revision history for this message
Jeff Young (jeyjey) wrote :

Many of these have been fixed through the linked bug report.

Some others can't be fixed because they send performance to hell.

If there are specific cases which still need improvement please include screen-shots and we'll see if it fits in the poor-performance class or not.

Changed in kicad:
status: Triaged → Incomplete
Revision history for this message
Hildo Guillardi Júnior (hildogjr) wrote :

@Jeff, really got an improvement.
The 1-to-5 are marked into the Cmts.User layer. Just some comments about, as you said, some can't fixed due performance.

1) The zone didn't fully connect to the pad due the clearance, should be need some exception into the code because it got rounded because the edge/corner. Maybe be too complicated to do and really a issue performance after;

2) It was fixed at the corner, I think by `GetColinearCorners(foo)`function. Could this be expanded to the via case? ("analogRef" via connected to the D107 and inside the "area 2", I hopped it got just the clearance of the filled zone the it belongs, in this case).

3) It is caused because of the clearance calculation with the pins 1 and 2 of the U102. I think this haven't a directly way to solve. The only imaginable way (opinion) could it be calculate the clearance but connect pint 3 using a "vertical track" only, due pin 3 block the vision of the zone to pin 2 in this direction (algorithm point: the connection is not always vertical and should get the 3-2 direction aligning).

4) Maybe an option (check box) to configure the zone to avoid acute nibs? (This could be split to a other report/track)

5) Could be added a option "avoid fill width < than"? This will break apart that connection.

One point that I saw now. Close to the "5 point", the pin 3 of Q102, the filled zone could got rounded in the up-left corner. Maybe a sub-option of "Corner smoothing=Fillet/Chamfers" could it be "force internal corner". So the internal could get also rounded/chamfered.

Revision history for this message
Jeff Young (jeyjey) wrote :

(1) I think this one would be exceedingly difficult to fix even without performance constraints.

(2) Yes, this is addressed by the co-linear corners fix (or perhaps "hack" is a better description).

(3) Doing some sort of "vision blocking" or "shadow casting" would fix this, but would definitely send performance to the nether-world.

(4) The algorithm does now prevent acute corners, but only if the angle is less than 80º (or something close to that -- I can't remember the exact value). The angle in (4) is actually a bit larger than 90º).

(5) This is controlled by the zone's Minimum Width setting. (The upper ones go away if you set it to 20 mils; the lower one needs something more like 100mils -- but that causes problems with some of the other corners.)

I'm not following the "One point that I saw..." comment. Do you mean J102?

Revision history for this message
Hildo Guillardi Júnior (hildogjr) wrote :

I am attaching the idea of "smoothing internal corners".

Revision history for this message
KiCad Janitor (kicad-janitor) wrote :

KiCad bug tracker has moved to Gitlab. This report is now available here: https://gitlab.com/kicad/code/kicad/-/issues/2187

Changed in kicad:
status: Incomplete → Expired
Changed in kicad:
importance: Wishlist → Unknown
status: Expired → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.