パスオブジェクトから「簡易的な立体のようなもの」を作るスクリプト Illustrator

スポンサーリンク
 
  • 610月別訪問者数:

こんちくわ。
またへんてこなイラレスクリプト作ってみました。
一応効果の3D機能でも同じような事できるんだけど

ダイアログからぺんっぺんっと移動距離を入力すると
立体の面が作られて、(立体のようなもの)ができるというスクリプト

パスポイントの前後の関係でおかしな罫線がでてるところは面を前面にだしたりするとそれらしくなります。
ものすごーーい中途半端なスクリプトですので

注意)曲線あると大変な事になります!
注意)ハンドルでてるとおかしくなっちゃう!
注意)複合パスはやめてねえええええ!

という限られた条件でしか動きませんのでご了承ください。

あくまで「立体のようなもの」なので遠近感とかつけたければアンカーをきゅっきゅしてみてね

var sel=app.activeDocument.selection;
lay = app.activeDocument.activeLayer;
var dia = new Window("dialog", "簡易立体作成", [0,0,150,180]);
dia.pane1 = dia.add("panel",[5,10,140,60],"横方向");
dia.tex1 = dia.pane1.add("edittext",[10,10,100,30]);
dia.add("statictext",[110,30,240,50],"pt");    
dia.pane2 = dia.add("panel",[5,70,140,120],"縦方向");
dia.tex2 = dia.pane2.add("edittext",[10,10,100,30]);
dia.add("statictext",[110,90,240,110],"pt");
dia.bot2 = dia.add("button",[10,140,100,170],"実行", { name:"ok"});
dia.tex1.text=5;
dia.tex2.text=5;
dia.center();
dia.show();
var X=Number (dia.tex1.text);
var Y=Number (dia.tex2.text);
var Path=[];
Path[0]=sel[0];
Path[1]=sel[0].duplicate();
Path[1].left=Path[1].left+X;
Path[1].top=Path[1].top+Y;
for (var i=0; i<Path[0].pathPoints.length; i++){  
    Path[i+2] = lay.pathItems.add();
    var anc1 =Path[0].pathPoints[i].anchor;
    var anc2 =Path[1].pathPoints[i].anchor;
    if(i!=Path[0].pathPoints.length-1){
        var anc3 =Path[1].pathPoints[i+1].anchor;
        var anc4 =Path[0].pathPoints[i+1].anchor;
    }else{
        var anc3 =Path[1].pathPoints[0].anchor;
        var anc4 =Path[0].pathPoints[0].anchor;
    }
    Path[i+2].setEntirePath([anc1,anc2,anc3,anc4]);
    Path[i+2].closed=true;
}
Path[0].zOrder (ZOrderMethod.BRINGTOFRONT);

コメント