pcb

PCB20100929 corrupts element

Bug #699333 reported by eschabor
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
pcb
Fix Released
Medium
Unassigned

Bug Description

The attached element (250mOhm 4 terminal resistor) became corrupted following autorouting and trace optimisation with PCB20100929.
Loading the .pcb file in a text editor shows that the element ResCu250mOhm is present and has the correct number of pads, but some of the pads have had their
coordinates randomised.

Tags: core sf-bugs
Revision history for this message
eschabor (eschabor) wrote :
Revision history for this message
eschabor (eschabor) wrote :
Revision history for this message
eschabor (eschabor) wrote :

The bug is in djopt.c in function padcleaner()
padcleaner() is intended to remove unnecessary traces that are fully enclosed inside element pads.
Unfortunately the problem element confuses padcleaner() with the result that padcleaner() considers a pad itself to be an unnecessary trace and nukes it.
The following patch solves the problem:
diff --git a/src/djopt.c b/src/djopt.c
index 240b86b..7a1a315 100644
--- a/src/djopt.c
+++ b/src/djopt.c
@@ -2851,6 +2851,9 @@ padcleaner ()
              if (layer_type[l->layer] != layerflag)
                continue;

+ if (p == l->line)
+ continue;
+
              empty_rect (&r);
              close = p->Thickness / 2 + 1;
              add_point_to_rect (&r, p->Point1.X, p->Point1.Y,

Revision history for this message
eschabor (eschabor) wrote :

Fixed by commit 4e22cf4e48f4eb9e0a199c65cded32e15dea420d

Revision history for this message
Bert Timmerman (bert-timmerman) wrote :

Commited on 2010-11-28 by DJ: can't be "fix released".

Changed in pcb:
status: Fix Released → Fix Committed
Peter Clifton (pcjc2)
Changed in pcb:
milestone: future-bug-release → next-bug-release
Peter Clifton (pcjc2)
Changed in pcb:
status: Fix Committed → 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.