Copy link to clipboard
Copied
As above, I have vbs background and have done a lot of scripting about 10 years ago. Of course things have changed a lot but its become pretty hard with enumerated 4 byte etc making code far less logical or readable.
Loved that it was easy stem based language before...and in the meantime have done a lot of python so it seems to have gone backwards
Anyway
I simply want to iterate a number of layers that contain brush samples etc which all still seems to work the same way eg
but Im having trouble with the following
I searched the script reference and could see no mention of the equivalent menu items ie define brush etc so my question is, how is this now best and most elegantly accomplished?
Cheers
Copy link to clipboard
Copied
I guess @c.pfaffenbichler @jazz-y @r-bin @Stephen_A_Marsh haven't seen this thread so far.
Copy link to clipboard
Copied
I don’t quite understand the process, please post screenshots to illustrate.
And I can only provide advice on Photoshop Scripting in JavaScript, being the platform-independent one of the three options.
Copy link to clipboard
Copied
@c.pfaffenbichler Isnt python cross platform?
Appreciate your response...:-)
The main thing that Im having trouble with is taking a layer and converting it to custom brush, then accessing the brush in the script to programmatically place instances of that brush
Excuse the pic...
so there will be user input to define an selection area
selection > layer (repeat 24 times)
CODE:
Loop through layers, converting each to a custom brush
the code then iterates through a grid ie X,Y and randomly loads each custom brush, apply transfomations eg mirror, flip and places it on to the target layer
The issues are the granular access to the brush stuff...I cant see it in the script docs
hth
Copy link to clipboard
Copied
@Image_Engine , install ScriptingListener plug-in it receives notifications about your actions in Photoshop and write them as a code on the desktop.
make("unique brush name");
function make(tilte) {
var s2t = stringIDToTypeID;
var descriptor = new ActionDescriptor();
var reference = new ActionReference();
var reference2 = new ActionReference();
reference.putClass( s2t( "brush" ));
descriptor.putReference( s2t( "target" ), reference );
reference2.putProperty( s2t( "property" ), s2t( "selection" ));
reference2.putEnumerated( s2t( "document" ), s2t( "ordinal" ), s2t( "targetEnum" ));
descriptor.putReference( s2t( "using" ), reference2 );
descriptor.putString( s2t( "name" ), tilte );
executeAction( s2t( "make" ), descriptor, DialogModes.NO );
}
select('unique brush name');
function select(title) {
var s2t = stringIDToTypeID;
var descriptor = new ActionDescriptor();
var reference = new ActionReference();
reference.putName(s2t("brush"), title);
descriptor.putReference(c2t("null"), reference);
executeAction(s2t("select"), descriptor, DialogModes.NO);
}
Copy link to clipboard
Copied
Thanks again
Wow that is great..but many steps backwards for plain coders...it would take quite a while to learn that in any meaningful way.
So how its best to map that via com when (when I looked) the counterparts dont seem to be exposed?
Copy link to clipboard
Copied
executeAction( s2t( "make" )
seems like Im not getting it...have patched most of the errors...but this one being unavailable doesnt make sense.
The verbosity of vbs and even js to python is staggering and so difficult to read first up.
To do a basic single click of a brush currently selected at a particular coordinate...surely that cant be this hard.
I code remote scripts for Ableton live...which has a brilliant object model, cearly documented that makes this all seem so clumsy...sorry I dont mean to sound neg but the rest of the world has moved on...a decade ago...:-\
Cheers