Skip to content
fabiantheblind edited this page May 4, 2016 · 4 revisions

    /*
    This script creates a 2 dimensional array to create a matrix
    you can access object by the number of the column or the row
    
     
            X----0----1----2----3----4----5----6----7
            *--------------------------------------->
    C       Y    0    0    0    0    0    0    0    0
            |    |    |    |    |    |    |    |    |
    O       |    1    1    1    1    1    1    1    1
            |    |    |    |    |    |    |    |    |
    O       |    2    2    2    2    2    2    2    2
            |    |    |    |    |    |    |    |    |
    R       |    3    3    3    3    3    3    3    3
            |    |    |    |    |    |    |    |    |
    D       |    4    4    4    4    4    4    4    4
            |    |    |    |    |    |    |    |    |
    I       |    5    5    5    5    5    5    5    5
            |    |    |    |    |    |    |    |    |
    N       |    6    6    6    6    6    6    6    6
            |    |    |    |    |    |    |    |    |
    A       |    7    7    7    7    7    7    7    7
            |    |    |    |    |    |    |    |    |
    T       |    8    8    8    8    8    8    8    8
            |    |    |    |    |    |    |    |    |
    E       |    9    9    9    9    9    9    9    9
            |    |    |    |    |    |    |    |    |
    S       V    10   10   10    10  10   10   10   10
    
    So you can access the object in the upper left corner
    via:
    matrix[ 0][ 0] // upper left
    matrix[ 7][10] // is the lower right corner
    
    */
    
    var ph = 100; // page height for better handling
    var pw = 300; // page width for better handling
    
    
    var doc = app.documents.add({
            /*Creae a doc with some settings*/
            facingPages:false,
            
            documentPreferences:{
                pageHeight: ph,
                pageWidth: pw
                }
            });
    
    var page = doc.pages[0]; // get the first page
    
    var diam = 10;// the diameter of the the ovals
    
    
    var matrix = new Array(); // his will hold all arrays this is X columns
    
    /*
    Now make a loop in a loop and create some circles
    it calcs the position of the ovals and creates the 2 dim Array
    */
    for(var x1 = 0; x1 < pw;x1 = x1 + diam){
        rows = new Array();
        /*
    
        we need a counter to create the matrix like this rows[count] = oval;
        if we would use rows.push(oval) we would not need this counter
        */
        var count = 0;
        for(var y1 = 0; y1 < ph;y1 = y1 +diam){
            var y2 = y1 + diam;// now we have the y1 coord we need to create y2
            var x2 = x1 + diam;// now we have the x1 coord we need to create x2
    
            // create a oval
            var oval = page.ovals.add({
                geometricBounds:[y1,x1,y2,x2],
                strokeWeight:0,
                fillColor:doc.swatches[3] /* This is black on creation */
            });
            // now add the oval to the row
            rows[count] = oval;
            count++;// increase count
            }
    
            matrix.push(rows); // and add another row to the matrix
        }
    
    
    var X = 3; // this is how we now can select the objects
    var Y = 5; // this is how we now can select the objects
    alert("HI there I am the object of the type: " + matrix[X][Y].constructor.name+"\n"+
     "at matrix coordinate:"+" X: " + X + "|| Y: " + Y);// set some properties
    
    matrix[X][Y].strokeWeight = 25;
    matrix[X][Y].strokeColor = doc.swatches[2];
    matrix[X][Y].bringToFront();
    
    
Clone this wiki locally