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:
parent
56d1d9380e
commit
f428b7c792
|
|
@ -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]);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue