If on the same net DRC, due to the stack via design. Alot of DRC will apply also.
Is there a way to identify this issue? Pls advice.
Wouldn't it be easyer to setup drc rules to accept stacked via 's ?
My problem is how to detect 2 same via overlap each other but has slight different xy position at same layer?
These 2 vias have same net. So, if I on the same net drc, I will get alot of drcs.
Here's some code for you to try:
defun( getDuplicateHoles (locs @key blindBuried, (tol axlMKSConvert(0.2 "mm"))) let((loc, dupes) while(locs loc = car(locs), locs = cdr(locs) if(blindBuried then when(setof(pt, locs, and(cadr(pt) == cadr(loc), samePoint(car(pt), car(loc), tol))) dupes = cons(loc, dupes) ) else when(setof(pt, locs, samePoint(pt, loc, tol)), dupes = cons(loc, dupes)) ) ) dupes))
defun( same (x1, x2 @optional tolp, tolm) unless(tolp, tolp = expt(10, -2 - cadr(axlDBGetDesignUnits()))) cond( (!x1 && !x2, t); Both are nil (!x1 || !x2, nil) ; One, and only one, is nil (!tolm && abs(x1 - x2) > tolp, nil) (tolm && x1 - x2 > tolp, nil) (tolm && x2 - x1 > tolm, nil) (t, t) ))
defun( samePoint (pt1, pt2, @optional tolp, tolm) unless(tolp, tolp = expt(10, -2 - cadr(axlDBGetDesignUnits()))) and(same(car(pt1), car(pt2), tolp, tolm), same(cadr(pt1), cadr(pt2), tolp, tolm)))
This is exactly the type of issue that I am trying to address - duplicate drills with the exact same xy and touching drills and then create a report file for them. Fab shops desire the report file so they can modify the NC drill file so not to make double or more hits on a single hole. Is it possible for you to expand on your code slightly to create a simple report file? The duplicate drills are also counted in the drill legend, but that is another issue.