pathをひっくり返す

ここに来てなかなかの多忙状態です。暑さでばて気味の体には少々きつかったりします。
話は全く関係ないのですが、帰宅すると娘が両腕をふりまわしながらおかえり〜と言いつつ突撃してきます。微笑ましい光景の様にも見えますが、問題は彼女の振り回す腕の位置です。絶妙にわたしの股間にフィットします。油断すると大変な事になります。まあ、数回やられているのですが…結構恐怖です。
このところActionScriptばかりだったのでちょっとExtendScriptねたで。しかしながら、超がつく小ネタです。
Illustratorなのですが、線分に設定した矢印を反転させたかったのです。でも、なんだかプロパティが見つかりません。これは困りました。どうしようかと思案した結果の力技です。

下のイメージを見て頂ければ一目瞭然です。before、after共に始点に矢印が付いています。

reversepath.png

あんまりひっぱってもなんですのでコードを

var spt = new Array();
var tg = app.activeDocument.selection[0]
if (tg.typename ==”PathItem”){            
    for (i=0;i<tg.pathPoints.length;i++){
        spt.push(tg.pathPoints[i].anchor);
        spt.push(tg.pathPoints[i].leftDirection);
        spt.push(tg.pathPoints[i].rightDirection);
        }
    for (i=0;i<tg.pathPoints.length;i++){
        tg.pathPoints[i].leftDirection = spt.pop();
        tg.pathPoints[i].rightDirection = spt.pop();
        tg.pathPoints[i].anchor = spt.pop();
        }
    }<tg.pathpoints.length;i++){ spt.push(tg.pathpoints[i].anchor);="" spt.push(tg.pathpoints[i].leftdirection);="" spt.push(tg.pathpoints[i].rightdirection);="" }="" for="" (i="0;i<tg.pathPoints.length;i++){" tg.pathpoints[i].leftdirection="spt.pop();" tg.pathpoints[i].rightdirection="spt.pop();" tg.pathpoints[i].anchor="spt.pop();" }

選択されたpathのpathpointプロパティを片っ端から順番にpushします。
全部取得したら今度はpopしていきます。非常に単純ですね。

ten_a

Graphic Designer, Scripter and Coder. Adobe Community Professional.

シェアする

コメントを残す