選択したオブジェクトの50%複製を元のオブジェクトの中心に配置し、全体を選択して複合パスによりドーナツ形状を作成してみます。
/* composite_path.jsx */
#target illustrator
// ドキュメントの存在を確認
if (app.documents.length > 0) {
    var doc = app.activeDocument;
    // オブジェクトが選択されているかを確認
    if (app.selection.length > 0) {
        for (var i = 0; i < app.selection.length; i++) {
            var selectedObject = app.selection[i];
            if (selectedObject.typename == "PathItem") {
                // オブジェクトの中心を計算
                var centerX = selectedObject.position[0] 
                + selectedObject.width / 2;
                var centerY = selectedObject.position[1] 
                - selectedObject.height / 2;
                // オブジェクトを複製して50%に縮小
                var duplicatedObject = selectedObject.duplicate();
                duplicatedObject.resize(50, 50); 
                // 幅と高さを50%に縮小
                // 必要であれば、ここを好みの比率に変更                // 複製されたオブジェクトの中心を計算
                var duplicatedCenterX = duplicatedObject.position[0] 
                + duplicatedObject.width / 2;
                var duplicatedCenterY = duplicatedObject.position[1] 
                - duplicatedObject.height / 2;
                // 複製されたオブジェクトを元のオブジェクトの中心に配置
                duplicatedObject.position = [centerX 
                    - duplicatedObject.width / 2, centerY 
                    + duplicatedObject.height / 2];
                // 元のオブジェクトと複製されたオブジェクトを選択
                selectedObject.selected = true;
                duplicatedObject.selected = true;
                // 複合パスを作成
                doc.selection = [selectedObject, duplicatedObject];
                app.executeMenuCommand('compoundPath');
            }
        }
        alert("変なドーナツが作成されました。");
    } else {
        alert("オブジェクトを選択してください。");
    }
} else {
    alert("ドキュメントが開かれていません。");
}
/* composite_path.jsx */任意のオブジェクトを選択して実行すると・・・

また、塗りの有無に関係なくオープンパスでも・・・
問題ありません。







 
 
 

 
