pcb

11 Auto DRC/ratsnest/find connection bugs

Bug #699002 reported by whitis
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
pcb
Fix Released
Undecided
Unassigned

Bug Description

The auto-enforce DRC and ratsnest code has some serious
problems:
  - You can't connect to floating nets with auto-DRC turned
     on. A floating net being some combination of traces
     and vias that is not connected to any component pin.
     These should be given an internal name such as
      "_float_0001" if they need a net name at all and
      connections (but not near misses) should be allowed.
      Floating nets arise in may cases:
         - You have been deleting the trace segments
            connecting pins to a complex trace to debug
            ratsnest problems.
          - You are prerouting a bus or other signals
             before connecting it to devices.
          - You are placing a grid of vias to be used with
             a bunch of traces being run in the same
direction.
          - you know you need to get 10 traces from one
             section of the board to the other across some
             existing traces (such as VCC) so you draw the
             stitches first in an orderly fashion to make a
             minimal hole in the groundplane on the
other side.

  - The only way to get a via DRC doesn't reject is to
     draw it by switching layers while drawing traces
     and you must draw at least one trace segment
     before and one after and start from a pad or pin.
     Never mind that you may not want to draw one of
     those segments until later, the program won't draw
     the via until after you have drawn another trace
     segment.

  - You can't connect nets without a current rats nest.
     If you delete a trace segment, you have to redraw
     the rats nest before you can redraw it. AutoDRC
should
     be based on the netlist, not the ratsnest as far
as what
     nets you are allowed to connect to. You may or
     may not want to enforce near misses based on
    existing traces. Worse, the rats nest must have
     been regenerated before you started drawing the
     trace; if you redraw it after starting the trace it
      is ignored. You must escape from drawing the
      current trace and start over.

  - hidden layers break "find connections"

  - Displayed clearance is wrong. It appears to display
     half the required clearance rather than the full
clearance.

  - ratsnest displays rats joining shorted nets. If
two nets
     have been shorted together somewhere (often because
     of other DRC bugs), the rats nest treats the two
     nets as the same and displays rat lines in other
     areas encouraging you to short them together even
     more.

  - When the rats nest code issues warnings, it provides
      no information to support those warnings, let alone
      a hyperlink into the drawing space.
      WARNING: net "VCC" is shorted to net "DGND2"

   - Pads do not necessarily have to meet the same
      clearance rules as nets. The program should
      not enforce trace to trace minimum separation
      against the pad to pad separation of the pads
      you are attempting to connect to.

   - DRC often will not let you connect to the very same
      pad/pin the program is telling you to connect to
      with a rats nest line (there being no clearance
      problems in the immediate area of the connection.

   - red error markers are displayed inconsistently.
      They are frequently not displayed at all and when
      they are displayed, it is not remotely near the
      site of the error.

   - there is no marker for the begining/end of error
      messages from "W" command in the message log
      window
          if(first_error) {
             fprintf(msglog, "Ratslist errors:\n");
             first_error = 0;
          }

Tags: drc sf-bugs
Revision history for this message
whitis (whitis-users-sf) wrote :

Another one: If the you start a trace using F2 on a via
(possibly also pin/pad) and an unrelated ratsnest line
crosses the center of that pad, the program will not only
highlight the wrong net in green, it will refuse to let you
draw a line from that via because it is not connected to the
bogus net.

Revision history for this message
Ben Jackson (ben.jackson) wrote :

While looking into this I found a simple workaround for the AutoDRC vs floating segments. The test is actually for segments with the FOUND flag (bright green highlight that turns on when you start drawing the line). That flag is also the one used when you hit 'f' over a feature to highlight everything connected. So:

1. Select line mode (F2). Entering this mode clears the found flag.

2. Hit f over the target via or line. It will light up.

3. Click on your start point, which will also highlight that net (probably a bug, it should probably unfind from step 2, but it doesn't)

4. Now you can connect your line.

tags: added: drc
Revision history for this message
Traumflug (mah-jump-ing) wrote :

This bug is 9 years old and very broad, so no chances to find a specific fix.

In case some of the above issues still exist, please file a new bug. Ideally, one bug per issue, please.

Changed in pcb:
status: New → 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.