"Fillet Tracks" feature in 5.99

@Seth_h I can’t take credit for this! I just coded a very simple tool (~200 lines of code). However you and others worked on the huge effort required that allowed KiCad to support curved tracks (several thousand lines of code)! Credit to you! :slight_smile:

2 Likes

Do any of you get errors from the DRC after fillet?
I was getting errors as if the tracks were not complete

S

Yes, the latest build at least shows this DRC failure for me too.

What DRC errors are you getting? The Fillet Tracks tool is “dumb” and doesn’t check if it doing a fillet operation might cause a short to other tracks or cause other DRC errors. It relies on you entering the right radius

However the newly created arcs should definitely be connected to the adjacent tracks and be assigned the correct net name.

1 Like

Stefan

Are you using linux?
I just tried a few tracks on a windows machine and its not showing up on the DRC anymore.

Is there any way to make this tool so that one can just click on the track and have it automatically determine the fillet? I notice that I have to try the fillet using multiple values. Some tracks I have to do something like… fillet at 1mm then fillet at 0.25mm to get parts that dont accept the 1mm. It becomes tedious to go through the cycles for each track. Even if there was built into your tool for it to have a default amount and then all those inabilities that it comes back with, the tool would automatically attempt another go for the leftovers at half that, then half that again until all corners are worked. I really appreciate the work BTW thank you.

The “Fillet Tracks” tool is just meant to be a simple tool for the time being (better than nothing at all). I think what you suggest might be better achieved with an interactive filleting tool where you could drag the corner of two adjacent straight segments to create or ammend a fillet, like below:

We are now in v6 feature freeze so only bug fixes are permitted in addition to a very limited set of features that are still in development. I’ve been trying to code the above feature but am struggling with it right now so not sure I can make it in time for v6 and if I did it might not be accepted.

Also @Scott_Cox if you do find any other DRC errors either Windows or Linux please let us know as it might be a bug either in DRC or the Fillet Tracks tool.

3 Likes
Version: (5.99.0-6897-g5c309f0fef), release build
Libraries:
    wxWidgets 3.0.5
    libcurl/7.73.0 OpenSSL/1.1.1h zlib/1.2.11 zstd/1.4.5 libidn2/2.3.0 libpsl/0.21.1 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.41.0
Platform: Linux 5.9.1-992.native x86_64, 64 bit, Little endian, wxGTK, KDE, x11
Build Info:
    Date: Nov 10 2020 00:15:10
    wxWidgets: 3.0.5 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
    Boost: 1.72.0
    OCC: 7.4.0
    Curl: 7.73.0
    ngspice: 33
    Compiler: GCC 10.2.0 with C++ ABI 1014
Build settings:
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
    KICAD_SCRIPTING_ACTION_MENU=ON
    KICAD_USE_OCC=ON
    KICAD_SPICE=ON

The select / expand connection (u) option does correctly select the entire track, marked fillets included, so it seems to be that the issue is with the DRC engine.

There’s another small bug as well, if I recall correctly. If you use the differential track jog tool (9) to extend a track then the arc gets removed and replaced by several straight line segments. I guess the tool means to simplify the arc, but should retain the original track on the actual board instead of replacing it. Note that I think this is a bug in the differential track tools, just exposed by the fillet tracks.

Here is an example that could pose problems…
Normally this junction is a T junction and following using the fillet command, it has broken one side of the T. You can also see how part of the track was unable to perform the fillet. For that part, I would imagine that the fillet tool could interpret how much fillet that that section can handle and do that automatically, rather than having to guess and step down the dimension until it works manually.

I have just come to find that the DRC appears to be broken…
I have unconnected tracks that go undetected.

And as another note…

Performing the ‘cleanup’ of tracks, nearly every track showed errors and was erased.

I am already fixing this with MR 514 (https://gitlab.com/kicad/code/kicad/-/merge_requests/514)

For your other issues with DRC and the differential tracks tool, could you open issues in Gitlab so we can track them?

Thanks

@StefanHamminga, @Scott_Cox a few fixes have been recently applied that address some or all of the issues mentioned in this thread. Could you try the very latest nightly version and see if you still notice any issues?

Thanks

I’ll make a new nightly and give it a try. Could be Monday before I can properly test it though.

1 Like

In case anyone wants to try today’s build for Arch Linux:

https://rbts.co/download/kicad-git-5.99.0~7123.gf130970469-1-x86_64.pkg.tar.zst
https://rbts.co/download/kicad-git-5.99.0~7123.gf130970469-1-x86_64.pkg.tar.zst.sig

Using build 7129.

So far the DRC works for me, that’s great!

The length matching tool still results in the fillet tracks being replaced by straight segments:

@StefanHamminga thanks for checking. That will be an issue with the interactive router and / or length matching tool in that case.

Would you be able to open an issue in Gitlab with this so it can be tracked for v6 release? https://gitlab.com/kicad/code/kicad/-/issues

Curved tracks are quite a new feature in KiCad and the Fillet Tracks tool is just a way of creating them. However, it looks like the tool is helping to find if anything else is broken related to the curved tracks :slight_smile:

Done!

2 Likes

Thank you

I haven’t had much time lately to play around with it, but I will get back to you

S

@Qbort, the interactive filleting tool you are working on, as shown in your video, looks great. Now I do look forward to version 6! Keep up the good work.

@Qbort Would it be possible to use your tool for board edges as well? That would be a great time-saver for corners that aren’t simple right-angle.

1 Like