• 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. Finding if a Cline is fully inside a Polygon(shape)

Stats

  • Replies 5
  • Subscribers 159
  • Views 2657
  • Members are here 0
More Content

Finding if a Cline is fully inside a Polygon(shape)

vramananx
vramananx over 11 years ago

Hi Guys

I have an unique problem to solve

 Imagine that your BGA ball has multiple dogbones connected to vias (through clines) and a bigger shape of same net overlapes it

 w.r.to Allegro this is fine and no DRC or warning since they are same-net, I want to delete/find only those clines which are completly inside the bBox of the larger shape

 I already have the  logic to narrow down the clines where both the startEnd of clinesegs are inside the bBox of a shape dbid

(I am using axlGeoPointInShape)

and a way to isolate those clinesegs where atleast one point is in the bBox

But check the following link 

 http://www.codeproject.com/Articles/371959/A-brute-force-approach-to-check-if-a-line-segment

 There are situations where the 2 points of a clineseg can just touch the bBox of the shape and it will be flagged as inside the bBox by my routine

Any help or thoughts would be awesome

Here is the procdure I wrote

procedure( _ClInorOutbBox(_sHp _mOde)
 prog((_clineList _NotInBox)
 _NotInBox = list()
 axlClearSelSet()
 axlSetFindFilter(?enabled list("noall" "CLINESEGS"), ?onButtons list("noall" "CLINESEGS"))
 
 _clineList = setof(x axlGetSelSet(axlAddSelectBox(_sHp->bBox)) x->net->name == _sHp->net->name)
 axlClearSelSet()
 case(_mOde
  ("OUT"
 _NotInBox = setof(y x
  and(axlGeoPointInShape(xCoord(xCoord(y->startEnd)):yCoord(xCoord(y->startEnd)) _sHp),
   axlGeoPointInShape(xCoord(yCoord(y->startEnd)):yCoord(yCoord(y->startEnd)) _sHp)) == nil
        )
   return(_NotInBox)
  );Outside
  ("IN"
 _NotInBox = setof(y x
  and(axlGeoPointInShape(xCoord(xCoord(y->startEnd)):yCoord(xCoord(y->startEnd)) _sHp),
   axlGeoPointInShape(xCoord(yCoord(y->startEnd)):yCoord(yCoord(y->startEnd)) _sHp)) == t
        )
   return(_NotInBox)
  );Inside 
  );case
 
 );prog
);procedure

  • Sign in to reply
  • Cancel
Parents
  • eDave
    eDave over 11 years ago
    OK. Good luck. Let us know how you get on.
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • eDave
    eDave over 11 years ago
    OK. Good luck. Let us know how you get on.
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
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