Kicad: Hugging Traces

Kicad: Hugging Traces

The kicad-avoid-conflict.patch patch recently posted to the kicad-devel list adds limited resolution of DRC conflicts while drawing traces. It currently only works for conflicts between traces. This is what it can do:

We begin a new trace from the 0603 component. Track width is 10mil, grid is 25mil, clearance is 6mil. Our goal is to make the new trace follow its neighbour as closely as possible. We first start the trace from the pad, drag it out a bit, and fix our first point to make it start with a 45 degree angle.

Next, we move the cursor right into the keep-out area of the neighbouring trace. Conflict avoidance detects the problem and pushes the trace's endpoint far enough away that the clearance is honored.

We can now drag the new trace along the old trace, provided that we stay in the "forbidden" zone and that the cursor is above the center of the trace. If the cursor was below the center, conflict avoidance would try to push the endpoint to the other side, which would cause the traces to cross.

We fix another point and then drag the trace over the corner and onto the downward slope. Again, since we're in the "forbidden" zone, conflict avoidance makes the new trace "hug" the old one.

Finally, we fix one more point and go around the next corner.

Note that it's important to fix the trace after each corner, or it would become loose and either be pulled away from the neighbour, or be drawn over it. Also, conflict avoidance currently does not detect:

And it cannot handle: