Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
3

fill with auto creat pattern Script

Contributor ,
Oct 02, 2023 Oct 02, 2023

Copy link to clipboard

Copied

Hello guys, I need a bit of help to automate my work.

 

I work with patterns (as a pattern designer), but I need to slightly automate my work.

 

There is this great function now "fill with ... pattern" and then you have scripts for those.

This said what I usually do is that I wokr on a couple of patterns, make the design then test test them on a big format blank file.

so

1. I do my drawing, then

2. click "define as a new pattern" and then

3. I open a fresh new fbig big file and

4. use "fill it with... pattern" and

5. select the last one I created...

So I tried to create an action / script so that I could you know, work in batches, having to decide which of the patterns are good on a big format only later.Untitled-1 (1).jpg

 

When I Added exactly the same steps in the actions macro - it will work for the first file, but for the second it will still use the same pattern used previously, as the actions macro sees it as "fill it with pattern XXX" (namely, not as "last one used"), so I land up with all of the pictures in big format filled with the same pattern instead of different ones.

 

I was thinking about then modifying the macro so when I g oto step 4

4. use "fill it with... pattern" and

add " use script" among the scripts loading there, that would define something like "use the last pattern defined" - can be as well a code as "use newest pattern defined" or "use newest pattern added to the lot"

 

I understand the logic but I have no clue how to edit the scripts in this area.

 

This will save me hours of work, so all of your help will be more than appreciated.

TOPICS
Windows

Views

184
Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe
Contributor ,
Oct 02, 2023 Oct 02, 2023

Copy link to clipboard

Copied

LATEST

Can anyone read the script? Auto fill pattern script. But the script is not working. help me                   #target photoshop;

main();

function main(){

if(!documents.length) return;

var patt = new File(Folder.temp + "/tempPatterns");

if(patt.exists) patt.remove();

savePatterns(patt);

var patterns = getPatternsFromFile(patt);

fillPattern(patterns[patterns.length-1][0].toString(),patterns[patterns.length-1][1].toString(), 100);

};

function savePatterns(file) {

var desc625 = new ActionDescriptor();

desc625.putPath( charIDToTypeID('null'), new File( file ) );

var ref462 = new ActionReference();

ref462.putProperty( charIDToTypeID('Prpr'), charIDToTypeID('Ptrn') );

ref462.putEnumerated( charIDToTypeID('capp'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );

desc625.putReference( charIDToTypeID('T   '), ref462 );

executeAction( charIDToTypeID('setd'), desc625, DialogModes.NO );

};

function getPatternsFromFile(file){

  file.open("r");

  file.encoding = 'BINARY';

  var str = file.read();

  file.close();

  var patterns=[];

  var re = /(\x00\w|\x00\d)(\x00\-|\x00\w|\x00\s|\x00\d)+\x00\x00\$[-a-z\d]+/g;

  var parts = str.match(re);

  for (var i = 0; i < parts.length; i++) {

    var p = parts;

    var sp = p.replace(/\x00/g, '').split('$');

     patterns.push([[sp[0]], [sp[1]]]);  

      }

return patterns;

};

function fillPattern(name, id, opacity) {

    var desc6 = new ActionDescriptor();

    desc6.putEnumerated( charIDToTypeID('Usng'), charIDToTypeID('FlCn'), charIDToTypeID('Ptrn') );

        var desc7 = new ActionDescriptor();

        desc7.putString( charIDToTypeID('Nm  '), name );

        desc7.putString( charIDToTypeID('Idnt'), id);

    desc6.putObject( charIDToTypeID('Ptrn'), charIDToTypeID('Ptrn'), desc7 );

    desc6.putUnitDouble( charIDToTypeID('Opct'), charIDToTypeID('#Prc'), opacity );

    desc6.putEnumerated( charIDToTypeID('Md  '), charIDToTypeID('BlnM'), charIDToTypeID('Nrml') );

    try{

    executeAction( charIDToTypeID('Fl  '), desc6, DialogModes.NO );

    }catch(e){}

};

 

 

Votes

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines