Mesa de trabajo duplicada con script Illustrator CC

Intenté crear una acción para automatizar la "mesa de trabajo duplicada" en Illustrator CC, pero no fue posible. Me gustaría saber si hay algún script para hacer esto.ingrese la descripción de la imagen aquí

Gracias

Respuestas (2)

Sí, el problema es que no es una acción grabable, y aunque parece simple en la superficie, aparentemente hay mucho para duplicar una mesa de trabajo. Pero, puede aumentar el código con sus necesidades. Este fragmento creará una nueva mesa de trabajo y usará copiar/pegar para colocar los elementos en la nueva mesa de trabajo. Si la nueva mesa de trabajo está fuera del lado de la mesa de trabajo, se trata de una edición de código. Si ya tiene 1000 mesas de trabajo y al agregar la siguiente se produce un error o se bloquea, se trata de una edición de código. Si tiene un problema con la forma en que desecha su selección existente o el portapapeles, ¡es mejor que crea que es una edición de código!

¡Pero aquí está mi muestra simple!

#target illustrator
function test(){
    var doc = app.activeDocument;
    var thisBoardIndex = doc.artboards.getActiveArtboardIndex();
    var thisBoard = doc.artboards[thisBoardIndex];
    var thisRect = thisBoard.artboardRect;
    var lastBoard = doc.artboards[doc.artboards.length - 1];
    var lastRect = lastBoard.artboardRect;
    doc.selectObjectsOnActiveArtboard();
    app.copy();
    var newBoard = doc.artboards.add(thisRect);
    var offsetH = 20;
    newBoard.artboardRect = [
        lastRect[2] + offsetH,
        lastRect[1],
        lastRect[2] + offsetH + (thisRect[2] - thisRect[0]),
        lastRect[3]
    ];
    newBoard.name = thisBoard.name + " copy";
    app.executeMenuCommand("pasteFront");
    doc.selection = null;
};
test();
Amigo, lo que hiciste me funcionó perfectamente. Intenté pegar el contenido en una nueva capa, pero no funcionó. ¿Tienes una solución para esto? Si no tienes, no hay problema, has ayudado mucho. yo añadítargetLayer = doc.layers.add();
Luego, tendría que hacer un bucle y mover toda la selección a la nueva capa, después de que se ejecute el comando pegarFront y antes de anular la selección de las cosas. Es posible que el ciclo deba retroceder: for(var i = doc.selection.length - 1; i > -1; i--), y el comando de movimiento es así: doc.selection[i].move(targetLayer, ColocaciónDeElementos.COLOCAREND);
@Silly-V arroja el siguiente error cuando ejecuto el script: Error 1200: an illustrator error occured.... Line 13: -> newBoard.artboardRect = [. ¿Es posible arreglar esto?
Lo siento, no puedo reproducir este error en absoluto. ¿Tal vez tiene algo que ver con la forma en que se presenta su documento?

Para hacer frente a la capa tan loca como es, una es una acción grabable, por lo que podría usar eso para copiar la capa y luego ejecutar la acción como un lote en la carpeta necesaria.