>輪になってる部分はあります
…が、複合パスとどう違うのか、よくわかりませんが
ChatGPTをこき使ってみました
「illustratorのスクリプトを書いてください
自分で書けるんですがめんどくさいのです
ドキュメント上のpathItemを1つずつ、アートボードサイズでsvg形式で保存するやつです。
複合パスは存在しないので考慮しなくていいです。
段取りは以下に沿ってください。
1 すべてのpathItemがアートボードの外へ出るように移動、またはアートボードのほうを移動。移動量は覚えておく
2 pathItemsでループし、1つずつ工程1の移動量の反対ぶん移動して、アートボード内にpathItemが1こだけある状態にする
3 コピーを保存:svg形式
4 工程2で移動したpathItemを削除
5 ループ抜け、終了報告」
というプロンプトでした。
書いてもらったスクリプトこれです。
かんたんなテストでは問題なさげでした。
// pathItemsを1つずつアートボードサイズでSVG保存するスクリプト
// 複合パスは考慮しない(単純なpathItemのみ)
// by ChatGPT(怠け者対応バージョン)
(function () {
if (app.documents.length === 0) {
alert("ドキュメントを開いてください。");
return;
}
var doc = app.activeDocument;
var ab = doc.artboards[doc.artboards.getActiveArtboardIndex()];
var abRect = ab.artboardRect; // [左, 上, 右, 下]
var abLeft = abRect[0];
var abTop = abRect[1];
var abRight = abRect[2];
var abBottom = abRect[3];
// ===== 工程1:全pathItemをアートボードの外へ移動 =====
var moveX = abRight - abLeft + 100; // 適当にアートボード幅ぶん右へ出す
var moveY = 0; // 縦方向移動はなし
for (var i = 0; i < doc.pathItems.length; i++) {
var p = doc.pathItems[i];
p.translate(moveX, moveY);
}
// 保存フォルダを指定
var destFolder = Folder.selectDialog("SVGを書き出すフォルダを選択してください");
if (!destFolder) return;
// ===== 工程2〜4:ループで1個ずつSVG保存 =====
var total = doc.pathItems.length;
for (var i = total - 1; i >= 0; i--) {
var p = doc.pathItems[i];
// 工程2:対象pathItemをアートボード内に戻す
p.translate(-moveX, -moveY);
// 工程3:コピーを保存(SVG形式)
// SVGファイル名を path_001.svg のように
var fileName = "path_" + ("000" + (total - i)).slice(-3) + ".svg";
var saveFile = new File(destFolder + "/" + fileName);
// SVGオプション設定
var options = new ExportOptionsSVG();
options.embedRasterImages = true;
options.fontSubsetting = SVGFontSubsetting.None;
options.coordinatePrecision = 3;
options.preserveEditability = false;
// 書き出し
doc.exportFile(saveFile, ExportType.SVG, options);
// 工程4:pathItem削除
p.remove();
}
// ===== 工程5:終了報告 =====
alert("完了しました!\n" + total + " 個の pathItem をSVGとして書き出しました。");
})();
スクリプトに不慣れな場合、こちら便利なのでどうぞ
https://tama-san.com/jsx_downloader.html
スクリプト部分をまるごとコピーして、リンク先にペーストしてください。
結果に不満点があれば、同じ要領でChatGPTやClaudeなどに直してもらうとよいかもです。
... View more