Quantcast
Channel: Cadence Community
Viewing all articles
Browse latest Browse all 3331

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

$
0
0

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


Viewing all articles
Browse latest Browse all 3331

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>