Skip to main content
Known Participant
July 12, 2021
Answered

Can you set the Alignment is script

  • July 12, 2021
  • 2 replies
  • 3479 views

ignore my post @Kukurykus  Don't read my post !

The script is worked and fine but one thing alignment is not set in script ?

Please Solve this ? @r-bin 


cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };

#target photoshop;
app.bringToFront();
main()
function main(){
app.bringToFront();

var row = 2;
var column = 2;
var ldivision =10;
var corner = 5;

app.preferences.rulerUnits = Units.PIXELS; //new

var desc1 = new ActionDescriptor();
desc1.putString(sTID("copyHint"), "layers");



if(app.documents.length>0){
var doc = activeDocument;
try{
var desc1 = new ActionDescriptor();
desc1.putString(sTID("copyHint"), "layers");
var doc = activeDocument;
var sBounds = executeAction(cTID('copy'), desc1,DialogModes.NO);
var lineAdjW = ldivision/row
var lineAdjH = ldivision/column

var sWidth = (parseFloat(sBounds[2]) -parseFloat(sBounds[0]))/column - ldivision + ldivision/(row ); //modified
var sHeight = (parseFloat(sBounds[3]) -parseFloat(sBounds[1]))/row - ldivision + ldivision/(column ) ; //modified

var leftSide = parseFloat (sBounds[0]);
var topSide = parseFloat (sBounds[1]);

for(var i=0;i<row;i++) {
leftSide = parseFloat (sBounds[0]);
for(var j=0;j<column;j++){
pasteInPlace() //old code
leftSide += sWidth + ldivision
}
topSide += sHeight +ldivision
}
}
catch(e){}
}
else {alert("There is no open document!")}

function pasteInPlace() {
var desc1 = new ActionDescriptor();
desc1.putBoolean(sTID("inPlace"), true);
desc1.putEnumerated(cTID('AntA'), cTID('Annt'), cTID('Anno'));

executeAction(cTID('past'), desc1, DialogModes.NO);
// Create_Rectangle(t,l,b,r, corner)
};

/*function Create_Rectangle(t,l,b,r, corner) {
cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };
var ref1 = new ActionReference();
ref1.putClass(sTID("contentLayer"));
desc1.putReference(cTID("null"), ref1);
var desc2 = new ActionDescriptor();
var desc3 = new ActionDescriptor();
var desc4 = new ActionDescriptor();
desc4.putDouble(cTID("Rd "), 0);
desc4.putDouble(cTID("Grn "), 0);
desc4.putDouble(cTID("Bl "), 0);
desc3.putObject(cTID("Clr "), sTID("RGBColor"), desc4);
desc2.putObject(cTID("Type"), sTID("solidColorLayer"), desc3);
var desc5 = new ActionDescriptor();
desc5.putInteger(sTID("unitValueQuadVersion"), 1);
desc5.putUnitDouble(cTID("Top "), cTID("#Pxl"), t );
desc5.putUnitDouble(cTID("Left"), cTID("#Pxl"), l );
desc5.putUnitDouble(cTID("Btom"), cTID("#Pxl"), b );
desc5.putUnitDouble(cTID("Rght"), cTID("#Pxl"), r );
desc5.putUnitDouble(sTID("topRight"), cTID("#Pxl"), corner);
desc5.putUnitDouble(sTID("topLeft"), cTID("#Pxl"), corner);
desc5.putUnitDouble(sTID("bottomLeft"), cTID("#Pxl"), corner);
desc5.putUnitDouble(sTID("bottomRight"), cTID("#Pxl"), corner);
desc2.putObject(cTID("Shp "), cTID("Rctn"), desc5);
desc1.putObject(cTID("Usng"), sTID("contentLayer"), desc2);
executeAction(cTID("Mk "), desc1, DialogModes.NO);
} */
}

This topic has been closed for replies.
Correct answer r-bin

Ok @r-bin  See you later


Everything that I understood from your pictures and words.
If not, then describe in detail, and not in "two words".
 
var rows = 2;
var clms = 2;

var gap_h = UnitValue(1, "mm");
var gap_v = UnitValue(2, "mm");

var layer0 = activeDocument.activeLayer;

var dx = layer0.bounds[2]-layer0.bounds[0] + gap_h.as(layer0.bounds[0].type);
var dy = layer0.bounds[3]-layer0.bounds[1] + gap_v.as(layer0.bounds[0].type);

for (var r = 0; r < rows; r++)
    {
    for (var c = 0; c < clms; c++)
        {
        if (!r && !c) continue;

        var layer1 = layer0.duplicate();
        
        layer1.translate(dx*c, dy*r);
        }
    }
 
