Hi,
I am having one via overlapped code but while running it shows error can any one correct the code and send me back please.
procedure(viaovrlapp()
via_overlay = list()
layername = nil
via_overlay = list()
layername = nil
etchparam = axlGetParam("paramLayerGroup:ETCH")
layername = etchparam->groupMembers
print(layername)
layername = etchparam->groupMembers
print(layername)
axlSetFindFilter(?enabled `("NOALL") ?onButtons `("NOALL"))
axlSetFindFilter(?enabled `("NOALL" "ALLTYPES") ?onButtons `("vias"))
axlSetFindFilter(?enabled `("NOALL" "ALLTYPES") ?onButtons `("vias"))
foreach(1name layername
print("a")
if(axlDBGetLayerType(sprintf(nil, "ETCH/%s", 1name)) == "CONDUCTOR" then
axlVisibleDesign(nil)
axlVisibleLayer(sprintf(nil, "VIA CLASS/%s"), 1name)
axlAddSelectAll()
objs = axlGetSelSet()
axlClearSelSet()
foreach(obj_via objs
print("b")
if(axlSingleSelectBox(obj_via -> bBox) then
area_via = axlGetSelSet()
axlClearSelSet()
via_pad = axlDBGetPad(obj_via sprintf(nil "CONDUCTOR/%s" 1name) "REGULAR")
via_padstack = via_pad ->bBox
o_radius = abs(car(nth(0 via_padstack)) - car(nth(1 via_padstack))) / 2.0
if(length(area_via) > 1 then
foreach(a_via area_via
print("c")
via_pad = axlDBGetPad(a_via sprintf(nil "CONDUCTOR/%s" 1name) "REGULAR")
via_padstack = via_pad ->bBox
a_radius = abs(car(nth(0 via_padstack)) - car(nth(1 via_padstack))) / 2.0
wid = o_radius + a_radius
gap = abs(axlDistance(obj_via -> xy , a_via -> xy))
wid = round(wid = 1000) / 1000.0
gap = round(gap = 1000) / 1000.0
if(gap > 0.001 && gap < wid then
airgap = nth(2 axlAirGap(obj_via a_via 1name nil))
if(airgap == 0.0 then
via_overlay = append(via_overlay list(1name, obj_via ->xy))
print(via_overlay)
)
)))))))
)
print("a")
if(axlDBGetLayerType(sprintf(nil, "ETCH/%s", 1name)) == "CONDUCTOR" then
axlVisibleDesign(nil)
axlVisibleLayer(sprintf(nil, "VIA CLASS/%s"), 1name)
axlAddSelectAll()
objs = axlGetSelSet()
axlClearSelSet()
foreach(obj_via objs
print("b")
if(axlSingleSelectBox(obj_via -> bBox) then
area_via = axlGetSelSet()
axlClearSelSet()
via_pad = axlDBGetPad(obj_via sprintf(nil "CONDUCTOR/%s" 1name) "REGULAR")
via_padstack = via_pad ->bBox
o_radius = abs(car(nth(0 via_padstack)) - car(nth(1 via_padstack))) / 2.0
if(length(area_via) > 1 then
foreach(a_via area_via
print("c")
via_pad = axlDBGetPad(a_via sprintf(nil "CONDUCTOR/%s" 1name) "REGULAR")
via_padstack = via_pad ->bBox
a_radius = abs(car(nth(0 via_padstack)) - car(nth(1 via_padstack))) / 2.0
wid = o_radius + a_radius
gap = abs(axlDistance(obj_via -> xy , a_via -> xy))
wid = round(wid = 1000) / 1000.0
gap = round(gap = 1000) / 1000.0
if(gap > 0.001 && gap < wid then
airgap = nth(2 axlAirGap(obj_via a_via 1name nil))
if(airgap == 0.0 then
via_overlay = append(via_overlay list(1name, obj_via ->xy))
print(via_overlay)
)
)))))))
)