金曜日, 2月 21, 2025

JavaScriptでAI遊び 35 
オブジェクトのセグメントを削除しアンカーポイントを残す

オブジェクトのセグメントだけを削除しアンカーポイントだけを残します。

function splitAnchorPoints() {
var doc = app.activeDocument;
var sel = doc.selection;

if (!(sel && sel.length > 0)) {
alert("パスを選択してください。");
return;
}

for (var i = 0; i < sel.length; i++) {
if (sel[i].typename !== "PathItem") continue;
        // パスアイテムのみ処理

var path = sel[i];
var points = path.pathPoints;
var newPaths = [];

for (var j = 0; j < points.length; j++) {
var newPath = doc.pathItems.add();
newPath.setEntirePath([points[j].anchor, points[j].anchor]);
            // アンカーポイント単体のパスを作成
newPath.stroked = path.stroked;
newPath.strokeColor = path.strokeColor;
newPath.filled = false;
newPaths.push(newPath);
}
path.remove(); // 元のパスを削除
}
alert("選択したパスのアンカーポイントを切り離しました。");
}
splitAnchorPoints();

サンプルオブジェクトを選択して実行すれば・・・

アンカーポイントだけがのこります。ただし、処理直後はアウトライン表示にしないと確認できません。アンカーポイント部分で切り離す処理の試行錯誤中にできた副産物です。用途は・・・(^o^)汗