check visibility between 2 shapes

Discussion in 'Cadence' started by Marcel Preda, Jun 26, 2009.

  1. Marcel Preda

    Marcel Preda Guest

    Hi all,

    I want to check the visibility between two shapes (usually are
    polygons) on a flatten layout.

    What's the idea:
    - I have 2 shapes (s1, s2)
    - I have obstacles, let's suppose that they are all the shapes on
    layerX
    - I want to check if it's possible the draw at least one straight line
    from s1 to s2, without intersecting shapes from layerX.

    The line direction could be anynot, not only orthogonal.

    Does exists such a function on Cadence ?


    I have a solution: building smal traingle from a shape to the other
    one and to do a LayerAndNot between those small triangles and LayerX
    (obstacles), after that check the number of resulted shapes.
    It works but is extremely slowly: it creates and deletes a lot of
    shapes, it spends a lot of time at dbDeleteObject.
    Is there some better approach ?


    Best Regards,
    Marcel
     
    Marcel Preda, Jun 26, 2009
    #1
  2. Marcel Preda

    Chuck King Guest

    Marcel,

    If you have VXL Turbo you already have a set of tools that will do
    so. Otherwise, it is a multiple step process with some fairly slow
    dbOverlap type commands, For example take any point on one geometry
    then compare that against all points on the other geometry to find the
    Farest Point. Create a BBOX using those points and look inside to see
    if any objects exists. Then you need to sort out what you need.

    Chuck King
     
    Chuck King, Jul 1, 2009
    #2
  3. Marcel Preda

    Marcel Preda Guest

    Hi Chuck,

    Thanks for reply.

    I do not have VXL Turbo.
    At this moment I have a solution which is using dbProduceOverlap(),
    and dbLayerAndNot().
    Very similar with what you said.
    Unfortunately it is extremely slow.

    I'm thinking to implemet it in some other language (perl, or even C),
    and using IPC every time I need to do such visibility check to pass
    the the external process the parameters:
    - shapes s1, s2 that have to be checked
    - obstacles shapes (I need to pass a list with only the segments of
    the polygons)
    the external process will do the job and will respond with TRUE or
    FALSE


    BR,
    Marcel


    BR,
    Marcel
     
    Marcel Preda, Jul 2, 2009
    #3
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.