• 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. Check no place bound in component

Stats

  • State Suggested Answer
  • Replies 7
  • Answers 1
  • Subscribers 159
  • Views 6406
  • Members are here 0
More Content

Check no place bound in component

JeromePui
JeromePui over 1 year ago

Hi

I'd like to check whether all the components of a brd have their placebound or whether some have been deleted. Is there a skill script for this?

  • Sign in to reply
  • Cancel
Parents
  • eDave
    0 eDave over 1 year ago

    This is the wrong forum for this question but this should help you:

    setof(sym, axlDBGetDesign() ->symbols, !exists(obj, sym ->children, index(obj ->layer, "PACKAGE GEOMETRY/PLACE_BOUND_"))) ~>name

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Reply
  • eDave
    0 eDave over 1 year ago

    This is the wrong forum for this question but this should help you:

    setof(sym, axlDBGetDesign() ->symbols, !exists(obj, sym ->children, index(obj ->layer, "PACKAGE GEOMETRY/PLACE_BOUND_"))) ~>name

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Children
  • JeromePui
    0 JeromePui over 1 year ago in reply to eDave

    it works very well thank you very much.

    Is it possible to print the result by column, currently the result is (for example) : ("SMC0402" "CONN24" "SMR0603")

    and i would like 

    SMC0402

    CONN24

    SMR0603

    i use a report (p) and the command fprintf(p,....)

    thank you so much

    Jérôme

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • eDave
    0 eDave over 1 year ago in reply to JeromePui

    symNames = setof(sym, axlDBGetDesign() ->symbols, !exists(obj, sym ->children, index(obj ->layer, "PACKAGE GEOMETRY/PLACE_BOUND_"))) ~>name
    outPort = axlDMOpenFile("MISC", "symbol.rpt", "w")
    fprintf(outPort, buildString(symNames, "\n"))
    axlDMClose(outPort)

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • JeromePui
    0 JeromePui over 1 year ago in reply to eDave

    thank you very much for your help. I have another question, is it possible to get dbid of symbols but only package symbols and exclude mechanical or format symbols? 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • eDave
    0 eDave over 1 year ago in reply to JeromePui

    Sure. Try:

    symNames = setof(sym, axlDBGetDesign() ->symbols, sym ->type == "PACKAGE" && !exists(obj, sym ->children, index(obj ->layer, "PACKAGE GEOMETRY/PLACE_BOUND_"))) ~>name
    outPort = axlDMOpenFile("MISC", "symbol.rpt", "w")
    fprintf(outPort, buildString(symNames, "\n"))
    axlDMClose(outPort)

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • JeromePui
    0 JeromePui over 1 year ago in reply to eDave

    Hi Dave, I'd like to improve the script by checking whether, for each placebound associated with a package symbol, the height of the component is correctly entered. I don't want to check if the value is correct but just to know if the height is missing and, if so, for which component.

    I try with axlDBGetShapes("PACKAGE GEOMETRY/PLACE_BOUND_TOP") but i don't know if it's possible to extract PACKAGE_HEIGHT_MAX + refdes of shape properties with the dbid?

    i use this script:

    foreach(side, '("TOP", "BOTTOM")
    l_shapes = axlDBGetShapes(strcat("PACKAGE GEOMETRY/PLACE_BOUND_", side))

    foreach(shape l_shapes
    height_max = shape->prop->PACKAGE_HEIGHT_MAX
    printf("%L\n", height_max)
    );end foreach shape
    )

    is it the good function?

    thank you very much

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • 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