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の形状に戻せます。コレはハンドルが残っているからです。もしハンドルが残っていない場合は直線で結ばれます。








































