• 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. Find all the pins between two X coordinates

Stats

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

Find all the pins between two X coordinates

ANNAY
ANNAY over 2 years ago

Hi, 

I'm looking for specific pins that are located between two known x coordinates. Is there a command that can give me a list of all those pins? 

I'm looking for an easier way to extract them besides counting and writing their pin names manually. 

Thanks! 

Anna

  • Sign in to reply
  • Cancel
Parents
  • DavidJHutchins
    0 DavidJHutchins over 2 years ago

    I wrote a simple skill routine to return a list of pins winthin a box/window, below is the journal file showing it's usage:

    \i (00:00:08) generaledit
    \i (00:00:16) skill
    \i (00:00:43) skill 'load("get_pins_between.ils")'
    (00:00:43) t
    \i (00:01:02) skill 'pp get_pins_between'
    (00:01:02) procedure(get_pins_between(minx miny maxx maxy "nnnn")
    (00:01:02) let((OnButtonList EnabledList bBox PinList)
    (00:01:02) (OnButtonList = axlGetFindFilter())
    (00:01:02) (EnabledList = axlGetFindFilter(t))
    (00:01:02) axlClearSelSet()
    (00:01:02) axlSetFindFilter(?enabled
    (00:01:02) list("noall" "pins" "invisible") ?onButtons
    (00:01:02) list("noall" "pins")
    (00:01:02) )
    (00:01:02) (bBox = list((minx:miny)
    (00:01:02) (maxx:maxy)
    (00:01:02) ))
    (00:01:02) axlAddSelectBox(bBox)
    (00:01:02) (PinList = axlGetSelSet())
    (00:01:02) axlClearSelSet()
    (00:01:02) axlSetFindFilter(?enabled EnabledList ?onButtons OnButtonList)
    (00:01:02) PinList
    (00:01:02) )
    (00:01:02) )
    (00:01:02) nil
    \i (00:01:33) skill 'PinList = get_pins_between( 1525 950 1650 1850)'
    (00:01:33) (dbid:0000002D6197F950 dbid:0000002D6197F880 dbid:0000002D6197C190 dbid:0000002D6197F7B0 dbid:0000002D6197BEB0
    (00:01:33) dbid:0000002D6197B9F0 dbid:0000002D6197CE20 dbid:0000002D6197BDE0 dbid:0000002D6197EF30 dbid:0000002D6197CEC0
    (00:01:33) dbid:0000002D6197EE90 dbid:0000002D6197EDF0 dbid:0000002D6197ED50 dbid:0000002D6197E490 dbid:0000002D6197F6E0
    (00:01:33) dbid:0000002D6197D100 dbid:0000002D6197DAB0 dbid:0000002D6197D030 dbid:0000002D6197D1A0 dbid:0000002D6197ECB0
    (00:01:33) dbid:0000002D6197E3F0 dbid:0000002D6197E350 dbid:0000002D6197E2B0 dbid:0000002D6197BB30 dbid:0000002D6197BD10
    (00:01:33) dbid:0000002D6197EC10 dbid:0000002D6197C020 dbid:0000002D6197C0C0 dbid:0000002D6197EB70 dbid:0000002D619892C8
    (00:01:33) dbid:0000002D61989228 dbid:0000002D6197CD50
    (00:01:33) )
    \i (00:01:50) skill 'foreach(pin PinList axlMsgPut("pin name %s (%f %f)" pin->name car(pin->xy) cadr(pin->xy)))'
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1048.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1074.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1100.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1126.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1152.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1178.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1204.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1230.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1256.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1438.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1464.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1490.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1516.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1282.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1308.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1334.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1360.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1386.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1412.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1542.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1568.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1594.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1620.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1646.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1672.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1698.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1724.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1750.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1776.000000)
    \t (00:01:50) pin name SMD50_87 (1580.000000 1570.000000)
    \t (00:01:50) pin name SMD50_87 (1580.000000 1765.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1802.000000)
    (00:01:50) (dbid:0000002D6197F950 dbid:0000002D6197F880 dbid:0000002D6197C190 dbid:0000002D6197F7B0 dbid:0000002D6197BEB0
    (00:01:50) dbid:0000002D6197B9F0 dbid:0000002D6197CE20 dbid:0000002D6197BDE0 dbid:0000002D6197EF30 dbid:0000002D6197CEC0
    (00:01:50) dbid:0000002D6197EE90 dbid:0000002D6197EDF0 dbid:0000002D6197ED50 dbid:0000002D6197E490 dbid:0000002D6197F6E0
    (00:01:50) dbid:0000002D6197D100 dbid:0000002D6197DAB0 dbid:0000002D6197D030 dbid:0000002D6197D1A0 dbid:0000002D6197ECB0
    (00:01:50) dbid:0000002D6197E3F0 dbid:0000002D6197E350 dbid:0000002D6197E2B0 dbid:0000002D6197BB30 dbid:0000002D6197BD10
    (00:01:50) dbid:0000002D6197EC10 dbid:0000002D6197C020 dbid:0000002D6197C0C0 dbid:0000002D6197EB70 dbid:0000002D619892C8
    (00:01:50) dbid:0000002D61989228 dbid:0000002D6197CD50
    (00:01:50) )
    \i (00:01:59) skill exit
    (00:01:59) t
    \i (00:02:02) exit
    \e (00:02:02) Do you want to save the changes you made to cds_routed.brd?
    \i (00:02:03) fillin no
    \t (00:02:03) Journal end - Sun Nov 13 10:24:04 2022

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Reply
  • DavidJHutchins
    0 DavidJHutchins over 2 years ago

    I wrote a simple skill routine to return a list of pins winthin a box/window, below is the journal file showing it's usage:

    \i (00:00:08) generaledit
    \i (00:00:16) skill
    \i (00:00:43) skill 'load("get_pins_between.ils")'
    (00:00:43) t
    \i (00:01:02) skill 'pp get_pins_between'
    (00:01:02) procedure(get_pins_between(minx miny maxx maxy "nnnn")
    (00:01:02) let((OnButtonList EnabledList bBox PinList)
    (00:01:02) (OnButtonList = axlGetFindFilter())
    (00:01:02) (EnabledList = axlGetFindFilter(t))
    (00:01:02) axlClearSelSet()
    (00:01:02) axlSetFindFilter(?enabled
    (00:01:02) list("noall" "pins" "invisible") ?onButtons
    (00:01:02) list("noall" "pins")
    (00:01:02) )
    (00:01:02) (bBox = list((minx:miny)
    (00:01:02) (maxx:maxy)
    (00:01:02) ))
    (00:01:02) axlAddSelectBox(bBox)
    (00:01:02) (PinList = axlGetSelSet())
    (00:01:02) axlClearSelSet()
    (00:01:02) axlSetFindFilter(?enabled EnabledList ?onButtons OnButtonList)
    (00:01:02) PinList
    (00:01:02) )
    (00:01:02) )
    (00:01:02) nil
    \i (00:01:33) skill 'PinList = get_pins_between( 1525 950 1650 1850)'
    (00:01:33) (dbid:0000002D6197F950 dbid:0000002D6197F880 dbid:0000002D6197C190 dbid:0000002D6197F7B0 dbid:0000002D6197BEB0
    (00:01:33) dbid:0000002D6197B9F0 dbid:0000002D6197CE20 dbid:0000002D6197BDE0 dbid:0000002D6197EF30 dbid:0000002D6197CEC0
    (00:01:33) dbid:0000002D6197EE90 dbid:0000002D6197EDF0 dbid:0000002D6197ED50 dbid:0000002D6197E490 dbid:0000002D6197F6E0
    (00:01:33) dbid:0000002D6197D100 dbid:0000002D6197DAB0 dbid:0000002D6197D030 dbid:0000002D6197D1A0 dbid:0000002D6197ECB0
    (00:01:33) dbid:0000002D6197E3F0 dbid:0000002D6197E350 dbid:0000002D6197E2B0 dbid:0000002D6197BB30 dbid:0000002D6197BD10
    (00:01:33) dbid:0000002D6197EC10 dbid:0000002D6197C020 dbid:0000002D6197C0C0 dbid:0000002D6197EB70 dbid:0000002D619892C8
    (00:01:33) dbid:0000002D61989228 dbid:0000002D6197CD50
    (00:01:33) )
    \i (00:01:50) skill 'foreach(pin PinList axlMsgPut("pin name %s (%f %f)" pin->name car(pin->xy) cadr(pin->xy)))'
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1048.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1074.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1100.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1126.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1152.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1178.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1204.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1230.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1256.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1438.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1464.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1490.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1516.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1282.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1308.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1334.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1360.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1386.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1412.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1542.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1568.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1594.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1620.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1646.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1672.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1698.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1724.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1750.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1776.000000)
    \t (00:01:50) pin name SMD50_87 (1580.000000 1570.000000)
    \t (00:01:50) pin name SMD50_87 (1580.000000 1765.000000)
    \t (00:01:50) pin name SMD65REC13 (1580.000000 1802.000000)
    (00:01:50) (dbid:0000002D6197F950 dbid:0000002D6197F880 dbid:0000002D6197C190 dbid:0000002D6197F7B0 dbid:0000002D6197BEB0
    (00:01:50) dbid:0000002D6197B9F0 dbid:0000002D6197CE20 dbid:0000002D6197BDE0 dbid:0000002D6197EF30 dbid:0000002D6197CEC0
    (00:01:50) dbid:0000002D6197EE90 dbid:0000002D6197EDF0 dbid:0000002D6197ED50 dbid:0000002D6197E490 dbid:0000002D6197F6E0
    (00:01:50) dbid:0000002D6197D100 dbid:0000002D6197DAB0 dbid:0000002D6197D030 dbid:0000002D6197D1A0 dbid:0000002D6197ECB0
    (00:01:50) dbid:0000002D6197E3F0 dbid:0000002D6197E350 dbid:0000002D6197E2B0 dbid:0000002D6197BB30 dbid:0000002D6197BD10
    (00:01:50) dbid:0000002D6197EC10 dbid:0000002D6197C020 dbid:0000002D6197C0C0 dbid:0000002D6197EB70 dbid:0000002D619892C8
    (00:01:50) dbid:0000002D61989228 dbid:0000002D6197CD50
    (00:01:50) )
    \i (00:01:59) skill exit
    (00:01:59) t
    \i (00:02:02) exit
    \e (00:02:02) Do you want to save the changes you made to cds_routed.brd?
    \i (00:02:03) fillin no
    \t (00:02:03) Journal end - Sun Nov 13 10:24:04 2022

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Children
  • DavidJHutchins
    0 DavidJHutchins over 2 years ago in reply to DavidJHutchins

    skill code included below:

    procedure(get_pins_between(minx miny maxx maxy) let((OnButtonList EnabledList bBox PinList) (OnButtonList = axlGetFindFilter()) (EnabledList = axlGetFindFilter(t)) (axlClearSelSet) (axlSetFindFilter ?enabled (list "noall" "pins" "invisible") ?onButtons (list "noall" "pins")) (bBox = axlExtentDB('obstacle)) unless(minx (minx = caar(bBox)) ) unless(minx (minx = cadar(bBox)) ) unless(maxx (maxy = caadr(bBox)) ) unless(maxy (maxy = cadadr(bBox)) ) (bBox = list((minx:miny) (maxx:maxy))) axlAddSelectBox(bBox) (PinList = (axlGetSelSet)) (axlClearSelSet) (axlSetFindFilter ?enabled EnabledList ?onButtons OnButtonList) PinList ) )

    • 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