I am very new to this community. I am trying to
implement creating via automatically using skill code. Thanks for all
the information that you provided. I was able to place the via wher I
want using skill code. However, in terms of the VIA params, I would like
to create a via with the same parameters as what "auto" option provided
on the "Via form". The auto via will cover all overlap area and extend
over a little bit. Also, it won't violate the DRC rule, etc. I tried to
use lxComputeViaParams for the viaDef that from tech file, but it didn't
give much info. Is there any SKILL function to do that?
tf=techGetTechFile(cv) viaDef=techFindViaDefByName(tf viaDefName) via_center_point_x=(car(viabox_ll)+car(viabox_ur))/2 via_center_point_y=(cadr(viabox_ll)+cadr(viabox_ur))/2 via_center_point=list(via_center_point_x via_center_point_y)
viaParams=list(list("cutRows" evalstring(cutRows)) list("cutColumns" evalstring(cutColumns)) )
;viaParams=append(viaParams lxComputeViaParams(viaId cv viaParams)) existing_via=setof(z dbGetTrueOverlaps(cv list(viabox_ll viabox_ur)) rexMatchp("Via" z~>objType)==t) if(existing_via then printf("There is an existing VIA. No Via will be created.\n") else if(viaDef via0=dbCreateVia(cv viaDef via_center_point "R90" viaParams)
lxComputeViaParams is the right function to use, although in your commented out code, you appear to have omitted the constraint group name.