Anyone ever notice the bug in dbTransformPoint() when the orient is "R90" or "R270"?
I wrote skill code to place a poly via on Pcells automatically. But when I wanted to get the relative offset of the xy of a poly via (child of device) to the device's xy,
I found that dbTransformPoint gives different results based on the orientation. Or am I somehow using dbTransformPoint() incorrectly?The code below works except the values are minus'ed (negative values are positive, and visa-versa) when the orient is "R90" or "R270".
(foreach obj geGetSelectedSet()
(foreach via (setof s obj~>children s~>objType=="stdVia")
(printf "%6s (%6s) => %L\n"
obj~>name
obj~>orient
dbTransformPoint(mapcar('difference via~>xy obj~>xy)
list(0:0 obj~>orient 1.0)))))
I1 ( R90) => (-2.15 -2.05)
I2 ( MYR90) => (2.15 2.05)
I3 ( R180) => (2.15 2.05)
I4 ( MX) => (2.15 2.05)
I8 ( R270) => (-2.15 -2.05)
I0 ( R0) => (2.15 2.05)
I5 ( MY) => (2.15 2.05)
I7 ( MXR90) => (2.15 2.05)
Working with Virtuoso 6.17-64b
