From bec7bba93868229779c6d2d6a4851a38e8c74922 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sun, 23 Jul 2023 20:49:38 +0200 Subject: [PATCH] Prevent the GdsParser to create rubbers. * Change: In GdsParser::xyToPath(), we were creating articulated layout segments over contacts using the "all_nets_merged_in_gds" common net. But some segment may later be promoted to interface, that means deleting the previous one and re-creating it with the right external net. The deletion was automatically creating a rubber between it's two Contact anchors. And we there is no way to get rid of it (other than also removing the Contacts). --- crlcore/src/ccore/gds/GdsParser.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crlcore/src/ccore/gds/GdsParser.cpp b/crlcore/src/ccore/gds/GdsParser.cpp index 3e518c1c..9f37b912 100644 --- a/crlcore/src/ccore/gds/GdsParser.cpp +++ b/crlcore/src/ccore/gds/GdsParser.cpp @@ -1672,19 +1672,19 @@ namespace { , vWidthCap ); cdebug_log(101,0) << "+ " << target << endl; if (points[i-1].getY() == points[i].getY()) { - segment = Horizontal::create( source - , target + segment = Horizontal::create( source->getNet() , layer , points[i].getY() , width - , 0, 0 ); + , source->getX() + , target->getX() ); } else { - segment = Vertical::create( source - , target + segment = Vertical::create( source->getNet() , layer , points[i].getX() , width - , 0, 0 ); + , source->getY() + , target->getY() ); } cdebug_log(101,0) << "| " << segment << endl; if (not net->isAutomatic()) NetExternalComponents::setExternal( segment );