I am completly new in SKILL programming and looking for a simple code to move automatically pins to instances (subblocks) generated in VXL.
In reply to Andrew Beckett:
it is exactly the case.For simplicity let's assume that pin is connected to one instance.
In reply to Philey:
I was just looking at the SKILL code I have which does something similar. Unfortunately it contains a lot of things specific to the customer I wrote it for, as well as a whole bunch of other things which make the code too complex an example to post.
And I don't have time for the next week or two to produce a cut down, simplified example.
Perhaps somebody else can post something...
The general idea is that you would do something like:foreach(term cv~>terminals ; iterate over all the pins for this terminal foreach(pin term~>pins pinFig=pin~>fig net=term~>net ; only do this if there aren't more than one inst term unless(cdr(net~>instTerms) instTerm=car(net~>instTerms) childTerm=instTerm~>terminal childPinFig=car(childTerm~>pins)~>fig ; location within the instance master location=centerBox(childPinFig~>bBox) ; transform to the top level coordinate system location=dbTransformPoint(location instTerm~>inst~>transform) pinFigLocation=centerBox(pinFig~>bBox) ; calculate the overall transform to move the pin to the new location transform=dbConcatTransform(list(-xCoord(pinFigLocation):-yCoord(pinFigLocation) "R0" 1) location) dbMoveFig(pinFig transform) ) ))
Note this is completely off the top of my head, with no testing. Indentation may be a bit awry because I just typed it into the browser.