Corrected a scaling error that causes all extraction dimension values

to be scaled twice when using the "extract style" command and with an
extraction style that uses micron units.  The microns-to-internal
units conversion expects an unscaled result when calling
CIFGetOutputScale(), but except when loading a tech file for the
first time, this value is scaled, and causes the double scaling.
Fixed by unscaling the CIF output before reloading the extraction
style, then scaling it afterward.
This commit is contained in:
Tim Edwards 2021-08-23 13:46:19 -04:00
parent 56d1d9380e
commit f428b7c792
2 changed files with 12 additions and 1 deletions

View File

@ -1 +1 @@
8.3.197
8.3.198

View File

@ -925,8 +925,19 @@ ExtLoadStyle(stylename)
/* no other tech client sections depend on the extract section. */
invext = TechSectionGetMask("extract", NULL);
/* If microns are used as units, then the TechLoad needs to convert */
/* units based on *unscaled* dimensions. Since it gets the scale */
/* factor from CIFGetOutputScale(), the CIF units need to be */
/* unscaled. This is cumbersome but ensures that the right units */
/* are obtained. */
CIFTechOutputScale(DBLambda[1], DBLambda[0]);
TechLoad(NULL, invext);
/* Put the CIF output scale units back to what they were */
CIFTechOutputScale(DBLambda[0], DBLambda[1]);
/* extTechFinalStyle(ExtCurStyle); */ /* Taken care of by TechLoad() */
ExtTechScale(DBLambda[0], DBLambda[1]);
}