• 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 Extract Through Holes and Slots Seperately

Stats

  • Replies 9
  • Subscribers 160
  • Views 15915
  • Members are here 0
More Content

How to Extract Through Holes and Slots Seperately

ahood
ahood over 14 years ago

Hi

I am trying to extract a seperate count for Through Holes with Hole Type set as: Circle_Drill as opposed to those set as: Oval_Slot or Rectangle_Slot. Can anyone assist as I am not sure what the command to pull the Hole Type out is?

 Below is a section from my skill script that just selects all Through Hole Pads

 foreach(pin pins_list
 if(pin->isThrough == t then
  pin_xy = pin->xy
  padstack = car(pin->pads)->parent
  drill = padstack->drillDiameter
  pin_name = padstack->name
  plating = axlDBGetDrillPlating(pin_name)
  if(drill > 0 then
   if(rexMatchp("NON PLATED" plating) == nil then
    if(member(drill pdrill_list) == nil then
     pdrill_list = cons(drill pdrill_list)
    )
   else
    if(member(drill npdrill_list) == nil then
     npdrill_list = cons(drill npdrill_list)
    )
   )
   pin_count++

 

Regards

 

ahood

  • Sign in to reply
  • Cancel
Parents
  • Nagaraj Shanmu
    Nagaraj Shanmu over 14 years ago

    I did  a similar code for extracting the padstack info and below is the part of the code which u use for extracting the padstack and drill info

     

     

    axlPurgePadstacks('padstacks nil)

                axlPurgePadstacks('via nil)

                axlSetFindFilter(?enabled list("noall" "pins") ?onButtons list("noall" "pins"))

                pin_dbids = axlGetSelSet(axlAddSelectAll())

                axlClearSelSet(); clear all selection

                throu_pin_dbids = smd_pin_dbids =  list()

                foreach(pin_dbid pin_dbids

                if(pin_dbid->isThrough

               

                then

                throu_pin_dbids = cons(pin_dbid throu_pin_dbids)

                else

                smd_pin_dbids = cons(pin_dbid smd_pin_dbids)

                ); end for each pin type

     

    drilloutfile = outfile("drillchart.txt" "a")

     

    foreach(throu_pin_dbid throu_pin_dbids

                throu_pad_name = throu_pin_dbid->definition->name

                drill_size = throu_pin_dbid->definition->drillDiameter

                drill_type = throu_pin_dbid->definition->holeType

                plating = axlDBGetDrillPlating(throu_pad_name)

               

                drillFigureHeight = throu_pin_dbid->definition->drillFigureHeight

                drill_char = throu_pin_dbid->definition->drillChar

                drillFigureWidth = throu_pin_dbid->definition->drillFigureWidth

    drillFigureName = throu_pin_dbid->definition->drillFigureName

    fprintf(drilloutfile "%L,%L,%L,%L,%L,%L,%L,%L\n" throu_pad_name drill_size drill_type plating drillFigureHeight drill_char drillFigureWidth drillFigureName)

     

    ); end for each padstack information

     

     

    This throu_pin_dbid->definition->holeType  works for me to get the hole type.

     

    Good luck.

     

    Thanks,

    Nagaraj.



    • ATT00001.gif
    • View
    • Hide
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Nagaraj Shanmu
    Nagaraj Shanmu over 14 years ago

    I did  a similar code for extracting the padstack info and below is the part of the code which u use for extracting the padstack and drill info

     

     

    axlPurgePadstacks('padstacks nil)

                axlPurgePadstacks('via nil)

                axlSetFindFilter(?enabled list("noall" "pins") ?onButtons list("noall" "pins"))

                pin_dbids = axlGetSelSet(axlAddSelectAll())

                axlClearSelSet(); clear all selection

                throu_pin_dbids = smd_pin_dbids =  list()

                foreach(pin_dbid pin_dbids

                if(pin_dbid->isThrough

               

                then

                throu_pin_dbids = cons(pin_dbid throu_pin_dbids)

                else

                smd_pin_dbids = cons(pin_dbid smd_pin_dbids)

                ); end for each pin type

     

    drilloutfile = outfile("drillchart.txt" "a")

     

    foreach(throu_pin_dbid throu_pin_dbids

                throu_pad_name = throu_pin_dbid->definition->name

                drill_size = throu_pin_dbid->definition->drillDiameter

                drill_type = throu_pin_dbid->definition->holeType

                plating = axlDBGetDrillPlating(throu_pad_name)

               

                drillFigureHeight = throu_pin_dbid->definition->drillFigureHeight

                drill_char = throu_pin_dbid->definition->drillChar

                drillFigureWidth = throu_pin_dbid->definition->drillFigureWidth

    drillFigureName = throu_pin_dbid->definition->drillFigureName

    fprintf(drilloutfile "%L,%L,%L,%L,%L,%L,%L,%L\n" throu_pad_name drill_size drill_type plating drillFigureHeight drill_char drillFigureWidth drillFigureName)

     

    ); end for each padstack information

     

     

    This throu_pin_dbid->definition->holeType  works for me to get the hole type.

     

    Good luck.

     

    Thanks,

    Nagaraj.



    • ATT00001.gif
    • View
    • Hide
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
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