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

Scripting Illustrator

New Here ,
Sep 07, 2023 Sep 07, 2023

Je souhaitais créer un effet qu'il est possible de faire sur After Effects, orienter différents objets dans une seule et même direction. 

Sur mon fichier illustrator, j'ai dupliqué plusieurs lettres que j'ai aligné en quadrillage. Je voulais orienter chacune de ces lettres de tels sortes à ce qu'elles pointent vers un seul objet (dans une seule direction). En conservant leurs positions d'origine et de manière automatisé si possible. 

Pour réaliser ceci, j'ai demandé à ChatGPT de m'aiguiller, il m'a conseillé d'écrire un Script. Il m'a fourni ce script que j'ai essayé mais rien ne fonctionne.

 

Sur mon fichier illustrator, j'ai toutes les lettres dans un seul et même calque, mais toutes disocciées l'une de l'aurtre ainis qu'un objet nommé "Target" qui permet de référence pour l'orientation de mes lettres. Toutes ces formes se trouvent sur le plan de travail, aucune n'est vérouillé, toutes sont des formes pleines, les lettres ont toutes été vectorisées d'une typographie. Mais malheuresement rien ne fonctionne.

J'aurais espérer que les lettres s'orientent en direction de l'objet Target et que par conséquent chacune est une orientation différente (puisqu'elles n'ont pas les mêmes positions), mais malheuresement, rien ne fonctionne. Est-ce que cela viens du script, ou d'ailleurs ?

 

En sachant que ChatGPT m'a fait essayé des scripts différents pour essayer d'identifier le problème, genre orientation de 45° (script basique), mais impossible de trouver la moindre réponse à cet égnime.

 

Est-ce que par hasard quelqu'un arrivera à m'aider ? 

Voici le script :

var doc = app.activeDocument;

var targetItem = doc.pageItems.getByName("Target");

var targetPoint = [targetItem.left + targetItem.width / 2, targetItem.top - targetItem.height / 2];

var selection = doc.selection;

if (selection.length === 0) { alert("Aucun objet n'est sélectionné.");

exit();

} var item = selection[0];

var itemCenter = [item.left + item.width / 2, item.top - item.height / 2];

var deltaX = targetPoint[0] - itemCenter[0];

var deltaY = targetPoint[1] - itemCenter[1];

var angle = (Math.atan2(deltaY, deltaX) * (180 / Math.PI)) - 90;

try { item.rotation = angle; alert("Rotation effectuée vers la 'Target'!");

} catch(e) { alert("Erreur lors de la rotation. Détail de l'erreur: " + e.toString());

}

TOPICS
Scripting
174
Translate
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
Guide ,
Sep 07, 2023 Sep 07, 2023

Select items to rotate. 

var doc = app.activeDocument;
var targetItem = doc.pageItems.getByName("Target");
var targetPoint = [
    targetItem.left + targetItem.width / 2, 
    targetItem.top - targetItem.height / 2
];
var selection = doc.selection;
for (var i = 0; i < selection.length; i++) {
    var item = selection[i];
    var itemCenter = [item.left + item.width / 2, item.top - item.height / 2];
    var deltaX = targetPoint[0] - itemCenter[0];
    var deltaY = targetPoint[1] - itemCenter[1];
    var angle = (Math.atan2(deltaY, deltaX) * (180 / Math.PI)) - 90;
    item.rotate(angle);
}

 

Translate
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
New Here ,
Sep 10, 2023 Sep 10, 2023
LATEST

Oh thanks a lot ! Is it working how I wanted ! 

Translate
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