Skip to main content
Participant
October 4, 2022
Answered

Neue Größe in Zeichenfläche schreiben mit Skript

  • October 4, 2022
  • 2 replies
  • 357 views

Hallo Zusammen, 
ich versuche seit zwei Tagen ein Skript zu schreiben, um hunderte .ai-Dateien via Skript auf die gleiche Zeichenfläche-Größe zu bringen. 
Mein Skript läuft soweit auch wie gewollt durch, nur wird die neu berechnete Größe nicht in die Zeichenfläche eingetragen. D.h. die Zeichenfläche verändert ihre Größe nicht. 

 

 

 

#target Illustrator

var OPTIONS = {
    size   : 144.566895,
    width  : 144.566895,
    height : 144.566895
};
app.userInteractionLevel.DISPLAYALERTS
    var dir = Folder.selectDialog("Where?");
    var files = dir.getFiles("*.ai");
    
     OPTIONS.size = Window.prompt(
			"Enter New Artboard size in pixels as WxH ( Example: 250x300 )", 144.566895,title);

    // var doc = app.open(files);
            
      for (var j = 0; j < files.length; j++) {

          var doc = app.open(files[j]);
          
			var title = "Resize All Artboards";

            var width  = OPTIONS.width;
          var height = OPTIONS.height;
          
          var idoc = app.activeDocument;

          var ab = idoc.artboards[0];
			
			
            // var abBounds = doc.artboards[j].artboardRect; // left, top, right, bottom
          var abBounds = ab.artboardRect; // left, top, right, bottom
          

        //   Window.alert(ab);
           Window.alert(abBounds);
          
            var ableft   = abBounds[0];
            var abtop    = abBounds[1];
            var abwidth  = abBounds[2] - ableft;
            var abheight = abtop- abBounds[3];

            var abctrx   = abwidth / 2 + ableft;
            var abctry = abtop - abheight / 2;
          
        //   Window.alert(width);
        //   Window.alert(height);

            var ableftNew   = abctrx - width  / 2;
            // Window.alert(ableft)
          var abtopNew = abctry + height / 2;
            // Window.alert(abtop)
          var abrightNew = abctrx + width / 2;
            // Window.alert(abright)
          var abbottomNew = abctry - height / 2;
            // Window.alert(abbottom)
        
          var test = app.activeDocument.artboardRect = [abBounds[0], abBounds[1], abBounds[2], abBounds[3]];
        //   var test = app.activeDocument.artboardRect = [ableftNew, abtopNew, abrightNew, abbottomNew];
            Window.alert(test);
            app.activeDocument.artboardRect = [abBounds[0], abBounds[1], abBounds[2], abBounds[3]];

          
        doc.close(SaveOptions.SAVECHANGES);
}
     

 

 

 

 Weiß jemand, woran es liegen kann? 

3 Beispiel .ai-Dateien zum ausprobieren hänge ich mit an :https://drive.google.com/drive/folders/1kslWAPYwdXeZRihVg4rZKlDapho9dgLp?usp=sharing

This topic has been closed for replies.
Correct answer femkeblanco

The line before last should be

 

app.activeDocument.artboards[0].artboardRect = [ableftNew, abtopNew, abrightNew, abbottomNew];

 

(artboards[0] is missing in all similar statements in the script.)

2 replies

pixxxelschubser
Community Expert
Community Expert
October 4, 2022

Hallo @EliaB82B 

wie dir @femkeblanco bereits geschrieben hat: du verwendest in deinem Script die ausgelesenen Koordinaten des Originalartboards. Das heißt nicht anderes als die Größe des Artboards mit der originalen Größe zu ersetzen. Verwende deine "New-Koordinaten". dann sollte es auch funktionieren.

 

Was sich mir allerdings nicht ganz erschließt - wie du mit deinem bisherigen Scriptaufbau und deiner Variable "Options" etwas anderes als ein quadratisches Artboard erstellen kannst.

EliaB82BAuthor
Participant
October 12, 2022

Also mit den rechteckigen Motiven hat es auch geklappt. Keine Ahnung wieso 😄

femkeblanco
femkeblancoCorrect answer
Legend
October 4, 2022

The line before last should be

 

app.activeDocument.artboards[0].artboardRect = [ableftNew, abtopNew, abrightNew, abbottomNew];

 

(artboards[0] is missing in all similar statements in the script.)

EliaB82BAuthor
Participant
October 12, 2022

Thank you! Adding that"0" made the script work!