P.S. Where did you get this code.
What is
desc1.putString(sTID("copyHint"), "layers")
???
 

2 replies

Kukurykus
Legend
July 12, 2021

Additionally use Hindi, your native language, so we can translate it and hopefully we'll avoid to guess what you mean! You become annoying, but it's still place for you, just listen the suggestions and we can move on. OKAY?!

MXKSAuthor
Known Participant
July 12, 2021

No No @Kukurykus  I will speak english properly without any mistake ok

Kukurykus
Legend
July 12, 2021

If you are able to do so then fine. I have no problem with, and that would be best. But you showed it makes many misunderstandings and people have hard time with you. If that will work then okey, if not then Hindi. There are other issues, but let's start with it for beginning.

Legend
July 12, 2021

 

Use this to paste the code!!

MXKSAuthor
Known Participant
July 12, 2021

Ok @r-bin 

cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };

#target photoshop;
app.bringToFront();
main()
function main(){
app.bringToFront();

var row = 2;
var column = 2;
var ldivision =10;
var corner = 5;

app.preferences.rulerUnits = Units.PIXELS; //new

var desc1 = new ActionDescriptor();
desc1.putString(sTID("copyHint"), "layers");



if(app.documents.length>0){
var doc = activeDocument;
try{
var desc1 = new ActionDescriptor();
desc1.putString(sTID("copyHint"), "layers");
var doc = activeDocument;
var sBounds = executeAction(cTID('copy'), desc1,DialogModes.NO);
var lineAdjW = ldivision/row
var lineAdjH = ldivision/column

var sWidth = (parseFloat(sBounds[2]) -parseFloat(sBounds[0]))/column - ldivision + ldivision/(row ); //modified
var sHeight = (parseFloat(sBounds[3]) -parseFloat(sBounds[1]))/row - ldivision + ldivision/(column ) ; //modified

var leftSide = parseFloat (sBounds[0]);
var topSide = parseFloat (sBounds[1]);

for(var i=0;i<row;i++) {
leftSide = parseFloat (sBounds[0]);
for(var j=0;j<column;j++){
pasteInPlace() //old code
leftSide += sWidth + ldivision
}
topSide += sHeight +ldivision
}
}
catch(e){}
}
else {alert("There is no open document!")}

function pasteInPlace() {
var desc1 = new ActionDescriptor();
desc1.putBoolean(sTID("inPlace"), true);
desc1.putEnumerated(cTID('AntA'), cTID('Annt'), cTID('Anno'));

executeAction(cTID('past'), desc1, DialogModes.NO);
// Create_Rectangle(t,l,b,r, corner)
};

/*function Create_Rectangle(t,l,b,r, corner) {
cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };
var ref1 = new ActionReference();
ref1.putClass(sTID("contentLayer"));
desc1.putReference(cTID("null"), ref1);
var desc2 = new ActionDescriptor();
var desc3 = new ActionDescriptor();
var desc4 = new ActionDescriptor();
desc4.putDouble(cTID("Rd "), 0);
desc4.putDouble(cTID("Grn "), 0);
desc4.putDouble(cTID("Bl "), 0);
desc3.putObject(cTID("Clr "), sTID("RGBColor"), desc4);
desc2.putObject(cTID("Type"), sTID("solidColorLayer"), desc3);
var desc5 = new ActionDescriptor();
desc5.putInteger(sTID("unitValueQuadVersion"), 1);
desc5.putUnitDouble(cTID("Top "), cTID("#Pxl"), t );
desc5.putUnitDouble(cTID("Left"), cTID("#Pxl"), l );
desc5.putUnitDouble(cTID("Btom"), cTID("#Pxl"), b );
desc5.putUnitDouble(cTID("Rght"), cTID("#Pxl"), r );
desc5.putUnitDouble(sTID("topRight"), cTID("#Pxl"), corner);
desc5.putUnitDouble(sTID("topLeft"), cTID("#Pxl"), corner);
desc5.putUnitDouble(sTID("bottomLeft"), cTID("#Pxl"), corner);
desc5.putUnitDouble(sTID("bottomRight"), cTID("#Pxl"), corner);
desc2.putObject(cTID("Shp "), cTID("Rctn"), desc5);
desc1.putObject(cTID("Usng"), sTID("contentLayer"), desc2);
executeAction(cTID("Mk "), desc1, DialogModes.NO);
} */
}

 

Legend
July 12, 2021
Your script does nothing for me. What is expected to happen?