dbGetNeighborList arguments

S

SS

Guest
Syntax for dbGetNeighborList is
dbGetNeighborList( cv bbox t_direction [t_layer t_purpose] depth)

What should I do if I dont want to specify the depth but not the lpp
??

if I supply nil then it returns an error but if I specify the depth
without the lpp it returns nil.

Could anyone tell me what if I am missing something.


thanks,
Sriram
 
there are several curious things about the get-neighbor
functions. for example, if you use dbGetNeighbor to find the closest
object on, say, metal1. then you want to find the next closest,
ignoring the one returned the first time.
how would you do it? One way might be to find the distance ( i think
that is actually in the return value of dbGetNeighbor) then expand the
bbox by 1 grid point more than that distance and call dbGetNeighbor a
second time.
In that case you'll miss all the items which are the same distance as
the first item.

does anyone know how to use dbGetNeighbor to find the second, third,
4th etc closes objects?
 
Jimka,
I am sorting the list returned by dbGetNeighborList. However
it does'nt work without lpp for multiple levels of hierarchy. I have to
explicitly specify the the optional argument lpp.

Andrew,
Is there a way to get around this problem.


thanks,
Sriram
 
Jimka,
I am sorting the list returned by dbGetNeighborList to find
the list of objects
However it looks like there is no way to find shapes in all
levels without giving the lpp.
Question to Andrew ??
Andrew Is there a way to do it ??

Thanks,
Sriram


Jimka wrote:
there are several curious things about the get-neighbor
functions. for example, if you use dbGetNeighbor to find the closest
object on, say, metal1. then you want to find the next closest,
ignoring the one returned the first time.
how would you do it? One way might be to find the distance ( i think
that is actually in the return value of dbGetNeighbor) then expand the
bbox by 1 grid point more than that distance and call dbGetNeighbor a
second time.
In that case you'll miss all the items which are the same distance as
the first item.

does anyone know how to use dbGetNeighbor to find the second, third,
4th etc closes objects?
 
please remind me what dbGetNeighborList returns? honestly, i forget
without having the documentation at hand.
 
dbGetNeighborlist returns a list (nested list) of neighboring objects
and the distance from the reference bbox.


Jimka wrote:
please remind me what dbGetNeighborList returns? honestly, i forget
without having the documentation at hand.
 
SS wrote:
dbGetNeighborlist returns a list (nested list) of neighboring objects
and the distance from the reference bbox.
Jimka asked:
please remind me what dbGetNeighborList returns?
For the record, both are indeed public documented supported functions
which have been active since at least the Virtuoso IC434 days.

dbGetNeighborList( d_cellView l_area t_direction [ ( t_layer [
t_purpose ] ) ] [ lx_depth ] )
returns => ( l_instlist )
Lists neighboring objects in the specified direction of the given
layer-purpose pair.

dbGetNeighbor( d_cellViewId l_bBox t_direction [ ( t_layer [ t_purpose
] ) ] [ x_depth ] )
returns => d_figId / nil
Returns the closest neighboring object in the specified direction of
the given layer-purpose pair.

More detailed documentation is, of course, available in CDSDoc &
Sourcelink.

Hope this helps,
John Gianni

Nothing stated by me here on the USENET is or was ever sanctioned prior
by my employer.
 
hi john, the dbGetNeighbor function does not return a dbId. try it
out.
it returns a heterogeneous list which describes several things.

i tried to use dbGetNeighborList once, and gave up because i
could not figure it out.

The general problem is that if you used dbGetOverlaps you get
descriptors
for objects within a bbox. but you are not guaranteed anything about
how
they are sorted. You normally have to iterate over all of them and
grab
the one or ones you want. dbGetOverlaps is very fast, but creates lots
of garbage for gc to collect. dbGetNeighbor and dbGetNeighborList
functions
imply that they will with the the closes object, but what if you
examine the object
returned and then need the next closest? it is not clear how to do
that.

What i'd like is a form of dbGetOverlaps (and all the related
functions) which take
a predicate (filter) function. that way you could pass the predicate
to dbGetNeighbor and pass
a predicate which filters out all the uninteresting objects. that way
you'd have a
dbGetInterestingNeighhbor function.

How can you use the dbGetNeighbor/dbGetOverlaps.... function to find
the closest path on one of the metal layers (M1, M2, M3, M4 or M5)?
 
JImka,
dbGetNeighborlist returns an hetrogenous list. Each element
of the list is a list of
the distance between the selected bbox, the objid (if hierarchical then
list hierarchical objid list) and the third element is a list of
displacement in x and y direction either of which is always zero.
sriram


Jimka wrote:
hi john, the dbGetNeighbor function does not return a dbId. try it
out.
it returns a heterogeneous list which describes several things.

i tried to use dbGetNeighborList once, and gave up because i
could not figure it out.

The general problem is that if you used dbGetOverlaps you get
descriptors
for objects within a bbox. but you are not guaranteed anything about
how
they are sorted. You normally have to iterate over all of them and
grab
the one or ones you want. dbGetOverlaps is very fast, but creates lots
of garbage for gc to collect. dbGetNeighbor and dbGetNeighborList
functions
imply that they will with the the closes object, but what if you
examine the object
returned and then need the next closest? it is not clear how to do
that.

What i'd like is a form of dbGetOverlaps (and all the related
functions) which take
a predicate (filter) function. that way you could pass the predicate
to dbGetNeighbor and pass
a predicate which filters out all the uninteresting objects. that way
you'd have a
dbGetInterestingNeighhbor function.

How can you use the dbGetNeighbor/dbGetOverlaps.... function to find
the closest path on one of the metal layers (M1, M2, M3, M4 or M5)?
 
On 5 Jan 2006 18:01:14 -0800, "SS" <ssriramiyer@gmail.com> wrote:

Jimka,
I am sorting the list returned by dbGetNeighborList. However
it does'nt work without lpp for multiple levels of hierarchy. I have to
explicitly specify the the optional argument lpp.

Andrew,
Is there a way to get around this problem.


thanks,
Sriram
No. Contact customer support. I think this could be enhanced to allow t
as the layer argument (like dbGetOverlaps), which would allow this.

Andrew.
 

Welcome to EDABoard.com

Sponsor

Back
Top