• 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 check BGA minimum pitch using Allegro Skill lang...

Stats

  • State Not Answered
  • Replies 5
  • Subscribers 20
  • Views 548
  • Members are here 0
More Content

How to check BGA minimum pitch using Allegro Skill language

BZ202408076026
BZ202408076026 20 days ago

I want to check BGA minimum pitch. If BGA pitch is less than 0.5mm, need to highlight these BGA in PCB layout. Does anyone have experience to write script to do the check?

  • Sign in to reply
  • Cancel

Top Replies

  • SG20260713408
    SG20260713408 20 days ago +1
    안녕하세요.. 아래 코드가 도움이 되시길 바랍니다. 1. BGA 핀 PITCH가 정사각형 모양일 경우만 해당됩니다. 2. 정사각형이므로 핀 2개만 체크하여 결과를 출력합니다. 3. 코드입니다. Hoangkhoipcb 님의 코드를 일부 인용했습니다. 4. 명령어는 min_pitch_bga 이며 체크할 pitch값을 수정하고 싶으시면 min_pitch_bga…
Parents
  • Hoangkhoipcb
    0 Hoangkhoipcb 20 days ago
    Hi BZ202408076026,

    I hope this will be helpful 
    axlCmdRegister("min_pitch_bga" 'min_pitch_bga )
    defun( min_pitch_bga ()
        let((tmp_list)
            pins = car(setof(e axlDBGetDesign()->symbols e->refdes =="BGA"))->pins
            if(length(pins) > 0 then
                foreach(pin pins
                    tmp = nil
                    foreach(item setof(e pins e != pin) push(list( axlDistance(pin->xy item->xy) item) tmp))
                    push(append1( car(sortcar(tmp 'lessp)) pin) tmp_list)
                )
                tmp_list = sortcar(tmp_list 'lessp)
                printf("Min pitch: %.3f\n " caar(tmp_list))
                axlHighlightObject(cdr(car(tmp_list)))
            )
        )
    )
    BR

    HoangKhoi
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • Hoangkhoipcb
    0 Hoangkhoipcb 20 days ago
    Hi BZ202408076026,

    I hope this will be helpful 
    axlCmdRegister("min_pitch_bga" 'min_pitch_bga )
    defun( min_pitch_bga ()
        let((tmp_list)
            pins = car(setof(e axlDBGetDesign()->symbols e->refdes =="BGA"))->pins
            if(length(pins) > 0 then
                foreach(pin pins
                    tmp = nil
                    foreach(item setof(e pins e != pin) push(list( axlDistance(pin->xy item->xy) item) tmp))
                    push(append1( car(sortcar(tmp 'lessp)) pin) tmp_list)
                )
                tmp_list = sortcar(tmp_list 'lessp)
                printf("Min pitch: %.3f\n " caar(tmp_list))
                axlHighlightObject(cdr(car(tmp_list)))
            )
        )
    )
    BR

    HoangKhoi
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
  • BZ202408076026
    0 BZ202408076026 19 days ago in reply to Hoangkhoipcb

    Hi Hoangkhoipcb 

    Thank you for your quick answer! Our BGA property is stored in symbols->DFA_DEV_CLASS.

    • 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