【2023/12/11更新】
訪問して頂きありがとうございます。
- 表題欄を作るのに手間がかかる
- 図面が変更になるたびに表題欄の日付を修正しないといけない
- 表題欄のデザインを統一したい
図面を管理する上で、表題欄が必要になるシーンは多いです。
表題欄は、図面やデザインの管理に必要な事項(タイトル、日付、クライアント名、作成者など)を記入する見出しのようなもで、図面などに変更が加えられる際、表題欄には変更の内容や日付、変更を行った担当者の情報が記載されます。
しかし、図面の表題欄を毎回手動で作成すると、時間がかかり一貫性を保つことが難しく、フォーマットやデザインのばらつきが生じる可能性があります。
そこで本記事では、シンプルな表題欄を自動で作成してくれるIllustratorスクリプトをつくりましたのでご紹介します。
このスクリプトを利用すれば、表題欄を作成する手間がなくなりデザインも統一されるので、ぜひ最後までご覧ください。
Profile
この記事を書いている僕は、Illustratorの操作経験は15年以上ありスクリプトも自作してデザイン作業の効率化を図っています。
最近は、当ブログでも自作スクリプトを公開中
「完全無料」で作業の効率化!Illustratorスクリプト特集!
1.「表題欄の自動作成」スクリプトの概要
今回紹介するスクリプト【titleBlock.jsx】は、僕がJavaScript自作したIllustrator用のスクリプトです。
まず、この章でスクリプトのポイントや使い方について解説します。
「titleBlock.jsx」のポイント
本スクリプトのポイントは4つあります。
・表題欄(タイトル欄と日付欄)を自動でアートボードの右下に作成してくれる
・日付を自動取得し日付欄に記載してくれる
・表題欄レイヤーを作成し最下層にもってくる
・2回目以降は日付だけ更新してくれる
スクリプトの入手方法
本スクリプトは、以下からサンプルとしてダウンロードすることができます。
ダウンロードと使用については「注意事項と免責事項」に記載していますので、お読みください
スクリプトの使い方
本スクリプトは、下記の手順で使うことができます。
STEP1.スクリプトメニューから「titleBlock.jsx」選択
STEP2.スクリプトの起動
STEP3.表題欄が右下に追加される
なお、次の記事ではそもそもIllustratorスクリプトってどう使うのか、活用事例を交えて紹介しているので良ければ参考にしてください。
2.「表題欄の自動作成」スクリプトコードを公開
この章では、スクリプトコードを公開します。
なお下記の記事では、Illustratorスクリプトを自作する方法についてスクリプトコードの事例を交え解説しているのでよければ参考にしてください。
var docObj = activeDocument;
var lays = docObj.layers;
app.coordinateSystem = CoordinateSystem.ARTBOARDCOORDINATESYSTEM;
var fName = app.textFonts["KozGoPro-Regular"];
function setCMYKColor(c,m,y,k) {
var CMYK = new CMYKColor();
CMYK.cyan = c;
CMYK.magenta = m;
CMYK.yellow = y;
CMYK.black = k;
return CMYK
}
var dayZero = function (zero) {
if (zero <10) {
zero = "0" + zero;
}
return zero;
}
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth()+1;
month = dayZero(month);
var date = now.getDate();
date = dayZero(date);
var day = year +"/"+ month +"/"+ date;
try {
var newLay = lays.getByName('表題欄');
try {
var slays = lays['表題欄'];
slays.locked = false;
} catch (e) {}
docObj.selection = null;
var txtCount = docObj.layers['表題欄'].textFrames;
for (var i = 0; i < txtCount.length; i++) {
try {
txtCount[i].selected = true;
} catch (e) {}
}
var selObj = docObj.selection;
for (var i = 0; i < selObj.length; i++) {
var text = selObj[i].contents;
selObj[i].contents = text.replace(/2........./g,day);
}
slays.locked = true;
} catch (e) {
var layObj = lays.add();
layObj.name = '表題欄';
for (var i = 0; i < docObj.artboards.length; i++) {
var rect = docObj.artboards[i].artboardRect;
var left = rect[0];
var top = rect[1];
var right = rect[2];
var bottom = rect[3];
var rectObj = docObj.pathItems.rectangle(bottom+28.398,right-211.334,197.162,14.226);
rectObj.filled = false;
rectObj.stroked = true;
rectObj.storokeWidth = 1;
rectObj.strokeColor = setCMYKColor(0,0,0,50);
var lineObj = docObj.pathItems.add();
lineObj.setEntirePath([[right-94.049,bottom+28.4],[right-94.049,bottom+14.2]]);
lineObj.filled = false;
lineObj.stroked = true;
lineObj.storokeWidth = 1;
lineObj.strokeColor = setCMYKColor(0,0,0,50);
var titleObj = docObj.textFrames.add();
titleObj.contents = 'Title';
titleObj.paragraphs[0].fillColor = setCMYKColor(0,0,0,50);
titleObj.paragraphs[0].characterAttributes.textFont = fName;
titleObj.paragraphs[0].size = 5;
titleObj.left = right-208.956;
titleObj.top = bottom+26.014;
titleObj.createOutline();
var dateObj = docObj.textFrames.add();
dateObj.contents = 'Date';
dateObj.paragraphs[0].fillColor = setCMYKColor(0,0,0,50);
dateObj.paragraphs[0].characterAttributes.textFont = fName;
dateObj.paragraphs[0].size = 5;
dateObj.left = right-91.678;
dateObj.top = bottom+26.014;
dateObj.createOutline();
var textObj = docObj.textFrames.add();
textObj.contents = day;
textObj.paragraphs[0].size = 10;
textObj.paragraphs[0].fillColor = setCMYKColor(0,0,0,50);
textObj.paragraphs[0].characterAttributes.textFont = fName;
textObj.top = bottom+26.014;
textObj.left = right-77.367;
}
var sLayer = lays['表題欄'];
var bottomLayer = docObj.layers[docObj.layers.length-1];
bottomLayer.locked = false;
sLayer.move(bottomLayer,ElementPlacement.PLACEAFTER);
sLayer.locked = true;
}
3.注意事項と免責事項
本記事に記載してあるスクリプトを実行した結果生じるトラブルに関しては一切の責任を負いません。またIllustratorのアップデートにより動作が変わってしまう可能性もあります。アップデートによる動作の不具合に関しては、対処しかねるので予めご理解ください。
最後に本記事で配布しているスクリプトを無断で転送・販売・配布することは禁止いたします。
4.「表題欄の自動作成」スクリプトのまとめ
今回は、【表題欄の自動作成】スクリプトについて紹介してきました。
このスクリプト(titleBlock.jsx)は、図面やデザインの管理に必要な表題欄をアートボードの右下に自動で作成してくれるので、作業の効率化アップに繋げることができます。
ぜひ、スクリプト(titleBlock.jsx)を日常の業務で利用してみてください。
なお、Illustratorスクリプトについて学習してみたいと思った方は、次の記事でおすすめの書籍とWEBサイトについて紹介しているので良ければ参考にしてください。
というわけで今回は以上です。
『一瞬で完成!表題欄を自動作成してくれるIllustratorスクリプト』を最後までお読みいただきありがとうございました。
Illustratorスクリプトのおすすめ書籍!
また、以下の記事で今回紹介した書籍以外にもスクリプトに関する書籍を紹介しているので参考にしてください。