• 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. PCB Design
  3. Maintain "Persistence" of Find after done command is completed...

Stats

  • Locked Locked
  • Replies 23
  • Subscribers 166
  • Views 9054
  • Members are here 0
More Content
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Maintain "Persistence" of Find after done command is completed while routing.

excellon1
excellon1 over 7 years ago

Hi.

When in EtchEdit mode or general edit mode for routing I notice that when routing is finished by selecting "Done" the settings in the find dialog
settings get blown out.

I am trying to maintain the relationship between adding etch with find after the fact. In other words after etch is added to the canvas I want the
find dialog to retain ( Cline Segs, Pins, Nets, Rats T etc ) so that those items are selectable for either info or basic editing after the fact.

Is there any way to accomplish this other than creating a macro for find entities ?.

Basic idea is to have find pre-checked for a given command such as routing etc.

Something like a "IF Done" at the macro level would be helpful too though I do not know if something like that is supported ? , Like execute
the macro, after done is selected as an action then the macro runs the part to check find dialog items.

Thanks Paul. 

  • Cancel
Parents
  • lcan
    lcan over 7 years ago

    Paul,

    I’m coming to this topic late… apologies. I had similar Find Filter concerns, along with others that I wanted to address. This might be more than what you want, but it builds off of Rik's input which I think he gave me a while back and I have found very helpful.

    -      Like you, I wanted the Find Filter defined with baseline settings dependent on the Application mode, and

    • to re-use the same keyboard keys for dissimilar functions across Application modes. (Impossible with a straight ENV file solution)
    • to define non Application mode Alias and Function keys depending on the Application Mode I invoked.
    • to quickly modify the Find Filter without having to see it, or mouse to the Find Filter.
    • to quickly switch to other Application modes
    • for Etch Edit mode baseline grid auto set to 2.5 mils, for Placement mode baseline grid auto set to 25 mils.

    I invoke this by putting the command name in the Allegro.men file.

    Bill

     

    axlCmdRegister("wtm_EtchKeyPad"  `wtm_ee_MKeyPad)

    procedure( wtm_ee_MKeyPad( )

               axlSetFunckey( "/" "prepopup; pop dyn_option_select 'Selection set@:@Select by Lasso'" t)

               axlSetFunckey( "*" "prepopup;pop neck" t)

               axlSetFunckey( "-" "prepopup;pop finish" t)

               axlSetFunckey( "Home" "prepopup; pop dyn_option_select '@:@Auto-interactive Delay Tune'" t)     

               axlSetFunckey( "Up" "prepopup; pop dyn_option_select '@:@Delay tune'" t)

               axlSetFunckey( "SUp" "prepopup; pop dyn_option_select '@:@Add vertex'" t)

               axlSetFunckey( "Pgup" "prepopup; pop dyn_option_select '@:@Add connect'" t)

               axlSetFunckey( "Right" "prepopup; pop dyn_option_select '@:@Scribble mode'" t)

               axlSetFunckey( "Down" "prepopup; pop singletrace" t)

               axlSetFunckey( "Pgdown" "prepopup; pop dyn_option_select @:@Move;" t)

               axlSetFunckey( "SPgdown" "prepopup; pop dyn_option_select '@:@Move vertex';" t)

               axlSetFunckey( "Insert" "prepopup; pop dyn_option_select @:@Delete" t)

               axlSetFunckey( "CInsert" "delete by rectangle " t)

               axlSetFunckey( "SInsert" "delete by line " t)

               axlSetFunckey( "End" "prepopup; pop dyn_option_select @:@Slide; setwindow form.mini; FORM mini extend_selection NO; setwindow pcb" t)

               axlSetFunckey( "CEnd" "prepopup; pop dyn_option_select @:@Slide; setwindow form.mini; FORM mini extend_selection YES; setwindow pcb" t)

               ; Non Application Mode Keys

               axlSetAlias( "F9" "phase_tune")

               axlSetFunckey( "F10" "tvision; setwindow form.find; FORM find Nets YES; setwindow pcb" t)

               ; Find Filter - Interactive Modification

               axlSetAlias( "f1" "replay C:/Cadence/SPB_17.2/share/local/pcb/scripts/ff_clines_only.scr")

               axlSetAlias( "f2" "replay C:/Cadence/SPB_17.2/share/local/pcb/scripts/ff_csegs_only.scr")

               axlSetFunckey( "Left" "settoggle CMD f1 f2; $CMD;" t)

              ; Keyboard Switch - Application Modes           

               axlSetAlias( "t1" "wtm_EtchKeyPad")

               axlSetAlias( "t2" "wtm_PlaceKeyPad")

               axlSetFunckey( "F12" "settoggle CMD t1 t2; $CMD" t)

               ; Set a grid for working in Etch edit mode.

               grid = axlDBGridGet("TOP")

               grid->name = 'all

               grid->xGrids = 2.500

               grid->yGrids = 2.500

               axlDBGridSet(grid)            

               axlShell( "etchedit" )

               ; Find Filter - Baseline Settings

         axlShellPost( "setwindow form.find; FORM find all_off; FORM find ratsnests YES; FORM find Pins YES; FORM find Vias YES; FORM find cline_segs YES; setwindow pcb" )

    ); procedure

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • excellon1
    excellon1 over 7 years ago in reply to lcan

    Bill in looking at your file, it strikes me that it is kind of like a Skill command that gets loaded, would that be right ?. I like the concept of what you have seems good and a time saver.

    Thanks Paul.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • excellon1
    excellon1 over 7 years ago in reply to lcan

    Bill in looking at your file, it strikes me that it is kind of like a Skill command that gets loaded, would that be right ?. I like the concept of what you have seems good and a time saver.

    Thanks Paul.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • lcan
    lcan over 7 years ago in reply to excellon1

    Hi Paul,

    Exactly.  I was hoping to keep the SKILL commands simple for easy editing by myself and others. PCB Design is my more core competency, not SKILL coding.

    Here is what I use for "Placement mode":

    axlCmdRegister("wtm_PlaceKeyPad" `wtm_pe_MKeyPad)

    procedure( wtm_pe_MKeyPad( )

    axlSetFunckey( "/" "prepopup; pop dyn_option_select 'Selection set@:@Select by Lasso'" t)
    axlSetFunckey( "*" "replay C:/Cadence/SPB_17.2/share/local/pcb/scripts/toggle_rot_sym_orig_increment.scr" t)
    axlSetFunckey( "-" "replay C:/Cadence/SPB_17.2/share/local/pcb/scripts/toggle_abs_sym.scr" t)
    axlSetFunckey( "Home" "prepopup; pop dyn_option_select '@:@Swap components'" t)
    axlSetFunckey( "Up" "iangle 90" t)
    axlSetFunckey( "CUp" "move; ipick_to_gridunit 0 +1" t)
    axlSetFunckey( "Pgup" "prepopup; pop dyn_option_select @:@Rotate" t)
    axlSetFunckey( "Right" "prepopup; pop dyn_option_select '@:@Swap pins'" t)
    axlSetFunckey( "Down" "prepopup; pop mirror" t)
    axlSetFunckey( "SDown" "prepopup; pop dyn_option_select @:@Mirror" t)
    axlSetFunckey( "CDown" "move; ipick_to_gridunit 0 -1" t)
    axlSetFunckey( "Pgdown" "prepopup; pop dyn_option_select @:@Move" t)
    axlSetFunckey( "End" "prepopup; pop dyn_option_select '@:@Show Rats'" t)

    axlSetAlias( "f1" "replay C:/Cadence/SPB_17.2/share/local/pcb/scripts/ff_pins_only.scr")
    axlSetAlias( "f2" "replay C:/Cadence/SPB_17.2/share/local/pcb/scripts/ff_text_only.scr")
    axlSetAlias( "f3" "replay C:/Cadence/SPB_17.2/share/local/pcb/scripts/ff_sym_only.scr")
    axlSetFunckey( "Left" "settoggle CMD f1 f2 f3; $CMD" t)

    axlSetAlias( "t1" "wtm_EtchKeyPad")
    axlSetAlias( "t2" "wtm_PlaceKeyPad")
    axlSetFunckey( "F12" "settoggle CMD t1 t2; $CMD" t)

    ; Set a .5MM grid for working in Placement edit mode.
    grid = axlDBGridGet("TOP")
    grid->name = 'all
    grid->xGrids = 25.000
    grid->yGrids = 25.000
    axlDBGridSet(grid)

    axlShell( "placementedit" )
    axlShellPost( "setwindow form.find; FORM find all_off; FORM find Symbols YES; setwindow pcb; move; setwindow form.mini; FORM mini stretch YES; setwindow pcb; prepopup; pop dyn_option_select 'Options@:@Rotation point@:@Symbol Origin'; prepopup; pop dyn_option_select 'Options@:@Rotation type@:@Incremental'; done")

    ); procedure

    Again, to invoke these I create a new popup on the Main Pulldown menu by putting this in the C:Cadence\SPB_17.2\share\local\pcb\menus\Allegro.men file...

    */
    POPUP "&Application Mode"
    BEGIN
    MENUITEM "Placement Edit", "wtm_PlaceKeyPad"
    MENUITEM "Etch Edit", "wtm_EtchKeyPad"
    END

    Hope you find it useful.  You will notice I use the mini keypad on the right of the keyboard, that's just my historical preference.  Modification to use the main keyboard keys should be a straightforward process.

    Bill

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • steve
    steve over 7 years ago in reply to lcan

    Lots of you are editing the menu file which isn't really recommended anymore - if the menu file changes you won't see the updates. You'd be better off using the skill file to load your menu. Details can be found here:- http://orcad.co.uk/images/PDF/PCB_Editor_customization.pdf Page 2 gives you a sample skill file that builds a user-defined menu, you then use an allegro.ilinit file to auto load this menu when you start the tools.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • lcan
    lcan over 7 years ago in reply to steve

    You are absolutely correct, Steve.  My method of using a manually edited Allegro menu file then placed in the local folder is somewhat stale, while functional.  Perhaps that was why I mentioned SKILL coding was not my core competency. I hope folks find the main functions useful. I will research your suggestion, thanks!

    Bill

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • riklee
    riklee over 7 years ago in reply to lcan

    I'd like to add that you should not be storing your scripts (or views, extract files etc) in the Cadence hierarchy. There is a scriptpath variable  that you can set to point to your scripts in a local directory e.g. %home%/pcbenv/scripts

    If you had to reinstall the release you could end up losing all the work you put into making the scripts and any other files that you use.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • lcan
    lcan over 7 years ago in reply to riklee

    Rik, thanks for the ancillary data management tip although I would disagree when the customer installation is multi-user server. Backups are mandatory, regardless of installation type.

    What I hope does not get lost is the original topic, the need for a smoother interface in the PCB Editor. Although much wonderful work has been done to Allegro in the past 12 years, there is still a strong need to overhaul its user interface to capitalize on all the robust functionality the Application Modes offer. It is this area where our users want Cadence support and Engineering to focus. With all this excellent new functionality and analysis, putting it at the PCB Designers/Engineers fingertips is essential. Lets focus a little more on what people are asking for that makes the tool easier to use, like Paul did.

    • Cancel
    • Vote Up 0 Vote Down
    • 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