Home > Community > Forums > PCB SKILL > How to capture minimum spacing?

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 How to capture minimum spacing? 

Last post Wed, Oct 31 2012 9:09 AM by Helen. 2 replies.
Started by dgstan 05 Sep 2012 11:51 AM. Topic has 2 replies and 1116 views
Page 1 of 1 (3 items)
Sort Posts:
  • Wed, Sep 5 2012 11:51 AM

    • dgstan
    • Not Ranked
    • Joined on Thu, Jan 8 2009
    • Posts 9
    • Points 150
    How to capture minimum spacing? Reply

    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 

    • Post Points: 20
  • Wed, Sep 5 2012 1:30 PM

    • eDave
    • Top 10 Contributor
    • Joined on Sun, Jul 13 2008
    • Christchurch, 00-NZ
    • Posts 744
    • Points 16,130
    Re: How to capture minimum spacing? Reply

    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 

    Dave Elder, Tait Communications
    • Post Points: 20
  • Wed, Oct 31 2012 9:09 AM

    • Helen
    • Top 500 Contributor
    • Joined on Wed, Jul 23 2008
    • Posts 17
    • Points 165
    Re: How to capture minimum spacing? Reply

    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
    ;================================================

    • Post Points: 5
Page 1 of 1 (3 items)
Sort Posts:
Started by dgstan at 05 Sep 2012 11:51 AM. Topic has 2 replies.