Community will be under system maintenance from July 31, 4PM PDT to Saturday August 1, 4PM PDT.

  • 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 Scripting - Skill
  3. How to use Allegro Skill language to check if the height...

Stats

  • State Suggested Answer
  • Replies 6
  • Answers 2
  • Subscribers 21
  • Views 2944
  • Members are here 0
More Content

How to use Allegro Skill language to check if the height of bottom components are more than 4mm and highlight them

BZ202408076026
BZ202408076026 6 months ago

I am newcomer for Cadence Skill language and I am learning on how to develop programing to check what I want in Cadence Allegro.

Now I want to check if the height of bottom components are more than 4mm and highlight them if existed. But I don't know where to start. Does anybody have the experience to write the Skill?

  • Sign in to reply
  • Cancel

Top Replies

  • Hoangkhoipcb
    Hoangkhoipcb 6 months ago +1 suggested
    Hi BZ, You can refer to the code below. axlCmdRegister ( "find_height_symbol" 'find_height_symbol ) ( defun find_height_symbol ( ) ( let () convert_design_unit = axlMKSConvert ( 4 "MM" car (…
  • JCTEYSSIER0
    JCTEYSSIER0 6 months ago in reply to BZ202408076026 +1 suggested
    The keepout is not to be included in library but in the brd using the components. If component have a correct place boundary defined (with height) then the place keepout is to be defined at pcb (brd…
Parents
  • Hoangkhoipcb
    0 Hoangkhoipcb 6 months ago

    Hi BZ,
    You can refer to the code below.

    axlCmdRegister("find_height_symbol" 'find_height_symbol)
    (defun find_height_symbol ()
        (let ()
            convert_design_unit = axlMKSConvert(4 "MM" car(axlDBGetDesignUnits()))
            foreach(shape axlDBGetShapes("PACKAGE GEOMETRY/PLACE_BOUND_BOTTOM")
                sym = shape->parent
                if(sym != nil then
                    pro = car(setof(e axlDBGetProperties(shape) get_string(car(e)) =="PACKAGE_HEIGHT_MAX"))
                    if(pro != nil then
                        if(atof(cadr(pro)) > convert_design_unit then
                            axlHighlightObject(sym)
                        )
                    ) 
                )
            )
        )
    )

    BR
    HoangKhoi.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Reply
  • Hoangkhoipcb
    0 Hoangkhoipcb 6 months ago

    Hi BZ,
    You can refer to the code below.

    axlCmdRegister("find_height_symbol" 'find_height_symbol)
    (defun find_height_symbol ()
        (let ()
            convert_design_unit = axlMKSConvert(4 "MM" car(axlDBGetDesignUnits()))
            foreach(shape axlDBGetShapes("PACKAGE GEOMETRY/PLACE_BOUND_BOTTOM")
                sym = shape->parent
                if(sym != nil then
                    pro = car(setof(e axlDBGetProperties(shape) get_string(car(e)) =="PACKAGE_HEIGHT_MAX"))
                    if(pro != nil then
                        if(atof(cadr(pro)) > convert_design_unit then
                            axlHighlightObject(sym)
                        )
                    ) 
                )
            )
        )
    )

    BR
    HoangKhoi.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Children
  • BZ202408076026
    0 BZ202408076026 6 months ago in reply to Hoangkhoipcb

    Thank you Hoanghoi!

    I will verify if the code is workable in Cadence. 

    • 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.

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

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