• 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 Filter Issue

Stats

  • Replies 9
  • Subscribers 159
  • Views 16213
  • Members are here 0
More Content

Find Filter Issue

serpens
serpens over 12 years ago

Hi,

I have an issue with the axlGetFindFilter() command. I have a small SKILL script for Find & replace text in the DB. In the code below I was trying to get the initial Find Filter setings and backup them, before I change it to TEXT, how ever it only returned nil, so I'm not able to backup them.

Second issue is that  axlSetFindFilter(...)  will not work when I execute my script when another command is actually running in the PCB editor (e.g. move). Is there any command whit which I can get the state of the PCB Editor, so I will be able to notice the user that another command is runnig and he need to close it first, before execute the script?

Regards,

Miro

moFindFilterEnabled = axlGetFindFilter(nil) > this returns nil
moFindFilterButtons = axlGetFindFilter(t) > this returns nil

 println( moFindFilterEnabled) - just for check
 println( moFindFilterEnabled) - just for check

axlSetFindFilter( ?enabled list( "noall" "text" "invisible") ?onButtons list( "noall" "text"))
axlAddSelectAll()
moAllTexts = axlGetSelSet()

REST OF THE CODE


axlClearSelSet()

axlSetFindFilter( ?enabled moFindFilterEnabled  ?onButtons moFindFilterButtons ) > sets only the TEXT as enabled and on

  • Sign in to reply
  • Cancel
  • D912349
    D912349 over 12 years ago

    Hi,

    I think axlGetFindFilter only works when fields are set by axlSetFindFlter, and active command is idle.

    regarding second issue, to check when a certain command is active by using axlOkToProceed.

    Regards,

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • fxffxf
    fxffxf over 12 years ago

    You should register your skill entry point as an Allegro command via axlCmdRegister. If you register it as an interactive command then the system will 'DONE' any other interactive command before calling your Skill code. 

    axlGetFindFilter returns a nil because no other Skill code has set the find filter. Commands like move, delete, etc. have their own find filter settings. These settings are not shared with the Skill environment.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • serpens
    serpens over 12 years ago

    Thanks guys for reply. I will try it. When the code will be registered as the command, will it handle also the Find Filter settings? I want to make it clear that it don't mess with the last used filter in the Editor (in idle mode).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • fxffxf
    fxffxf over 12 years ago

    axlGetFindFilteraxlSetFindFilter is provided tosupport a push/pop programming strategy.

    For example, your code enables the find filter to allow the user to control what objects they select. After they selected an object your code might need to find other objects using the find filter. In this case, this utility to find other objects would want to preserver the original find filter settings.

    With normal command level programming you don't need to restore the find filter. An exception is if you are writing a utility function that is used by other Skill code then it is good programming practive to restore the find filter if your utility function changes it.

    Cadence commands either have their own persistent find filter settings they set when the command starts or use fixed set of initial settings.

    If you are writing your own command level code, you should assume that the intiial find filter settings are undefined and you always need to set them to the values your command intially requires. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • serpens
    serpens over 12 years ago

    Hi fxffxf,

    Thanks again for quick reply. I've registered the function with the axlCmdRegister() and it works fine for closing the running command.

    But I still have issues with the Find Filter. I use the filter to get dbids of all texts in the DB for my SKILL code. If there is another way how to avoid using the filter to get the dbids of all texts in the whole design this will solve the problem too.

    If I understand it correctly, there is no way how to preserve the setting of the Find Filter for the Idle mode of PCB Editor?

    Now my SKILL code behave like this in relation to Find FIlter.

    - there are some setting (user selected before)
    - after executing my SKILL code, the code change the Find Filter settings to text only (enabled and on_button)
    - then when the code ends and return to the PCB Editor, the Find Filter settings remain set to text only available option
    - user need to execute some another command e.g. move, slide, etc., then done the command and after this the Find Filter enables all usually enabled options
    - how ever the on_button stay on text only

    Even the code work I would like to fix this behavior to make it more user friendly.

    If there is interest, attached is the SKILL code. After loading the code it is necessary to run it by typing mo_bfr to the command line.

    Miro

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