いつも訪問していただきありがとうございます。
今回は、Illustratorを使って図面を作成しているかた向けに、
1. 図面の寸法入力を時短したい
2. 引き出し線の手間を省きたい
3. 図面の作成時間を短縮したい
こんな課題を解決する方法をご紹介します。
この記事を書いている僕は、Illustrator歴は15年以上ほど。
現在もIllustratorを活用して図面作成からデザインまで
バリバリこなしています。
図面作成において、寸法入力は欠かせない作業ですが、
これまでの手作業では時間と労力がかかります。
しかし、スクリプトの力を借りれば、その手間を大幅に
削減することができます。
そこで、図面に寸法を自動で入れるスクリプトを作成したので、
基本的な使い方とスクリプトコードを解説します。
是非、本記事を参考にして、図面作業の効率化に繋げてください
それでは、どうぞ
【自動で寸法が入るスクリプト】の使い方
このスクリプトは、選択したオブジェクトやパスの寸法を計算し、
それを指定した場所に表示することができます。
ちなみに、スクリプトの実行方法を知りたい方は、
こちらの記事を参考にしてください
早速スクリプトの説明に入ります。
使い方は、とてもシンプルで
1.Illustratorファイルを開く
2.寸法を表示したいオブジェクトやパスを選択する
3.【寸法表示】スクリプトを起動する
4.起動したウインドウパネルで表示位置や文字サイズを指定する
5.【寸法表示】のボタンを押す
すると、寸法が計算され、指定した位置に表示されます。
スクリプトコードの解説
今回作成したコードと一緒にコメントアウトも書いているので、カスタムする際の参考にしてください。
//ウインドウパネルの設定 var win = new Window('dialog','サイズ',[100,100,275,350]);//dialogタイプのウィンドウを選択 var chkBox01 = win.add("checkbox",[10,10,80,30],"ヨコ寸法"); var btn01 = win.add("radiobutton",[90,10,140,30],"上"); var btn02 = win.add("radiobutton",[130,10,170,30],"下"); var chkBox02 = win.add("checkbox",[10,35,80,55],"タテ寸法"); var btn03 = win.add("radiobutton",[90,35,125,55],"左"); var btn04 = win.add("radiobutton",[130,35,165,55],"右"); win.add("statictext",[10,80,115,110],"フォントサイズ:"); var font = win.add("edittext",[115,85,145,110],"10"); win.add("statictext",[150,85,180,110],"pt"); win.add("statictext",[10,110,120,130],"引出し距離:"); var drawer = win.add("edittext",[90,110,120,130],"7"); win.add("statictext",[130,110,170,130],"mm"); win.add("statictext",[10,135,70,150],"縮尺率:"); var btn07 = win.add("radiobutton",[60,135,110,150],"原寸"); var btn08 = win.add("radiobutton",[115,135,170,150],"1/10"); var btn09 = win.add("radiobutton",[10,160,170,175],"その他:1/"); var scale = win.add("edittext",[100,160,170,180],""); var clickBtn = win.add("button",[10,190,160,230],"寸法表示"); //初期設定ここから chkBox01.value = true; btn01.value = true; btn02.value = false; chkBox02.value = true; btn03.value = false; btn04.value = true; btn07.value = true; btn08.value = false; btn09.value = false; //初期設定ここまで //ウインドウパネルの設定ここまで clickBtn.onClick = function(){ { win.close(); }//ダイアログを閉じる var docObj = activeDocument; var selObj = docObj.selection; var aLayerObj = docObj.activeLayer; for(var i=0; i0){ var txtObjW = aLayerObj.textFrames.add(); txtObjW.contents = (wMM * rate()) + "mm"; //rate() 関数 if(btn01.value === true){ txtObjW.position = [x1 + (width / 2),y1 + (dtp + 25)]; } else { txtObjW.position = [x1 + (width / 2),y2 - (dtp + 10)]; }; txtObjW.paragraphs[0].justification = Justification.CENTER; //文字のセンター揃え txtObjW.paragraphs[0].fillColor = setCMYKColor(0,0,0,80); //塗り指定 txtObjW.paragraphs[0].size = fontSize; //文字サイズ txtObjW.note = "横 寸法"; //属性 var lineObjW = aLayerObj.pathItems.add(); if(btn01.value === true){ lineObjW.setEntirePath([[x1,y1 + dtp],[x1,y1 + (dtp + 8.5)],[x2,y1 + (dtp + 8.5)],[x2,y1 + dtp]]); } else { lineObjW.setEntirePath([[x1,y2 - dtp],[x1,y2 - (dtp + 8.5)],[x2,y2 - (dtp + 8.5)],[x2,y2 - dtp]]); }; lineObjW.filled = false; lineObjW.stroked = true; lineObjW.strokeWidth = 0.283; lineObjW.strokeColor = setCMYKColor(0,0,0,80); lineObjW.note = "横 引き出し線"; }; }; //横幅の設定ここまで //縦幅の設定ここから if(chkBox02.value === true){ if(hMM > 0){ var txtObjH = aLayerObj.textFrames.add(); txtObjH.contents = (hMM * rate()) + 'mm'; if(btn03.value === true){ txtObjH.position = [x1 - (dtp + 15),y1 - (height/2.2)]; txtObjH.paragraphs[0].justification = Justification.RIGHT; }else { txtObjH.position = [x2 + (dtp + 15),y1 - (height/2.2)]; txtObjH.paragraphs[0].justification = Justification.LEFT; }; txtObjH.paragraphs[0].fillColor = setCMYKColor(0,0,0,80); txtObjH.paragraphs[0].size = fontSize; txtObjH.note = '縦 寸法'; var lineObjH = aLayerObj.pathItems.add(); if(btn03.value === true){ lineObjH.setEntirePath([[x1 - dtp,y1],[x1 - (dtp + 8.5),y1],[x1 - (dtp + 8.5),y2],[x1 - dtp,y2]]);//右に表示 }else{ lineObjH.setEntirePath([[x2 + dtp,y1],[x2 + (dtp + 8.5),y1],[x2 + (dtp + 8.5),y2],[x2 + dtp,y2]]);//左に表示 }; lineObjH.filled = false; lineObjH.stroked = true; lineObjH.strokeWidth = 0.283; lineObjH.strokeColor = setCMYKColor(0,0,0,80); lineObjH.note = '縦 引き出し線'; }; };//縦幅の設定ここまで };//for };//function //小数点第3位まで表示する計算式 function point(num){ return Math.round(num * 1000) / 1000; }; //CMYKの設定 function setCMYKColor(c,m,y,k){ var CMYK = new CMYKColor(); CMYK.cyan = c; CMYK.magenta = m; CMYK.yellow = y; CMYK.black = k; return CMYK; }; //縮尺率の計算式 function rate(){ if(btn07.value === true){ var ed = 1; }else { if(btn08.value === true){ var ed = 10 ; } else { if(btn09.value === true){ var ygyg = eval(scale.text); var ed = ygyg; }else{}; }; }; return ed ; }; win.show();//windowを表示
免責事項
- このページで配布しているスクリプトを無断で転送・販売
・配布することは禁止です。 - アプリケーションのバージョンアップの内容によって
利用できなくなる場合がありますのでご了承ください。 - このスクリプトによって起きるいかなる不具合や損害も、
責任を負いません。
ご利用の際は自己責任にてお願いいたします。