• 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
  • excellon1
    excellon1 over 7 years ago in reply to lcan

    Some awesome feedback guys, really do appreciate the help. In looking over the UI my leaning is to Bill's view. The key is to have a productive UI to drive the tool. Allegro has some truly great features but the crux is the learning curve. Kind of makes things a bit of a hard sell. I personally have been doing PCB design for a long time, used lots of packages over the years. I hail from P-CAD Master Designer so getting up to speed on Allegro was not horrible but there sure is a hell of a lot to learn :), but that's kind of cool IMHO.

    It would be great if some of the common things such as setting grids etc for example were better addressed. Certainly power is available via scripting and skill but your average user may find that difficult. So things can become a struggle pretty fast If you don't get an early grasp of the tool.

    Not to go off topic but perhaps an example to illustrate something that I think was not very well thought out from a UI perspective.

    Take any design and add a couple of global vias to all nets in the design. Fairly easy to do in the CM after a bit of fiddling. Now in the UI have the options pane open and click on the add a connect Icon so as to invoke routing on the layer of your choice using ALT Mode.

    So what's odd about the Options panel. Well you see a message saying "No available Via" But you just added them to all nets so where on earth are they ? and you also clicked add a connect.

    Well the via choices only show up when you click the mouse on the canvas after first clicking "Add a connect". That just seems backwards to me and not intuitive. If you are used to the tool you may never see this because you are either using hot keys to automate things or your a seasoned allegro user and move pretty fast that the message is not noticeable. It is not a big deal really but there is a problem with the physical action of clicking the add a connect icon and association of UI elements to that action.

    Maybe not the best example of UI high strangeness but you get the idea.

    Back to scripts. I was wondering if there is any way to have a Ruler to measure between two points similar to what's in spectra or dare I say it Mentor, yikes sorry..

    I hate with a passion seriously using the "Measure" tool to just do a fast and dirty measurement between two points, for example something like a fast check of pin spacing or a quick check of distance. Believe it or not I am actively using the "Add a line tool" in relative mode to do such measurements. just feels more natural to me. Yep old habits and the way things work in other tools die hard. I can see the power under the hood in how the measure tool works, it provides lots of info.. It just does not feel natural to use. It is far easer IMHO to just draw a line on the canvas, seems less clumsy.

    Steve had a good point above about not editing the mem file, but to Bill's point I agree that some UI over haul would be of benefit.

    The scripts are great, I have done a bunch of automation here and boy oh boy Allegro is so fast. I am in fat city :) having fun too. I found making things like dedicated folders for Scripts, padstacks, libs, parameter files etc independant of the cadence folder is working well and easier to keep track of.

    Thanks Paul

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

    Steve, Excellent document..

    Thanks for that

    Paul

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

    Paul, another document that you can look-up are the "Allegro Tips and Tricks".

    These have been put together by some of the experts with the tools at Cadence and are often presented at CDN Live too.  Much of the document talks about how to get and make hotkeys that are personalized for you.  Like others have stated, don't change the install location.  Use your local env file or scripts directory for things that you personally want configured and utilize a CDS_SITE for things that everyone at your site should be doing/using.  

    I manage the CDS_SITE here, and often times I'll put a hotkey or script together for myself, test it out for a while and then move it into the CDS_SITE for everyone to use.  I also get that sort of info from other users who have found great ways to save time/effort.  

    To your point, yes there is a whole boat-load of things to learn and figure out.  I've been using the tools for well over 10 years and still don't know everything.  I do use the "scriptmode +e" command quite a bit to help me find out what I can do without SKILL.  That allows me to basically record macros of sorts, and then I can add those to my env file or to the CDS_SITE env file.

    ~ Pat Cox

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

    Hi Pat, another excellent document and "scriptmode +e" is just a charm, very helpful. I was working on a board last night checking the nets. One little macro saved the day.

    funckey n "prepopup ; pop dyn_option_select 'Selection set@:@Clear all selections' ; set prompt ; prompt 'Find Net Name' ; net $prompt ; zoom selection"

    Thanks Paul. 

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

    Hi Paul,

    after taking the suggestion to automatically generate additional menu entries I wanted to post what I came up with as it has a couple examples you and others may be able to use. I don't claim that it is perfect, but it works for our installations.

    It creates 4 additional pulldown menus and in one of them incorporates "pullrights". We use a combination of scripts and colorviews to setup both graphic views and set Active/Alternate layers for interactive routing. And of course we make sure we have our vias set in CM exactly like you were defining in an earlier post. I agree with you, its alot about how you set up your design and your interactive work environment.

    I know that Cadence is underway with some UI enhancement work - the latest 17.2 hotfix releases some of what they are working on. It's a start but I believe they have a long way to go. It is nice to see that there are others out there willing to state that efficiencies in the tool are needed regarding the UI while also maximizing the tools current excellent offerings!

    Bill

    ;
    ; Customizing the Cadence main user interface menu.
    ;

    ; Application Menu
    Apps = '(
    (popup "Application Mode")
    ("Placement Edit" "wtm_PlaceKeyPad")
    ("Etch Edit" "wtm_EtchKeyPad")
    ("Flow Planning" "wtm_FloPlanKeyPad")
    ("General Edit" "wtm_GeneralKeyPad")
    )
    ; Grids Menu
    Grids = '(
    (popup "Grids")
    ("0.01 mil grid" "replay p01mil.grid")
    ("0.10 mil grid" "replay p1mil.grid")
    ("0.25 mil grid" "replay 025mil.grid")
    ("0.50 mil grid" "replay 050mil.grid")
    (separator)
    ("1.0 mil grid" "replay 1mil.grid")
    ("2.0 mil grid" "replay 2mil.grid")
    ("2.5 mil grid" "replay 2p5mil.grid")
    ("5.0 mil grid" "replay 5mil.grid")
    ("10.0 mil grid" "replay 10mil.grid")
    ("12.5 mil grid" "replay 12p5mil.grid")
    ("25 mil grid" "replay 25mil.grid")
    ("50 mil grid" "replay 50mil.grid")
    (separator)
    ("{.05mm} 1.968 mil" "replay 1_968.grid")
    ("{.10mm} 3.937 mil" "replay 3_937.grid")
    ("{.20mm} 7.874 mil" "replay 7_874.grid")
    ("{.25mm} 9.842 mil" "replay 9_842.grid")
    ("{.40mm} 15.748 mil" "replay 15_748.grid")
    ("{.50mm} 19.685 mil" "replay 19_685.grid")
    ("{.80mm} 31.496 mil" "replay 31_496.grid")
    ("{1.0mm} 39.37 mil" "replay 39_37.grid")
    )
    ; 10 Layer Menu
    TenL = '(
    (popup "10 Layers")
    ("Cap Layers" "done; colorview load CapLayers")
    ("|| Top" "replay layer_side1.scr")
    ("= Signal 3" "replay layer3.scr")
    ("|| Signal 8" "replay layer8.scr")
    ("Signals 3 & 8" "replay layer3_8.scr")
    ("= Bottom" "replay layer_side2.scr")
    (separator)
    ("Silk Side 1" "done; colorview load SilkSide1")
    ("Silk Side 2" "done; colorview load SilkSide2")
    )
    ; 18 Layer Menu
    EighteenL = '(
    (popup "18 Layers")
    ("Cap Layers" "done; colorview load CapLayers")
    ("|| Top" "replay layer_side1.scr")
    ("= Signal 5" "replay layer5.scr")
    ("|| Signal 7" "replay layer7.scr")
    ("= Signal 12" "replay layer12.scr")
    ("|| Signal 14" "replay layer14.scr")
    ("Signals 5 & 7" "replay layer5_7.scr")
    ("Signals 12 & 14" "replay layer12_14.scr")
    ("= Bottom" "replay layer_side2.scr")
    (separator)
    ("Silk Side 1" "done; colorview load SilkSide1")
    ("Silk Side 2" "done; colorview load SilkSide2")
    )
    ; 10 Layer Menu
    Dfx = '(
    (popup "DFx Tools")
    ("Review Interconnect" "review_interconnect.scr")
    ("90's->45's" "convert_90s_to_45s.scr")
    (popup "Erroneous Vias")
    ("On" "replay Erroneous_vias_at_smd_on.txt")
    ("Off" "replay Erroneous_vias_at_smd_off.txt")
    (end)
    ("Highlight A1 Pins" "wtm_highlight_pins")
    ("Mask/Paste DRC Check" "wtm_mppads")
    )
    procedure( PressPressPull(t_menufile)
    let( (q)
    printf("%s.men customized\n" t_menufile)
    q = axlUIMenuFind(nil -1)
    res = axlUIMenuInsert(q Apps) && axlUIMenuInsert(q Grids) && axlUIMenuInsert(q TenL) && axlUIMenuInsert(q EighteenL) && axlUIMenuInsert(q Dfx)
    ))
    axlTriggerSet('menu 'PressPressPull)

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

    Hi Paul,

    after taking the suggestion to automatically generate additional menu entries I wanted to post what I came up with as it has a couple examples you and others may be able to use. I don't claim that it is perfect, but it works for our installations.

    It creates 4 additional pulldown menus and in one of them incorporates "pullrights". We use a combination of scripts and colorviews to setup both graphic views and set Active/Alternate layers for interactive routing. And of course we make sure we have our vias set in CM exactly like you were defining in an earlier post. I agree with you, its alot about how you set up your design and your interactive work environment.

    I know that Cadence is underway with some UI enhancement work - the latest 17.2 hotfix releases some of what they are working on. It's a start but I believe they have a long way to go. It is nice to see that there are others out there willing to state that efficiencies in the tool are needed regarding the UI while also maximizing the tools current excellent offerings!

    Bill

    ;
    ; Customizing the Cadence main user interface menu.
    ;

    ; Application Menu
    Apps = '(
    (popup "Application Mode")
    ("Placement Edit" "wtm_PlaceKeyPad")
    ("Etch Edit" "wtm_EtchKeyPad")
    ("Flow Planning" "wtm_FloPlanKeyPad")
    ("General Edit" "wtm_GeneralKeyPad")
    )
    ; Grids Menu
    Grids = '(
    (popup "Grids")
    ("0.01 mil grid" "replay p01mil.grid")
    ("0.10 mil grid" "replay p1mil.grid")
    ("0.25 mil grid" "replay 025mil.grid")
    ("0.50 mil grid" "replay 050mil.grid")
    (separator)
    ("1.0 mil grid" "replay 1mil.grid")
    ("2.0 mil grid" "replay 2mil.grid")
    ("2.5 mil grid" "replay 2p5mil.grid")
    ("5.0 mil grid" "replay 5mil.grid")
    ("10.0 mil grid" "replay 10mil.grid")
    ("12.5 mil grid" "replay 12p5mil.grid")
    ("25 mil grid" "replay 25mil.grid")
    ("50 mil grid" "replay 50mil.grid")
    (separator)
    ("{.05mm} 1.968 mil" "replay 1_968.grid")
    ("{.10mm} 3.937 mil" "replay 3_937.grid")
    ("{.20mm} 7.874 mil" "replay 7_874.grid")
    ("{.25mm} 9.842 mil" "replay 9_842.grid")
    ("{.40mm} 15.748 mil" "replay 15_748.grid")
    ("{.50mm} 19.685 mil" "replay 19_685.grid")
    ("{.80mm} 31.496 mil" "replay 31_496.grid")
    ("{1.0mm} 39.37 mil" "replay 39_37.grid")
    )
    ; 10 Layer Menu
    TenL = '(
    (popup "10 Layers")
    ("Cap Layers" "done; colorview load CapLayers")
    ("|| Top" "replay layer_side1.scr")
    ("= Signal 3" "replay layer3.scr")
    ("|| Signal 8" "replay layer8.scr")
    ("Signals 3 & 8" "replay layer3_8.scr")
    ("= Bottom" "replay layer_side2.scr")
    (separator)
    ("Silk Side 1" "done; colorview load SilkSide1")
    ("Silk Side 2" "done; colorview load SilkSide2")
    )
    ; 18 Layer Menu
    EighteenL = '(
    (popup "18 Layers")
    ("Cap Layers" "done; colorview load CapLayers")
    ("|| Top" "replay layer_side1.scr")
    ("= Signal 5" "replay layer5.scr")
    ("|| Signal 7" "replay layer7.scr")
    ("= Signal 12" "replay layer12.scr")
    ("|| Signal 14" "replay layer14.scr")
    ("Signals 5 & 7" "replay layer5_7.scr")
    ("Signals 12 & 14" "replay layer12_14.scr")
    ("= Bottom" "replay layer_side2.scr")
    (separator)
    ("Silk Side 1" "done; colorview load SilkSide1")
    ("Silk Side 2" "done; colorview load SilkSide2")
    )
    ; 10 Layer Menu
    Dfx = '(
    (popup "DFx Tools")
    ("Review Interconnect" "review_interconnect.scr")
    ("90's->45's" "convert_90s_to_45s.scr")
    (popup "Erroneous Vias")
    ("On" "replay Erroneous_vias_at_smd_on.txt")
    ("Off" "replay Erroneous_vias_at_smd_off.txt")
    (end)
    ("Highlight A1 Pins" "wtm_highlight_pins")
    ("Mask/Paste DRC Check" "wtm_mppads")
    )
    procedure( PressPressPull(t_menufile)
    let( (q)
    printf("%s.men customized\n" t_menufile)
    q = axlUIMenuFind(nil -1)
    res = axlUIMenuInsert(q Apps) && axlUIMenuInsert(q Grids) && axlUIMenuInsert(q TenL) && axlUIMenuInsert(q EighteenL) && axlUIMenuInsert(q Dfx)
    ))
    axlTriggerSet('menu 'PressPressPull)

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