水曜日, 2月 18, 2026

JavaScriptでAI遊び 87 
Illustratorでオープンパッスをクローズパスに

Illustratorでグループ化されていても選択したオープンパッスを一気にクローズパスに変更します。

/*
Illustrator Script
オープンパッスをクローズパスに
*/

if (app.documents.length === 0) {
alert("ドキュメントがありません");
exit();
}

var doc = app.activeDocument;
var sel = doc.selection;

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

var closedCount = 0;

// 再帰的に処理する関数
function closeOpenPaths(item) {

// パスの場合
if (item.typename === "PathItem") {
if (!item.closed) {
item.closed = true;
closedCount++;
}
}

// グループの場合
else if (item.typename === "GroupItem") {
for (var i = 0; i < item.pageItems.length; i++) {
closeOpenPaths(item.pageItems[i]);
}
}

// 複合パスの場合
else if (item.typename === "CompoundPathItem") {
for (var j = 0; j < item.pathItems.length; j++) {
if (!item.pathItems[j].closed) {
item.pathItems[j].closed = true;
closedCount++;
}
}
}
}

// 選択オブジェクトを処理
for (var i = 0; i < sel.length; i++) {
closeOpenPaths(sel[i]);
}

alert(closedCount + " 個のオープンパスをクローズしました");


例えば、5つのグループ化されたオープンパッスを選択し・・・

実行すれば、直ぐに上の様にパレットが表示されるので[OK]で・・・

一気にクローズパスに変換されます。

曲面の場合も・・・

ダイレクト選択ツールで一部分を削除した状態であれば・・・

motoの形状に戻せます。コレはハンドルが残っているからです。もしハンドルが残っていない場合は直線で結ばれます。