Copy link to clipboard
Copied
I am looking for a specific script that will center a new artboard under an existing artboad. The new artboard would be 7 to 10 points wider than the original. Like adding a boarder with an artboard.
I've had a lot of luck creating actions to automate so much of my extremely repetetive file editing, but this is one that still kills my time. Currently I have to deselect all of the art, switch to artboards, duplicate the original artboard, make the duplicate 7 points wider and taller, align the artboards, select direct selection tool(v), Select all(cmd A), and then center everything on the original artboard.
Any help would be appreciated.
Copy link to clipboard
Copied
Hello @Kelly33449404c58c, I just saw your request.
I've created a script that will do as requested. I wasn't sure of the intended purpose, so I've modified it to allow you to change the amount of padding on the new artboard, defaulting to 7 points. It can even use negative values to make the new artboard smaller.
Save the attached file to your computer and change the extension from .txt to .jsx.
In Illustrator, run it using File > Scripts > Other Scripts ..., select the downloaded script and click Open.
Cheers,
Richard
#target illustrator
// This script adds a new artboard to the active document and centres it under the original artboard with a specified border width.
// It is in response to a question on Adobe Community: https://community.adobe.com/t5/coding-corner-discussions/illustrator-scripting-help/td-p/14277937
// Written by Richard Turner-Jones (Community Expert)
function addCenteredArtboard() {
var doc = app.activeDocument; // Get the active document
if (!app.activeDocument) {
alert("No active document found.");
return;
}
if (doc.artboards.length === 0) {
alert("The document must have at least one artboard.");
return;
}
// Prompt the user for the border width, defaulting to 7 points
var borderWidthInput = prompt("Enter the border width.\nPositive numbers will make the new artboard larger.\nNegative numbers will make the new artboard smaller.", "7");
var borderWidth = parseInt(borderWidthInput, 10);
// Validate the user input
if (isNaN(borderWidth)) {
alert("Invalid input. Please enter a number.");
return;
}
var originalArtboard = doc.artboards[doc.artboards.getActiveArtboardIndex()]; // Get the current active artboard
var originalRect = originalArtboard.artboardRect; // Get the coordinates of the original artboard
// Calculate the width and height of the original artboard
var originalWidth = Math.abs(originalRect[2] - originalRect[0]);
var originalHeight = Math.abs(originalRect[1] - originalRect[3]);
// Define the width and height of the new artboard, including the border width
var newWidth = originalWidth + borderWidth * 2;
var newHeight = originalHeight + borderWidth * 2;
// Calculate the position of the new artboard to be centred under the original
var newX = originalRect[0] - borderWidth;
var newY = originalRect[1] + borderWidth;
var newRect = [newX, newY, newX + newWidth, newY - newHeight]; // New coordinates for the new artboard
// Add the new artboard
var newArtboard = doc.artboards.add(newRect);
// Optional: Set the new artboard as the active one
doc.artboards.setActiveArtboardIndex(doc.artboards.length - 1);
alert("New artboard added and centred under the original with a border width of " + borderWidth + " points.");
}
// Run the function
addCenteredArtboard();