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).
This commit is contained in:
Jean-Paul Chaput 2023-07-23 20:49:38 +02:00
parent c552d36a55
commit bec7bba938
1 changed files with 6 additions and 6 deletions

View File

@ -1672,19 +1672,19 @@ namespace {
, vWidthCap ); , vWidthCap );
cdebug_log(101,0) << "+ " << target << endl; cdebug_log(101,0) << "+ " << target << endl;
if (points[i-1].getY() == points[i].getY()) { if (points[i-1].getY() == points[i].getY()) {
segment = Horizontal::create( source segment = Horizontal::create( source->getNet()
, target
, layer , layer
, points[i].getY() , points[i].getY()
, width , width
, 0, 0 ); , source->getX()
, target->getX() );
} else { } else {
segment = Vertical::create( source segment = Vertical::create( source->getNet()
, target
, layer , layer
, points[i].getX() , points[i].getX()
, width , width
, 0, 0 ); , source->getY()
, target->getY() );
} }
cdebug_log(101,0) << "| " << segment << endl; cdebug_log(101,0) << "| " << segment << endl;
if (not net->isAutomatic()) NetExternalComponents::setExternal( segment ); if (not net->isAutomatic()) NetExternalComponents::setExternal( segment );