cTID = function(s) { return app.charIDToTypeID(s); }; sTID = function(s) { return app.stringIDToTypeID(s); }; // Function to get the count of layer groups starting with "Post " function getPostLayerGroupCount() { var PostGroupCount = 0; var layers = app.activeDocument.layers; for (var i = 0; i < layers.length; i++) { if (layers[i].typename == "LayerSet" && layers[i].name.indexOf("Post ") === 0) { PostGroupCount++; } } return PostGroupCount; } // Function to get the file size function getFileSize() { var width = app.activeDocument.width.value; var height = app.activeDocument.height.value; return {width: width, height: height}; } // Function to create artboards function createArtboards(PostGroupCount, fileSize) { var interval = 100; // Interval between artboards var startX = 0; var startY = 0; for (var i = 0; i < PostGroupCount; i++) { var name = "Artboard " + (i + 1); var left = startX; var top = startY; var right = startX + fileSize.width; var bottom = startY + fileSize.height; createArtboard(top, left, bottom, right, name); startX += fileSize.width + interval; // Update the starting position for the next artboard } } // Function to create a single artboard function createArtboard(top, left, bottom, right, name) { var desc1 = new ActionDescriptor(); var ref1 = new ActionReference(); ref1.putClass(sTID("artboardSection")); desc1.putReference(cTID('null'), ref1); desc1.putString(cTID('Nm '), name); var desc2 = new ActionDescriptor(); desc2.putDouble(cTID('Top '), top); desc2.putDouble(cTID('Left'), left); desc2.putDouble(cTID('Btom'), bottom); desc2.putDouble(cTID('Rght'), right); desc1.putObject(sTID("artboardRect"), sTID("classFloatRect"), desc2); executeAction(sTID('make'), desc1, DialogModes.NO); } // Function to move "Post " layer groups to artboards function movePostGroupToArtboard(PostIndex, artboardIndex) { var doc = app.activeDocument; var PostGroupName = "Post " + PostIndex; var sourceArtboard = doc.layerSets.getByName("Artboard 1"); var destinationArtboard = doc.layerSets.getByName("Artboard " + artboardIndex); if (sourceArtboard && destinationArtboard) { var layers = sourceArtboard.layers; for (var i = 0; i < layers.length; i++) { if (layers[i].typename == "LayerSet" && layers[i].name == PostGroupName) { var PostGroup = layers[i]; PostGroup.move(destinationArtboard, ElementPlacement.INSIDE); break; } } } } // Main function function main() { var PostGroupCount = getPostLayerGroupCount(); if (PostGroupCount > 0) { var fileSize = getFileSize(); createArtboards(PostGroupCount, fileSize); // Move each "Post " layer group to its respective artboard for (var i = 2; i <= PostGroupCount + 1; i++) { // Start moving from "Post 2" to "Artboard 2" movePostGroupToArtboard(i, i); } } } // Execute the main function main();