Copy link to clipboard
Copied
While building Ai Command Palette I found a great list of executeMenuCommand() values extracted by Shalako Lee from the 2017 SDK. As you might imagine, some of those commands no longer work, and since I'm about to release v0.2.0 of Ai Command Palette I've been testing them all and keeping track of the results in this Google Sheet.
I'm sharing this here because I figured this might be useful to some of you who write scripts for Illustrator. The sheet includes the Original List of commands from Shalako and a working list of the commands that I'm testing in Ai v26.3.1.
Right now I'm about halfway through the original 506 commands from Shalako's list. So far, I've found about 90 that no longer work. I've also updated any verbiage that may have changed in the menu system (since 2017) and updated the ordering to match Ai v26.3.1.
I also, made a simple script to test the commands below if you want to test any yourself. I'm trying to test each command in context to ensure they are working correctly.
Let me know if you have any other that I may have missed... Cheers!
P.S. There is another list on this forum (posted in 2014) that I have yet to review but I am aware of it and plan to compare it with Shalako's.
var result = prompt("Enter Command To Test", "", "Test Built-In Commands");
try {
app.executeMenuCommand(result);
} catch (e) {
alert("Error executing command:\n" + result + "\n\n" + e);
}
You may be interested in this
I've found Ten A's list to be the most complete:
https://ten-artai.com/illustrator-ccver-22-menu-commands-list
I also maintain a menuCommandString database, so I will introduce it. It is Illustrator 2022 (26.4.1) equivalent and is made of Notion. There are currently 530 commands in this database.
Illustrator Reference/ExtendScript/app.executeMenuCommand | Notion
There are my files for:
Found new commands in Illustrator v29.0.
|
menu |
key |
note |
|
Object > Objects on Path > Attach |
Attach Objects on Path |
Added from v29.0 |
|
Object > Objects on Path > Options |
Options Objects on Path |
Added from v29.0 |
|
Object > Objects on Path > Expand |
Expand Objects on Path |
Added from v29.0 |
|
Window > Type > Reflow Viewer |
ReflowWindowMenu |
Added from v29.0. East asian feature |
And a tool.
|
tool |
key |
note |
|
Objects on Path |
Adobe Constraints Tool |
Added from |
Copy link to clipboard
Copied
Is that perhaps why your palette does not "show all menu commands" as in one of your videos. If i search for it, it doesnt appear. If i go into the preferences, the initial menu item which shows, it doesnt show neither
Copy link to clipboard
Copied
That was a built-in command that I removed a few versions ago. You can access any menu command by just searching for the command name, or the latest version has a new feature that enables searching on the command type. If you "Enable Searching on Command Type" which can be searched for or found in the "Ai Command Palette Settings..." command. After enabled, you can search for "menu" and all menu commands will show up in the results. Searching on type is disabled by default and can be toggled anytime in the palette settings. Hope that helps. Cheers!
Copy link to clipboard
Copied
Yeah found that. Pretty cool tool by the way. Very impressive since I read you started development in 2020. I guess by that you meant learn to code right?
Ps do you know of the website by Jonas to create dialog layouts for scriptui. It's super handy for creating precise and much shorter code for dialogs
Checkout out: scriptui.joonas.me
Copy link to clipboard
Copied
I disagree with you about the short code in scriptui.joonas.me. After export you can refactor and shorten the dialog code by removing unimportant parameters, properties of dialog objects. I use it to quickly create a visual structure, but then I clean up the code afterwards. As a tool, this dialog builder is certainly good.
Copy link to clipboard
Copied
Ow yeah I remove that restore section. But otherwise, it's way easier to work with vs those old files like we see in photoshop. Where each prop always has the parent prop etc etc before it. It makes referencing a bit more complicated
Copy link to clipboard
Copied
Really glad to hear you found the tool handy! And yes, I use scriptui.joonas.me often, mostly as a visual layout tool and reference. I typically still write most of the UI code by hand because I enjoy pain 🤣.
Copy link to clipboard
Copied
Ow really, that's a waste of time. I mean I remember prior to finding that, that checking layout takes so much time
Copy link to clipboard
Copied
Greetings all!
I would like to know how to set specific numbers in dialog boxes that pop-up.
For example using offset path with "app.executeMenuCommand('OffsetPath v23');" and setting the Offset to either 2mm or -2mm with Miter joins and 4 Miter limit.
Is that possible?
Copy link to clipboard
Copied
Windows — autohotkey, macos — hammerspoon.
Copy link to clipboard
Copied
No not that I know of, dialogs are not opened for api. You can highlight or activate input fields and add data
Copy link to clipboard
Copied
What you can do is make a dynamic action and add this in a script. It think it should be possible than, perhaps.
I've used this approach to call the delete action and some other dialogs which are not exposed to scripting.
Have a look at this thread
Copy link to clipboard
Copied
I got a test file working. I'll make it complete so you can also use the other inputs..
You need it for script right?
Because adding a dialog window for this doesn't make sense because it's already a dialog window.
As I got it now, the script will add a new action set and action with the variable or dynamic data input, it will run the action and then delte the action set. It works from a jsx file all automated
Copy link to clipboard
Copied
Yes, I needed it for script.
Calling the Object-Path-Offset Path menu command opens a dialog box where you have to set the parameters you want. That stops the script and it's not completely automated. I also don't want to have dependencies on actions or external software like hammerspoon, another user suggested, because this script will run on many computers that will not have the actions or hammerspoon.
I found a workaround using LiveEffect and then expanding the object instead. Thanx for the response!
function offsetPath(original, offsetMM) {
var copy = original.duplicate();
copy.selected = true;
var offsetPt = offsetMM * 2.83465;
var effectString = '<LiveEffect name="Adobe Offset Path">' +
'<Dict data="R mlim 4 R ofst ' + offsetPt + ' I jntp 1"/>' +
'</LiveEffect>';
var prevLevel = app.userInteractionLevel;
app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;
app.executeMenuCommand("expandStyle");
app.executeMenuCommand("deselectall");
Copy link to clipboard
Copied
I got it working, it dynamically adds an action runs offset path and then removed the action.
When I'm at work, I'll post my solution. Perhaps it helps other users. Always nice to have more options.
Ps like to share where you got that live effect info from?
Copy link to clipboard
Copied
I started with this thread then experimented till getting it working.
Apply Offset Path with specific values via script
Find more inspiration, events, and resources on the new Adobe Community
Explore Now