Fixed issue-1307 (partial, UNPLACED component placements render placement if they come with point and orientation)

This commit is contained in:
Matthias Koefferlein 2023-09-11 21:39:06 +02:00
parent 50c0ec2738
commit 1e65abb7bf
2 changed files with 15 additions and 1 deletions

View File

@ -1557,6 +1557,20 @@ DEFImporter::read_components (db::Layout &layout, std::list<std::pair<std::strin
d = pt - m->second.bbox.transformed (ft).lower_left ();
is_placed = true;
} else if (test ("UNPLACED")) {
// invalid "UNPLACED", but yet it appears to be existing (#1307)
if (test ("(")) {
db::Point pt = get_point (scale);
test (")");
ft = get_orient (false /*mandatory*/);
d = pt - m->second.bbox.transformed (ft).lower_left ();
is_placed = true;
}
} else if (test ("MASKSHIFT")) {
maskshift = get ();

View File

@ -8,7 +8,7 @@ UNITS DISTANCE MICRONS 1000 ;
DIEAREA ( 0 0 ) ( 1000 2000 ) ;
COMPONENTS 3 ;
- macro1 macro1 + PLACED ( 0 0 ) N ;
- macro1 macro1 + UNPLACED ( 0 0 ) N ;
END COMPONENTS
SPECIALNETS 1 ;