このサイトはアフィリエイト広告を利用してます

選択したオブジェクトに寸法を追加する

Illustratorで作成した図面に自動で寸法を追加するスクリプト

いつも訪問していただきありがとうございます。
今回は、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; i 0){
                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を表示




免責事項

注意してい女性

  • このページで配布しているスクリプトを無断で転送・販売
    ・配布することは禁止です。
  • アプリケーションのバージョンアップの内容によって
    利用できなくなる場合がありますのでご了承ください。
  • このスクリプトによって起きるいかなる不具合や損害も、
    責任を負いません。
    ご利用の際は自己責任にてお願いいたします。




ガネメ現役サラリーマン

投稿者の過去記事

◇このブログでは、15年以上DTPデザイナーとして、学んできたデザインやパソコンのセキュリティ知識・参考になった書籍などを紹介しています。
たまに、脇道にそれることもあります。

◇このブログはアフィリエイト広告を利用しています

◇取得資格
・情報セキュリティマネジメント
・ITパスポート
・色彩検定 2級
・色彩検定 UC級
・屋外広告士
・第2種電気工事士
その他・・・・

プロフィール

face

ガネメ
鹿児島県在住
現役サラリーマン

◇このブログでは、15年以上DTPデザイナーとして、学んできたデザインやセキュリティ知識、参考になった書籍などを紹介しています。
たまに、脇道にそれることもあります

◇取得資格
・情報セキュリティマネジメント
・ITパスポート
・色彩検定 2級
・色彩検定 UC級
・屋外広告士
・第2種電気工事士
その他・・・・

詳しいプロフィールはこちら

アーカイブ

カテゴリー

使用中のWPのテーマ

使用中のレンタルサーバー

ピックアップ記事

  1. メルカリハイ
    フリマアプリ「メルカリ」を利用している人達の意識・実態調査の結果がメルカリ総合研究所より発表がありま…
  2. 雪山
    ノートパソコンで長時間の作業や、動画編集などの高い負荷のかかる作業を行なっていると、ノートパソコン…
  3. mercari_logo_vertical
    メルカリとは、スマートフォン向けのC2CのECサービスを提供する日本の企業、および、同社が提供するモ…




PAGE TOP
%d人のブロガーが「いいね」をつけました。