Did you write this code yourself or did GPT do it? There is incorrect work with layers and their indexes, that's why there is confusion. Check this code ////////////////////////////////////////////////////////
function get_selected_layers_idx()
{
try {
var r = new ActionReference();
r.putProperty(stringIDToTypeID("property"), stringIDToTypeID("targetLayers"));
r.putEnumerated(stringIDToTypeID("document"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
try {
var list = executeActionGet(r).getList(stringIDToTypeID("targetLayers"));
}
catch (e)
{
var r = new ActionReference();
r.putProperty(stringIDToTypeID("property"), stringIDToTypeID("itemIndex"));
r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum"));
return [ executeActionGet(r).getInteger(stringIDToTypeID("itemIndex"))-1 ];
}
var selected_layers = new Array();
for (var i = 0; i < list.count; i++) selected_layers.push(list.getReference(i).getIndex());
return selected_layers;
}
catch (e) { alert(e.message +"\nline:"+e.line); }
}
////////////////////////////////////////////////////////
function get_layer_info(idx)
{
try {
function transform(p, xx, xy, yx, yy, tx, ty)
{
var x = p[0];
var y = p[1];
p[0] = xx * x + yx * y + tx;
p[1] = xy * x + yy * y + ty;
}
var doc = app.activeDocument;
var old_units = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
var w = doc.width.value;
var h = doc.height.value;
app.preferences.rulerUnits = old_units;
var r = new ActionReference();
r.putProperty(stringIDToTypeID("property"), stringIDToTypeID("textKey"));
r.putIndex(stringIDToTypeID("layer"), idx);
var tkey = executeActionGet(r).getObjectValue(stringIDToTypeID("textKey"));
var xx = 1, xy = 0, yx = 0, yy = 1, tx = 0, ty = 0;
if (tkey.hasKey(stringIDToTypeID("transform")))
{
xx = tkey.getObjectValue(stringIDToTypeID("transform")).getDouble(stringIDToTypeID("xx"));
xy = tkey.getObjectValue(stringIDToTypeID("transform")).getDouble(stringIDToTypeID("xy"));
yx = tkey.getObjectValue(stringIDToTypeID("transform")).getDouble(stringIDToTypeID("yx"));
yy = tkey.getObjectValue(stringIDToTypeID("transform")).getDouble(stringIDToTypeID("yy"));
tx = tkey.getObjectValue(stringIDToTypeID("transform")).getDouble(stringIDToTypeID("tx"));
ty = tkey.getObjectValue(stringIDToTypeID("transform")).getDouble(stringIDToTypeID("ty"));
}
var x0 = tkey.getObjectValue(stringIDToTypeID("bounds")).getUnitDoubleValue(stringIDToTypeID("left"));
var y0 = tkey.getObjectValue(stringIDToTypeID("bounds")).getUnitDoubleValue(stringIDToTypeID("top"));
var x1 = tkey.getObjectValue(stringIDToTypeID("bounds")).getUnitDoubleValue(stringIDToTypeID("right"));
var y1 = tkey.getObjectValue(stringIDToTypeID("bounds")).getUnitDoubleValue(stringIDToTypeID("bottom"));
var p1 = [[x0, y0], [x1, y0], [x1, y1], [x0, y1]];
var ch = tkey.getObjectValue(stringIDToTypeID("textClickPoint")).getUnitDoubleValue(stringIDToTypeID("horizontal"));
var cv = tkey.getObjectValue(stringIDToTypeID("textClickPoint")).getUnitDoubleValue(stringIDToTypeID("vertical"));
tx += w * ch / 100;
ty += h * cv / 100;
transform(p1[0], xx, xy, yx, yy, tx, ty);
transform(p1[1], xx, xy, yx, yy, tx, ty);
transform(p1[2], xx, xy, yx, yy, tx, ty);
transform(p1[3], xx, xy, yx, yy, tx, ty);
var l = Math.min(p1[0][0], p1[1][0], p1[2][0], p1[3][0]);
var r = Math.max(p1[0][0], p1[1][0], p1[2][0], p1[3][0]);
var t = Math.min(p1[0][1], p1[1][1], p1[2][1], p1[3][1]);
var b = Math.max(p1[0][1], p1[1][1], p1[2][1], p1[3][1]);
var mid_x = (l + r) / 2;
var mid_y = (t + b) / 2;
var r = new ActionReference();
r.putProperty(stringIDToTypeID("property"), stringIDToTypeID("name"));
r.putIndex(stringIDToTypeID("layer"), idx);
return [executeActionGet(r).getString(stringIDToTypeID("name")), mid_x, mid_y];
}
catch (e)
{
alert("Error in get_layer_info: " + e.message +"\nline:"+e.line);
}
}
////////////////////////////////////////////////////////
function processSelectedLayers()
{
try {
var doc = app.activeDocument;
// Open file to save results
var desktop = Folder.desktop;
var file = new File(desktop + "/LayerMidXValues.txt");
file.open("w");
// Get active layers
var idx = get_selected_layers_idx();
var n = 0;
try { activeDocument.backgroundLayer } catch (e) { n = 1; }
for (var i = 0; i < idx.length; i++)
{
var info = get_layer_info(idx[i]+n);
// Save to file
file.writeln("Layer Name: " + info[0]);
file.writeln("Mid X: " + info[1].toFixed(2));
file.writeln("Mid Y: " + info[2].toFixed(2));
file.writeln("-----------------------");
// Show alerts for verification
alert("Layer: " + info[0] + "\nMid X: " + info[1].toFixed(2) + "\nMid Y: " + info[2].toFixed(2));
}
// Close file
file.close();
alert("Results saved to LayerMidXValues.txt on desktop.");
}
catch (e)
{
alert("Error in processSelectedLayers: " + e.message +"\nline:"+e.line);
}
}
////////////////////////////////////////////////////////
// Run the script
processSelectedLayers();
... View more