Skip to main content
eiofgng
Participant
December 10, 2018
Open for Voting

P: Ability to flip individual Artboard without flipping the whole canvas

  • December 10, 2018
  • 17 replies
  • 2887 views

Artboard is a great way to manage and create a group of images/designs with all of them laying out on the table while individually editted.

 

My suggestion is to add the ability to flip individual artboard at a time, without flipping the whole canvas.

 

Because sometimes while I am sketching on one of the artboards, I need to flip the sketch constantly to check perspective/symmetry, etc. If flipping the whole canvas is the only option, I noticed that it can take minutes sometimes to complete the calculation, ending up stucking my workflow.

17 replies

eiofgng
eiofgngAuthor
Participant
March 22, 2024

To put it in a simpler way-

 

Currently, artboards seem to be programed as margins of a single bigger canvas, each with some layer controls individually.

 

In future updates, I am looking forward to seeing each artboard as an individual canvas of its own, with full controls of flipping, rotating as well as layer controls and so on. Thus working with artboards becomes more like standing in front of a magical whiteboard.

Participating Frequently
March 22, 2024

THANK YOU SO MUCH, MR. STEPHEN!

This will be very helpful for a while until Adobe adds or changes its Flip feature
I'll comfortably use this for a while, thanks! 

This is insanely cool!

Stephen Marsh
Community Expert
Community Expert
March 22, 2024

You can try the following script. Select the artboard and run the script. A new preview layer will be added at the top of the artboard stack. You can then toggle the visibility of this layer on/off to preview the flipped image. Then delete the layer once you have finished previewing.

 

This has had limited testing, so I might have missed something!

 

/*
Faux Artboard Flipped Preview.jsx
v1.0 - 22nd March 2024, Stephen Marsh
https://community.adobe.com/t5/photoshop-ecosystem-ideas/p-ability-to-flip-individual-artboard-without-flipping-the-whole-canvas/idc-p/14506705
*/

#target photoshop

var sourceDocName = app.activeDocument.name;

if (isArtboard() === true) {
    fauxPreview();
} else {
    app.activeDocument.activeLayer = app.activeDocument.activeLayer.parent;
    if (isArtboard() === true) {
        fauxPreview();
    }
    else {
        alert("Please select the artboard layer and re-run the script...");
    }
}


///// FUNCTIONS /////

function fauxPreview() {
    var theArtboardName = app.activeDocument.activeLayer.name;
    dupeArtboard(theArtboardName + " Temp", theArtboardName);
    app.activeDocument.selection.selectAll();
    mergeVisible();
    crop();
    flip("horizontal"); // or vertical
    dupeLayer(theArtboardName + " - Flipped Preview", theArtboardName);
    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}

function isArtboard() {
    // modified from a script by greless with hints from jazz-y!
    try {
        var r = new ActionReference();
        r.putEnumerated(stringIDToTypeID('layer'), stringIDToTypeID('ordinal'), stringIDToTypeID('targetEnum'));
        var options = executeActionGet(r);
        return options.hasKey(stringIDToTypeID('artboard'));
    } catch (e) {
        alert("Error!" + "\r" + e + ' ' + e.line);
    }
}

function dupeArtboard(theDocName, theLayerName) {
    var s2t = function (s) {
        return app.stringIDToTypeID(s);
    };
    var descriptor = new ActionDescriptor();
    var reference = new ActionReference();
    var reference2 = new ActionReference();

    function s2t(s) {
        return app.s2t(s);
    }
    reference.putClass(s2t("document"));
    descriptor.putReference(s2t("null"), reference);
    descriptor.putString(s2t("name"), theDocName);
    reference2.putEnumerated(s2t("layer"), s2t("ordinal"), s2t("targetEnum"));
    descriptor.putReference(s2t("using"), reference2);
    descriptor.putString(s2t("layerName"), theLayerName);
    executeAction(s2t("make"), descriptor, DialogModes.NO);
}

function mergeVisible() {
    function s2t(s) {
        return app.stringIDToTypeID(s);
    }
    executeAction(s2t("mergeVisible"), undefined, DialogModes.NO);
}

function crop() {
    var desc1 = new ActionDescriptor();
    desc1.putBoolean(charIDToTypeID('Dlt '), true);
    executeAction(charIDToTypeID('Crop'), desc1, DialogModes.NO);
}

function flip(theDirection) {
    function s2t(s) {
        return app.stringIDToTypeID(s);
    }
    var descriptor = new ActionDescriptor();
    var reference = new ActionReference();
    reference.putEnumerated(s2t("document"), s2t("ordinal"), s2t("first"));
    descriptor.putReference(s2t("null"), reference);
    descriptor.putEnumerated(s2t("axis"), s2t("orientation"), s2t(theDirection));
    executeAction(s2t("flip"), descriptor, DialogModes.NO);
}

function dupeLayer(theLayer, theArtboard) {
    var s2t = function (s) {
        return app.stringIDToTypeID(s);
    };
    var descriptor = new ActionDescriptor();
    var reference = new ActionReference();
    var reference2 = new ActionReference();
    function s2t(s) {
        return app.s2t(s);
    }
    reference.putEnumerated(s2t("layer"), s2t("ordinal"), s2t("targetEnum"));
    descriptor.putReference(s2t("null"), reference);
    reference2.putName(s2t("document"), sourceDocName);
    descriptor.putReference(s2t("to"), reference2);
    descriptor.putString(s2t("name"), theLayer);
    descriptor.putString(s2t("artboard"), theArtboard);
    executeAction(s2t("duplicate"), descriptor, DialogModes.NO);
}

 

https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html

Stephen Marsh
Community Expert
Community Expert
March 22, 2024

This topic is marked as an idea, this is the way to submit a feature request to the developers.

Participating Frequently
March 22, 2024

Thank you, is there any way to ask for or a way to provide ideas to Adobe?

Stephen Marsh
Community Expert
Community Expert
March 22, 2024

At this point, the only option is for an end-user to create a solution and you wait for Adobe to implement such a native feature.

Participating Frequently
March 22, 2024

so as for now there's no solution or maybe from adobe to improve the artboard?

Stephen Marsh
Community Expert
Community Expert
March 22, 2024

That's OK, I'll knock something together.

Participating Frequently
March 22, 2024

im sorry i dont understand on how to work on that

Stephen Marsh
Community Expert
Community Expert
March 22, 2024

I don't have any control over what Adobe may or may not add to future versions of Photoshop. If you require this now, then an action or script can be used as a workaround.