-
Notifications
You must be signed in to change notification settings - Fork 0
/
P13_Laser_v0.2.0 BETA.jsx
73 lines (62 loc) · 2.25 KB
/
P13_Laser_v0.2.0 BETA.jsx
1
#target illustrator// Sbloccare tutti i livelli bloccatifunction unlockLockedLayers(doc) { for (var i = 0; i < doc.layers.length; i++) { var layer = doc.layers[i]; if (layer.locked) { layer.locked = false; // Se desideri anche sbloccare gli oggetti bloccati all'interno di questo livello, usa il codice seguente: unlockLockedItems(layer); } }}// Funzione ricorsiva per sbloccare gli oggetti bloccati all'interno di un livellofunction unlockLockedItems(parent) { for (var i = 0; i < parent.pageItems.length; i++) { var item = parent.pageItems[i]; if (item.locked) { item.locked = false; } } for (var j = 0; j < parent.layers.length; j++) { unlockLockedItems(parent.layers[j]); }}// Cancellare tutti i livelli vuotifunction deleteEmptyLayers(doc) { for (var i = doc.layers.length - 1; i >= 0; i--) { var layer = doc.layers[i]; if (layer.pageItems.length === 0) { layer.remove(); } }}// Cancellare tutti gli elementi fuori dalla tavola da disegnofunction deleteItemsOutsideArtboard(doc) { var artboard = doc.artboards[doc.artboards.getActiveArtboardIndex()]; var artboardRect = artboard.artboardRect; // [x1, y1, x2, y2] in punti for (var i = doc.pageItems.length - 1; i >= 0; i--) { var item = doc.pageItems[i]; if (!isItemInsideArtboard(item, artboardRect)) { item.remove(); } }}// Funzione per verificare se un elemento è dentro la tavola da disegnofunction isItemInsideArtboard(item, artboardRect) { var itemBounds = item.visibleBounds; // [x1, y1, x2, y2] in punti // Verifica se l'elemento è interamente o parzialmente dentro la tavola return !(itemBounds[2] < artboardRect[0] || itemBounds[0] > artboardRect[2] || itemBounds[1] > artboardRect[1] || itemBounds[3] < artboardRect[3]);}// Esecuzione degli script in sequenzaif (app.documents.length > 0) { var doc = app.activeDocument; // Esegui script unlockLockedLayers(doc); deleteEmptyLayers(doc); deleteItemsOutsideArtboard(doc); alert("Operazioni completate.");} else { alert("Nessun documento aperto. Apri un documento e riprova.");}