I am trying to place copies of an instance/object ( say a simple via ) with 'x' distance separation in X-direction.
Is there any in-built feature already available in IC5141 ?
Otherwise, is there any solution ( SKILL script) already posted in the forum ? I searched but couldn't find so.
The code needs three functions:
1) Find the cordianate of the OBJECT/INSTANCE ( this I have already found in the Forum)
2) Copy the object. For this what is the SKILL function ?
3) Paste the desired distance separation ( For palcing wht is the simple SKILL function)
Couls anybody please tell regarding this.
I didn't search to see if there was any code that does what you want, but it's trivial to write.
If you have the pitch in a variable dx, and the number of copies in numX, and the instance in instId, and cellView in cvId :
for(x 1 numX dbCopyFig(instId cvId list(x*dx:0 "R0" 1)))
So not hard...
Thanks a lot.
The dbCopyFig(), copy the figure at the relative offset with respect to the Lower Left corner of the bBox of the original object.
Is it possible to place/copy the object to a given arbitrary coordinate.
Also is it possible to make the relative movemt with respect to some other coordinate of the bBox.
Of courseone can write a script and do the manipulation to achieve the same. However I believe there may be way to do it by a single command.
To copy to an absolute coordinate, you need to produce a concatenated transformation which moves back to the origin, then to the location you want. So for example, if you want to copy the lowerLeft of your object to a location xy, you'd do:
dbCopyFig(instId cvId dbConcatTransform(list(-xCoord(lowerLeft(instId~>bBox)):-yCoord(lowerLeft(instId~>bBox)) "R0" 1) list(xy "R0" 1)))
I don't really understand your second question, since a relative movement doesn't matter which coordinate it is with respect to - all coordinates in the bBox will move by the same relative amount. Maybe you're talking about an absolute move - in which case something like my suggestion above would make sense - you just compute the first transformation using a different coordinate on the shape (such as the upperRight rather than the lowerLeft).
Yes, what you have mentioned, I want exactly that.
One can copy and place by using dbCopyFig(),
I actullay want something as follow:-
I have a PATH running in MEx
I want to run PATHs of different metal undeneath/over it. The PATH may be of a) same width or b) different width
For Same width:-
newPath=dbCopyFig(obj obj->cellView list(0:0 "R0" ))
It works fine.
For different widh:-
I think oneway is to change the bBox property of the copied PATH.
With this line of thought I did as follows:-
bBoxNew=list(a:b c:d) % please note a,b,c,d are floating point desired co-ordinates
However the above DID NOT WORK.
Could you please tell what is the issue.
You cannot change the bBox of a path (or pathSeg) as it is a derived parameter. You can change the ~>points to alter the points in the path, or the ~>width to change the width.