I need to find the absolute minimum spacing defined in the Constraint Manager. This includes the CSets and any number manually entered in the CM, Region rules, Class/Class, etc.
I see the function axlCNSGetSpacing will retrieve the values of your various CSets, but smaller numbers can be manually entered (i.e. not defined by a CSet) or set manually under region or class/class rules. Is there a way to derive this rock-bottom spacing value?
I tried to get that info via axlCnsTableSeek, but it doesn't seem to work period.
Thanks in advance,
I achieve this by exporting a tech file, parsing each section (using share\pcb\xml-formats\techfile.dtd) and analysing the results to find the minimum values. I would be interested if you find a more efficient method.
Contact me off line if you want to share code.
I have some primitive code I did in 2008 to find space less then min.
axlCmdRegister("L2L" 'L2L)(defun L2L ()
; find line2line less then 0.075mm;get all netsnet_list = axlSelectByName("NET" "*" t)net = car(net_list)foreach(net net_list L_L = net->prop->"LINE_TO_LINE_SPACING" if(L_L !=nil then value = atof(L_L) if(value < 0.075 then printf("%s %s\t%s\t%s\n" "DRC value is :" L_L " NET:" net->name) ) ));end for each
; for spacing Csetsscset_list = axlCnsList('spacing)scset=car(scset_list)layer_list = axlGetParam("paramLayerGroup:etch")->groupMemberslayer = car(layer_list)foreach(layer layer_list foreach(scset scset_list L_L_set = axlCNSGetSpacing(scset layer 'line_line) if(L_L_set !=nil then if(L_L_set < 0.075 then printf("%s %.3f\t%s\t%s\t%s\n" "DRC value is :" L_L_set "SCSet name:" scset layer) ) ) ) ; end foreach ); end foreach