Answered
Script to draw vector circles in Photoshop 27.0.0
I tried the following script as a .jsx file. I want to draw a vector circle on a layer of the active document in Photoshop 27.0.0. The script runs without any errors, but it fills the whole layer with color (red) rather than drawing a vector circle.
// Draw a vector circle as a Shape Layer
// Parameters
var doc = app.activeDocument;
var radius = 200; // pixels
var centerX = doc.width / 2;
var centerY = doc.height / 2;
// Make a new shape layer with an ellipse path
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putClass(stringIDToTypeID("contentLayer"));
desc.putReference(charIDToTypeID("null"), ref);
var desc2 = new ActionDescriptor();
var desc3 = new ActionDescriptor();
// Shape color
var colorDesc = new ActionDescriptor();
colorDesc.putDouble(charIDToTypeID('Rd '), 255);
colorDesc.putDouble(charIDToTypeID('Grn '), 0);
colorDesc.putDouble(charIDToTypeID('Bl '), 0);
desc3.putObject(charIDToTypeID('Clr '), charIDToTypeID('RGBC'), colorDesc);
// Shape geometry (ellipse)
var shapeDesc = new ActionDescriptor();
shapeDesc.putUnitDouble(charIDToTypeID('Top '), charIDToTypeID('#Pxl'), centerY - radius);
shapeDesc.putUnitDouble(charIDToTypeID('Left'), charIDToTypeID('#Pxl'), centerX - radius);
shapeDesc.putUnitDouble(charIDToTypeID('Btom'), charIDToTypeID('#Pxl'), centerY + radius);
shapeDesc.putUnitDouble(charIDToTypeID('Rght'), charIDToTypeID('#Pxl'), centerX + radius);
desc3.putObject(charIDToTypeID('Shp '), charIDToTypeID('Elps'), shapeDesc);
desc2.putObject(charIDToTypeID('Type'), stringIDToTypeID('solidColorLayer'), desc3);
desc.putObject(charIDToTypeID('Usng'), stringIDToTypeID('contentLayer'), desc2);
executeAction(charIDToTypeID('Mk '), desc, DialogModes.NO);
