I have been trying to make a simple script that selects all elements on an artboard and makes a symbol with the name of the artboard. Unfortunately the symbols.add(selection) does not work. Can anyone give me a clue or solution.
One can't debug code that one can't see. Also, it would be helpful to show what you're trying to achieve with a screenshot.
You can try the following,
var doc = app.activeDocument; var _activeAtboardName = doc.artboards[app.activeDocument.artboards.getActiveArtboardIndex()].name doc.selectObjectsOnActiveArtboard(); app.executeMenuCommand('group'); var _symbol = doc.symbols.add(app.selection); _symbol.name = _activeAtboardName; app.executeMenuCommand('ungroup');
app.selection, is an array, but symbols.add expect a single pageItem not an array, tehrefore, group all items before making symbol and after that ungroup it.
I don't know direct way to convert but below is the workaround, where I am placing newly created symbol at the same position where selection exist.
var doc = app.activeDocument; var _activeAtboardName = doc.artboards[app.activeDocument.artboards.getActiveArtboardIndex()].name; doc.selectObjectsOnActiveArtboard(); app.executeMenuCommand('group'); var _selectedItem = app.selection; var _symbol = doc.symbols.add(_selectedItem); doc.symbolItems.add(_symbol).position = _selectedItem.position; _selectedItem.remove();
Found another post. I have not tried myself what exactly script is doing but thought it could be useful.
Thanks for the link. I'll review it.
I've since realized I can turn on AI General pref: "Use Preview Bounds" to make boundin box expand to the outside of a stroked path. That was my reason for considering a "Symbol".