documents.add(); activeDocument.defaultStroked=false;//線はなしにする。 var myH=5;//高さ var myW=5;//幅 //100色分のカラーチャートブロック for(YY=0;YY<11;YY++){ var myYY=YY*myH*11;//11コマ分移動させる for(XX=0;XX<11;XX++){ var myXX=XX*myW*11;//11コマ分移動させる CreateRect(myXX,myYY,myW,myH,YY*10,XX*10);//100色作る関数を呼ぶ } } //100色作る関数 function CreateRect(motoX,motoY,myW,myH,myYellow,myBlack){ for(Y=0;Y<11;Y++){ var myY=motoY+Y*myH;//1コマ移動 for(X=0;X<11;X++){ var myX=motoX+X*myW;//1コマ移動 var myObj=activeDocument.pathItems.rectangle(myY,myX,myW,myH);//四角 myObj.fillColor=reColor(Y*10,X*10,myYellow,myBlack); } } } function reColor(C,M,Y,K){ var myCMYK=new CMYKColor(); var myColor=new Color(); myCMYK.cyan=C; myCMYK.magenta=M; myCMYK.yellow=Y; myCMYK.black=K; myColor.cmyk=myCMYK; return myColor; }
function reColor(C,M,Y,K){ var myCMYK=new CMYKColor(); var myColor=new Color(); myCMYK.cyan=C; myCMYK.magenta=M; myCMYK.yellow=Y; myCMYK.black=K; myColor.cmyk=myCMYK; return myColor; }
var myDoc=activeDocument.pathItems; var myObj=myDoc.ellipse(Y,X,W,H);//丸 myObj.fillColor=reColor(); //reColor関数で色を返す myObj.stroked=false;//線なし myObj.opacity=50;//透明度50 var myObj=activeDocument.pathItems.ellipse(Y,X,W,H); //こんなふうにまとめて作ることもできる
colbuf=new CMYKColor(); colbuf.cyan=0; colbuf.magenta=100; colbuf.yellow=100; colbuf.black=0; M100Y100=new Color(); M100Y100.cmyk=colbuf; myDoc=activeDocument; myDoc.defaultStroked=false; myDoc.defaultFillColor=M100Y100; myDoc.pathItems.rectangle(10,20,100,200);
var myDoc=activeDocument.pathItems; var myObj=myDoc.rectangle(Y,X,W,H);//四角 myObj.fillColor=reColor(); //reColor関数で色を返す myObj.stroked=false;//線なし myObj.opacity=50;//透明度50
var myTextItem = activeDocument.textArtItems[0]; myTextItem.contents = "あいうえお"; この例では最前面のテキストの内容を "あいうえお"に変更します。
BARレイヤーに ■■■■■■■■ という8つのオブジェクトを配置しグループ化します。 それを256個複製し下記スクリプトを実行すると 白黒全パターンができます。 子供のプリキュアカード用です。 var docRef = documents[0]; Lay=docRef.layers["BAR"]; for(T=0;T<256;T++){ gro=Lay.groupItems[T]; myStr=reStr(T); for(N=0;N<8;N++){ buf=myStr.substr(N,1); if(buf=="0"){ gro.pathItems[N].fillColor=reColor(0,0,0,0); }else{ gro.pathItems[N].fillColor=reColor(0,0,0,100); } } } function reStr(xx){ myStr=xx.toString(2); myStrLen=myStr.length; if(myStrLen==1){myStr="0000000"+myStr;} else if(myStrLen==2){myStr="000000"+myStr;} else if(myStrLen==3){myStr="00000"+myStr;} else if(myStrLen==4){myStr="0000"+myStr;} else if(myStrLen==5){myStr="000"+myStr;} else if(myStrLen==6){myStr="00"+myStr;} else if(myStrLen==7){myStr="0"+myStr;} return myStr; } function reColor(C,M,Y,K){ var myCMYK=new CMYKColor(); var myColor=new Color(); myCMYK.cyan=C; myCMYK.magenta=M; myCMYK.yellow=Y; myCMYK.black=K; myColor.cmyk=myCMYK; return myColor; }
//線の設定がない選択したオブジェクトにトンボをつけます selAry=activeDocument.selection; lineW=0.1; var mypt=2.8; if(selAry.length>1){ alert("1つだけ選択して下さい。"); }else{ var X=selAry[0].left/mypt; var Y=selAry[0].top/mypt; var W=selAry[0].width/mypt; var H=selAry[0].height/mypt; //左上 drowLine(X-13,X-3,Y,Y,lineW,mypt); drowLine(X-13,X,Y+3,Y+3,lineW,mypt); drowLine(X-3,X-3,Y+13,Y,lineW,mypt); drowLine(X,X,Y+13,Y+3,lineW,mypt); //上センター drowLine(X+W/2,X+W/2,Y+13,Y+3,lineW,mypt); drowLine(X+W/2-5,X+W/2+5,Y+7,Y+7,lineW,mypt); drowEllipse(X+W/2-2,Y+7+2,4,4,lineW,mypt); //右上 drowLine(X+W+3,X+W+13,Y,Y,lineW,mypt); drowLine(X+W,X+W+13,Y+3,Y+3,lineW,mypt); drowLine(X+W+3,X+W+3,Y+13,Y,lineW,mypt); drowLine(X+W,X+W,Y+13,Y+3,lineW,mypt); //左センター drowLine(X-13,X-3,Y-H/2,Y-H/2,lineW,mypt); drowLine(X-7,X-7,Y-H/2+5,Y-H/2-5,lineW,mypt); drowEllipse(X-7-2,Y-H/2+2,4,4,lineW,mypt); //右センター drowLine(X+W+3,X+W+13,Y-H/2,Y-H/2,lineW,mypt); drowLine(X+W+7,X+W+7,Y-H/2+5,Y-H/2-5,lineW,mypt); drowEllipse(X+W+7-2,Y-H/2+2,4,4,lineW,mypt); //左下 drowLine(X-13,X-3,Y-H,Y-H,lineW,mypt); drowLine(X-13,X,Y-H-3,Y-H-3,lineW,mypt); drowLine(X-3,X-3,Y-H-13,Y-H,lineW,mypt); drowLine(X,X,Y-H-13,Y-H-3,lineW,mypt); //下センター drowLine(X+W/2,X+W/2,Y-H-13,Y-H-3,lineW,mypt); drowLine(X+W/2-5,X+W/2+5,Y-H-7,Y-H-7,lineW,mypt); drowEllipse(X+W/2-2,Y-H-7+2,4,4,lineW,mypt); //右上 drowLine(X+W+3,X+W+13,Y-H,Y-H,lineW,mypt); drowLine(X+W,X+W+13,Y-H-3,Y-H-3,lineW,mypt); drowLine(X+W+3,X+W+3,Y-H-13,Y-H,lineW,mypt); drowLine(X+W,X+W,Y-H-13,Y-H-3,lineW,mypt); } function reColor(C,M,Y,K){ var myCMYK=new CMYKColor(); var myColor=new Color(); myCMYK.cyan=C; myCMYK.magenta=M; myCMYK.yellow=Y; myCMYK.black=K; myColor.cmyk=myCMYK; return myColor; } function drowLine(X1,X2,Y1,Y2,lineW,mypt){ tomboColor=reColor(100,100,100,100); myLine=activeDocument.pathItems.add(); myLine.setEntirePath([[X1*mypt,Y1*mypt],[X2*mypt,Y2*mypt]]) myLine.filled=false; myLine.stroked=true; myLine.strokeWidth=lineW*mypt; myLine.strokeColor=tomboColor; } function drowEllipse(X,Y,W,H,lineW,mypt){ tomboColor=reColor(100,100,100,100); myObj=activeDocument.pathItems.ellipse(Y*mypt,X*mypt,W*mypt,H*mypt); myObj.filled=false; myObj.stroked=true; myObj.strokeWidth=lineW*mypt; myObj.strokeColor=tomboColor; }
//現在のドキュメントを調べておく var docRef = documents[0]; //ファイルオープン //変数inputFileはフルパス。File()はFileオブジェクトを返す関数 formatFile=open(File(inputFile)); //全アイテム分繰り返す for(i=0;i<formatFile.pageItems.length;i++) { //開いたファイルを複製して newItem = formatFile.pageItems[i].duplicate(); //最初のドキュメントに複製する newItem.moveToBeginning(docRef); } かなり効率悪そうなサンプル。 実際AppleScriptよりも遅いのでここまで書いてやめた。 AppleScriptでもduplicateを使うよりも すべてのアイテムを選択しコピーペーストするほうが速い
//最前面のドキュメント var docRef = documents[0]; //レイヤーの数 var Lnum = docRef.layers.length; var Lay=""; //レイヤーの数分繰り返し for(N=0;N<Lnum;N++){ //テキストがあるなら if(docRef.layers[N].textArtItems.length>0){ //内容を調べる con=docRef.layers[N].textArtItems[0].contents //最初の8文字が"F@I@L@E:"なら if("F@I@L@E:"==con.substr(0,8)){ //座標やレイヤー名を調べる X=docRef.layers[N].textArtItems[0].left; Y=docRef.layers[N].textArtItems[0].top; Lay=docRef.layers[N].name; con = con.substr(8); inputFile=formatFol + con; break; } } }
documents.add(DocumentColorSpace.CMYK,600,400); CMYKで W600pt H400pt mmやcmでの指定は不可 documents.add(); 引数無しでもできる。
var myDoc=activeDocument.pathItems; var myObj=myDoc.roundedRectangle(Y,X,W,H,5,5);//角R四角 myObj.fillColor=reColor(); //reColor関数で色を返す myObj.stroked=false;//線なし myObj.opacity=50;//透明度50
ファイルパスの指定方法 起動ディスクのepsフォルダ内の001.epsは MacWin共通 /eps/001.eps Macだけでは Macintosh HD:eps:001.eps Winだけでは C:\\eps\\001.eps
プリセットフォルダのスクリプトフォルダに 作成したスクリプトを入れる。 下記をtest.jsという名前で Illustrator/プリセット/スクリプトに入れる。 alert("これは練習です"); これでIllustratorを起動し ファイルメニューのスクリプトから実行する。
selAry=activeDocument.selection; for(N=0;N<selAry.length;N++){ alert(selAry[N].width); }
//↓線幅を設定(単位mm) var W=0.1; //↓色を設定(単位%) var C=0; var M=0; var Y=0; var K=100; var myCMYK=new CMYKColor(); var myColor=new Color(); myCMYK.cyan=C; myCMYK.magenta=M; myCMYK.yellow=Y; myCMYK.black=K; myColor.cmyk=myCMYK; selAry=activeDocument.selection; for(N=0;N<selAry.length;N++){ if(selAry[N].stroked){ selAry[N].strokeWidth=W*2.83; selAry[N].strokeColor=myColor; } }