• 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. Ideas/Help Needed for Padstack Edit

Stats

  • Replies 5
  • Subscribers 160
  • Views 3562
  • Members are here 0
More Content

Ideas/Help Needed for Padstack Edit

archive
archive over 14 years ago
Hi Guys I give up, I tried for a while and now I don’t know what to do This is what I want to do in Skill 1.  Load a Padstack 2.  Edit the pad-definition on only selected layers, either make them null or assign a new value I tried the following methods 

Method 1:

 a.  Get All padstacks b.  Foreach padstack and foreach pad-definition make a copy of pad definition a.  Using make_axlPadStackPadb.  Modify the values if neededc.  Create a New Padstack  Replace the old padstack with new padstack

                Problem:

a.  Not able to create the pad-definition structure, error prone 

Method 2:

a.  Foreach padstack I use axlDBCopyPadstack and trim it by specifying the start/end layerp1=axlLoadPadstack("CIR60D40")p2 = axlDBCopyPadstack(p1, '("CONDUCTOR/RDL_SEC" "CONDUCTOR/TOP_PRM"), t)axlPadstackToDisk(p2->name)

Problem:

a.  This doesn’t seem to work, the resulting padstack still has all the pad definition on the other layersb.  Trimming doesn’t seems to work 

Method 3:

a.  Use Allegro Scripting all the way

Problem:

a.  Error Prone and there is no way to control occasional out of blue pop-ups  I am out of ideas and would appreciate any kind of help on this issue  Is there is any way I can load a padstack and go to a certain padstack definition on a given layer and change its vaule

regards

Vramanan

  • Sign in to reply
  • Cancel
Parents
  • archive
    archive over 14 years ago

    Hi Guys

    I was able to pull it off, here are my couple of my observation and hope it helps people who want's to go on this route

    First and foremost, understand and be aware of the the field mappings, for example

    if you are deriving values from an pad-def (padstackdbid->pads->pad) using make_axlPadstackPad then

    this is the mappig you have to follow 

     

    dbid->pads->pad

    make_axlPadstackPad

    notes

    ?figure

     

     

    ?figureName

    ?figure

    Rectangle, shape, square*

    ?flash

    ?flash

     

    ?layer

    ?layer

     

    ?objType

     

     

    ?offset

    ?offset

     

    ?parent

     

     

    ?type

    ?type*

    Make ANTI to ANTIPAD

    ?bBox

    ?figureSize

    You have to derive the figure width and height

    ?readOnly

     

     

    ?name

     

     

    Make sure that you provide proper checks for figure names like rectangle, square, shape

     for square you should only one value for the figuresize

     similarly for make_axlPadStackDrill the arrival figureSize has to be correct

    there is no way to grab the drill tolerance, you have to find the plating status of the drill using the axl function axlDBGetDrillPlating

    plus if you are touching all the padstacks then I found out that axlReplacePadstack would take a tremendous amount of time since I am passing the dbids of all the pins for a particular padstack

    for a big design it woudl take hours

    my way of getting around it is I created the new instances of the padstacks i am modifying and use the allegro's refresh padstack list option

     for a test case i was able to do things in 90 secs from 5 minutes

     Hope this is helpful for people who is messing around with padstacks :-)

    regards

    Vramanan

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • archive
    archive over 14 years ago

    Hi Guys

    I was able to pull it off, here are my couple of my observation and hope it helps people who want's to go on this route

    First and foremost, understand and be aware of the the field mappings, for example

    if you are deriving values from an pad-def (padstackdbid->pads->pad) using make_axlPadstackPad then

    this is the mappig you have to follow 

     

    dbid->pads->pad

    make_axlPadstackPad

    notes

    ?figure

     

     

    ?figureName

    ?figure

    Rectangle, shape, square*

    ?flash

    ?flash

     

    ?layer

    ?layer

     

    ?objType

     

     

    ?offset

    ?offset

     

    ?parent

     

     

    ?type

    ?type*

    Make ANTI to ANTIPAD

    ?bBox

    ?figureSize

    You have to derive the figure width and height

    ?readOnly

     

     

    ?name

     

     

    Make sure that you provide proper checks for figure names like rectangle, square, shape

     for square you should only one value for the figuresize

     similarly for make_axlPadStackDrill the arrival figureSize has to be correct

    there is no way to grab the drill tolerance, you have to find the plating status of the drill using the axl function axlDBGetDrillPlating

    plus if you are touching all the padstacks then I found out that axlReplacePadstack would take a tremendous amount of time since I am passing the dbids of all the pins for a particular padstack

    for a big design it woudl take hours

    my way of getting around it is I created the new instances of the padstacks i am modifying and use the allegro's refresh padstack list option

     for a test case i was able to do things in 90 secs from 5 minutes

     Hope this is helpful for people who is messing around with padstacks :-)

    regards

    Vramanan

     

     

    • 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