I want to add, or really append, a new menu item to the Allgro PCB Editor menu. What is the easiest way to handle this without having to modify the installed menu? Maybe someone has an example that I could follow?
I thought I had this posted somewhere on the forum but I cannot find it. Here is the details of a solution that I have used:
Most users just update the main menu file for Allegro "allegro.men" located at %CDSROOT%\share\pcb\text\cuimenus or copy it to a different location for modification then retarget their MENUPATH variable in Allegro to the updated menu. All of this is really not recommended because your updates could be overrriden during a software update or your locally update Menu file could become out of date which could lead to software issues.
There is SKILL AXL functionality in Allegro 16.3 forward which allows you to add menus/append your own menus to the Cadence default menu dynamically during startup. This eliminates the need to maintain and support a local Allegro.men file or update the Allegro.men in the Cadence software hierarchy. You can get some background information about the function "axlUIMenuInsert" in %CDSROOT%\share\pcb\examples\skill\DOC\FUNCS (File name: axlUIMenuInsert.txt).
To demonstrate this new functionality I created a small example of the SKILL Code and attached it to this post: 1.) Unzip the ZIP file in your local C:\ folder will create the folder "C:\Dynamic_Menus" with two folders "PCBENV" and "SKILL_Lib". 2.) Add or Update your Windows Environment Variable "ALLEGRO_PCBENV" and point to the path "C:\Dynamic_Menus\PCBENV" 3.) Open up Allegro and you will find "Valor Tools" and "SKILL Tools" menus.
The SKILL Library folder "C:\Dynamic_Menus\SKILL_Lib" contains 3 SKILL programs downloaded from Sourcelink and the SKILL Script that creates the dynamic menu: HL_NPE.IL = Highlight Missing Pin Escapes HL_NTP.IL = Highlight Missing Test Points VALOR_EXT.IL = Valor Extracts to generate data files from ODB++ Inside MIKEC_DYNAMIC_MENUS.IL = SKILL code used to create new menus
In order for the above files to work you need to load them during startup using the "allegro.ilinit" file which I have in "C:\Dynamic_Menus\PCBENV". This loads all the SKILL code above.
Hope this helps,Mike CatrambonePlexus Engineering Solutions
Thank you, that was very helpful. I can see the light at the end of the tunnel.
I basically used your file as a template to create my own. Upon open Allegro, I get the following mesage in the command pane.
MENU UPDATES COMPLETE = Standard Cadence allegro + CustomizationsW- *WARNING* (axlUIMenuInsert): Invalid string - nil
Any ideas? I can't seem to see what would be wrong with my file. I have attached my SKILL file to this post. I know I am close, but I am obviously missing something.
Upon further investigation, it appears that the "SEPARATOR" line in the GridsMenu function is causing the problem. What is the correct syntax for this to work in this instance?
Never mind my previous post. I figured it out.
Thank you again for your help.
One more question. Is there any easy way to control which menus load with which tools? For instance, my custom Grids menu would be useful in PCB Editor and PCB Librarian, but custom manufacturing menus would not really apply to PCB Librarian, so I really would rather that menu only show up in PCB Editor.