• 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 component and find net SKILL programs

Stats

  • Replies 8
  • Subscribers 159
  • Views 15984
  • Members are here 0
More Content

Find component and find net SKILL programs

EvanShultz
EvanShultz over 16 years ago

Hi all,

I was unsatisfied with the Find_Component.il program on SourceLink. It didn't quite have the features that I wanted. Plus, the zooming was broken (in 16.2 anyway). So, I modified the file. It's not revolutionary, but it's a nice enhancement. I added the ability to open the Show Element window after clicking on a part and zooming to the part is now done by a button, instead of automatically.

Then I thought, why not do the same for nets? So, I modified the component program to work with nets, with the same additional features.

 

I believe both programs are working fine without any issues, but please let me know if you find any problems so I can correct them. I appreciate any feedback  you may have. This was my first foray into SKILL so I hope it's helpful for everyone.

I apparently can only have one attached per post so Find_Net.il wil go on the next post. I made them TXT files for posting reasons, change them to IL files for use (obvious, I know).

 

Now, wouldn't it be great to have this same functionality in DEHDL instead of the silly Global Find window? Of course you'd need instance numbers since the ref des isn't there by default, but I think it could be done.

  • Find_Component.txt
  • View
  • Hide
  • Sign in to reply
  • Cancel
  • EvanShultz
    EvanShultz over 16 years ago

     And here's the find net program...

    • Find_Net.txt
    • View
    • Hide
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • redwire
    redwire over 16 years ago

    Now if that list were sorted "correctly" (i.e. J2 comes before J10 and after J1) -- you'd get an A+

    Kudos anyway -- nice updates!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • aCraig
    aCraig over 16 years ago

    Evan,

    Use CalStrNatCmp.il to get a natural order of your list. You can find it on this thread. 

    /forums/T/11133.aspx

     Craig

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • EvanShultz
    EvanShultz over 16 years ago

     Hi Craig,

     Wonderful! Thank you very much! calStrNatCmp.il works like a charm for the component list.

    However, for net list I have an issue: calStrNatCmp.il doesn't pay attention to the first character in the string if it's not a letter or number. This means symbols (!, @, #, $, %, etc.) aren't sorted, which is confusing since "+" and "-" are often used in net names.

     For example, I have "+15V_A" and "-15V" nets in my design. Using calStrNatCmp.il "-15V" comes before "+15V_A"  even though normal convention, and using sort() with u_comparefn = nil, would put all the "+" nets before the "-" nets.

    I don't want to take away your glory in case you want to change your code yourself, plus I don't have time right now, but I'll take a look at calStrNatCmp.il in a few days and see what could be done about this. Unless you get there first.

     

    For anyone who has tried the net program, do you find the "net list area" too narrow? Would it be better to make that wider? I found there to be enough room for named nets, and I wasn't concerned with the long, arbitrary names from packager requiring scrolling, but it's certainly easy to make the list wider. What do you think?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • aCraig
    aCraig over 16 years ago

     Evan,

     Glad it helps.

     If I replace strs1 in CAL_strnatcmpTest with list("AA10" "A1" "A2" "A10" "AA2" "AW12" "B3" "B20" "+15V" "-15V" "!NOT" "*UP") the programs works fine. I get a sorted list of:

    !NOT
    *UP
    +15V
    -15V
    A1
    A2
    A10
    AA2
    AA10
    AW12
    B3
    B20

    The only character the algroithm ignores is *spaces*. Other than that it just seperates the charter strings and the numerical strings and then compares the substrings.

    Not sure why you are having a problems, but I'd be happy to help fix it when you have time.

     Craig

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