月曜日, 10月 13, 2025

JavaScriptでAI遊び 74 
Illustratorでアンカーポイントをカウント

Illustratorで選択したオブジェクトのアンカーポイントの数をカウントします。
JavaScriptでAI遊び73用に作成していました。


// ===============================
// 選択したオブジェクトのアンカーポイント数をカウント
// ===============================
(function() {
if (app.documents.length === 0) {
alert("ドキュメントが開かれていません。");
return;
}

if (app.selection.length === 0) {
alert("オブジェクトを選択してください。");
return;
}

var sel = app.selection;
var totalPoints = 0;
var pathCount = 0;

for (var i = 0; i < sel.length; i++) {
if (sel[i].typename === "PathItem") {
var path = sel[i];
totalPoints += path.pathPoints.length;
pathCount++;
} else if (sel[i].typename === "GroupItem") {
totalPoints += countPointsInGroup(sel[i]);
pathCount++;
}
}

alert("アンカーポイントの合計数: " + totalPoints);

// グループ内も再帰的にカウント
function countPointsInGroup(group) {
var count = 0;
for (var j = 0; j < group.pageItems.length; j++) {
var item = group.pageItems[j];
if (item.typename === "PathItem") {
count += item.pathPoints.length;
} else if (item.typename === "GroupItem") {
count += countPointsInGroup(item);
}
}
return count;
}
})();

元データのポイント数:4096
同一色合体後のポイント数:1358

JavaScriptでAI遊び 73で
余分なポイントを削除後のポイント数:722