• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Allegro X PCB Editor
  3. How to code Segment Over Voids

Stats

  • Replies 2
  • Subscribers 159
  • Views 10770
  • Members are here 0
More Content

How to code Segment Over Voids

Laurenchi
Laurenchi over 3 years ago

Hi,

I understand there's build-in function in Display->Segment Over Voids available, but it will process all nets and take a long time to complete, in addition, it can not filter out the voids under BGA, which makes the whole SOV reports is too large and not exactly what I want.

So I tried to write a script to do the same thing, I used the loop to get each bBox of segments of one net, and use axlSetFindFilter and axlSingleSelectBox to collect all shapesegs in the area and filter out the objects which is not in reference plane. However, this script is not accurate enough and take longer time to complete.

Due to the characteristic of bBox, the reports shows all elements in the bBox area which might not really underneath the nets, it's just close to the net. 

For example, the report will include the red circle on the right (keepout) which is not really underneath the net.

  

It also takes longer time to complete than the build-in SOV function when I'd like to process a bunch of net (~100 nets), even will hang forever.

Does anyone have idea to code SOV in another way? Any advice is appreciated.

Thanks in advance.

 

  • Sign in to reply
  • Cancel
  • B Bruekers
    B Bruekers over 3 years ago

    If you only want to select only items underneath the cline seg/cline then you first need to convert it to a polygon. Set the find filter to shapes and pass the clines polygons to axlAddSelectPoly() to do a selection.

    Since you can pass multiple polygons to this selection function it is wise to first merge all clines polygons with axlPolyOperation(  'OR) and do the selection only once.

    Then create a list of polygons of these selected shapes, merge them again with axlPolyOperation(  'OR) . Go over all cline polygons and get the overlap axlPolyOperation(  'AND). The resulting polygon is the actual overlap.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Laurenchi
    Laurenchi over 3 years ago in reply to B Bruekers

    Thank you so much for your reply, it's really helpful!! I will study the method you provided and try to modify my code. :)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Cadence Guidelines

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information