• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Allegro X PCB Editor
  3. How to capture minimum spacing?

Stats

  • Replies 2
  • Subscribers 159
  • Views 13524
  • Members are here 0
More Content

How to capture minimum spacing?

dgstan
dgstan over 13 years ago

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,

Douglas Stanley 

  • Sign in to reply
  • Cancel
  • eDave
    eDave over 13 years ago

    Hi Douglas,

    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.

    Cheers, Dave 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Helen
    Helen over 12 years ago

    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 nets
    net_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 Csets
    scset_list = axlCnsList('spacing)
    scset=car(scset_list)
    layer_list = axlGetParam("paramLayerGroup:etch")->groupMembers
    layer = 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

    axlClearSelSet()
    );end defun
    ;================================================

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Cadence Guidelines

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information