本稿はTeX & LaTeX Advent Calendar 2017の23日目の記事です。22日目はVoDさんでした。24日目はgolden_luckyさんです。
皆さんもよくご存知のようにTeXは組版ソフトウェアであり、一般的にはレポートや論文、書籍を作成するために用いられます。最終成果物の形態は様々ですが、多くは電子データ(PDFなど)のままか、あるいは紙に印刷して利用されるものがほとんどでしょう。
しかし、TeXの可能性はそれだけのことにとどまりません。
2017年の便利な世の中には、レーザーカッター(レーザー加工機)という画像データを入力として様々な素材1を切断したり彫刻したりすることのできるスゴいマシンが存在します。TeXが出力するモノは基本的には「文書」ですが、見方を変えれば「画像」を出力するソフトウェアとも言えます。ということは、TeXを用いて作成した画像(デザイン)に基いて、レーザーカッターを動かすことができそうです。
この「TeXの新たな可能性」を実証するため、今回は TeXを用いて時計の文字盤をデザインし、レーザーカッターを用いて実際に木製の時計を制作してみました。
制作の経緯
私の通っているT京大学の近くにT京藝術大学という国立の総合芸術大学があり、そこのArt Media Centerという施設にレーザーカッターが設置されています。このレーザーカッターは芸大生であれば無料で借りて利用できるということであったので、知り合いの芸大生・Iさんに全面的に協力してもらい今回の時計制作を行いました2。
作り方
さて、ここからは実際にTeXとレーザーカッターを用いて時計を制作する手順をご紹介します。時計の制作手順とは言っても、ムーブメントや針は工作時計キットを使ってしまうので、実質的には文字盤を作って簡単な組み立てを行うだけです。
1. 材料を用意する
まずは時計の材料を用意します。必要なものは以下の3つです:
- ムーブメント(モーター)
- 時計針
- 文字盤用の板
ムーブメントと時計針は規格が同じものを買った方が簡単でしょう。私はこれらをT急ハンズというお店で買いました。合計で2,000円はしないぐらいでした。
板は利用予定のレーザーカッターで加工可能な素材・サイズのものから適当に選びます。時計の外枠もレーザーカッターで切り出してしまうので、目的のサイズより大きければ形は何でも大丈夫です。私は近所のホームセンターで木板(300mm × 300mm × 5.5mmのプリント合板)を2枚購入しました(1枚は予備です)。こちらは1枚あたり数百円ほどだったと思います。

2. 文字盤のデザイン画像を作成する
材料が揃ったら、いよいよ文字盤のデザインを行います。今回はArt Media Centerの指定に基づき、入力データをAI形式(CS3互換)で作成する必要があったので、TeXで出力した元データ(PDF)をAdobe Illustratorを用いてAI形式に変換しました。
LaTeXで文字盤をデザインする
レーザーカッターの入力に用いる画像データですが、基本的にはすべての色をグレースケールで指定する必要があります(RGB値はすべて0)。そして一般的な機種・環境では「色が濃い(=黒に近い)部分ほど深く彫り込まれる」という原則が成り立ちます。特に、完全に黒い部分3は切断されます。
この方針に基いて、LaTeXで文字盤データを作成します。
どのようなツールを用いても構わないのですが、今回は現在TeX界で最もアツい画像描画パッケージであるところのTikZを利用して文字盤デザインを作成しました。また、フォント周りの設定が簡便であるという理由でLuaLaTeXを採用することにし、次のようなデザインを作成しました。
%#!lualatex
\RequirePackage{luatex85}
\documentclass[border=10mm]{standalone}
\usepackage{tikz}
% フォントの指定
\usepackage{fontspec}
\setmainfont{A-OTF-HaruGakuStd-Light}
% カラーの指定
\usepackage{xcolor}
\definecolor{base-gray}{gray}{0.2}
% 文字盤サイズの指定
\newlength{\radius}
\setlength{\radius}{140mm}
\begin{document}
\begin{tikzpicture}[line cap=round]
% 外枠
\draw [draw=black, line width=0.001pt] (0,0) circle (\radius);
\filldraw [color=base-gray, fill=white, line width=.04\radius] (0,0) circle (\radius);
% 文字盤
\foreach \angle / \label in {
0/3, 30/2, 60/1, 90/12, 120/11, 150/10, 180/9,
210/8, 240/7, 270/6, 300/5, 330/4
}{
\draw [line width=0.02\radius, color=base-gray]
(\angle:0.95\radius) -- (\angle:\radius);
\draw [font=\fontsize{.2\radius}{0pt}\selectfont, text=base-gray]
(\angle:.75\radius) node {\label};
}
\foreach \angle in {0, 90, 180, 270}
\draw [line width=0.03\radius, color=base-gray]
(\angle:.9\radius) -- (\angle:.98\radius);
% 中心の穴
\node [draw=none, font=\fontsize{.05\radius}{0pt}\selectfont, text=base-gray]
at (0,-0.13\radius) {produced by \TeX};
\draw [draw=black, line width=0.001pt] (0,0) circle (5mm);
\end{tikzpicture}
\end{document}

フォントはアカデミック版モリサワパスポートに含まれる「はるひ学園」を採用しました。\setmainfont命令に適当なフォントファイル名を与えることで、簡単に別のフォントに変更することが可能です4。
先述したように、彫刻したい部分はグレースケールに差をつけて深さを調節することもできますが、今回はシンプルにグレースケールを0.2に統一しています。一方、文字盤の外枠と中心部にムーブメント取り付けのための穴を切り出すために、0.001ptのグレースケール0(黒)の線を入れてあります(特に外枠は、出力画像を原寸大で見ても視認することは難しいでしょう)。
また、上記のLaTeXソースではほとんどの構成要素のサイズを最終的に作成したい文字盤の半径からの相対値で指定しているため
\setlength{\radius}{140mm}
の部分に、目標とする文字盤サイズの半径を指定するだけで任意のサイズの文字盤データを出力することができます。ムーブメント取り付けのため中心に空けている穴のサイズは半径5mmに固定していますが、これを変更したい場合はtikzpicture環境の終了間際にある
\draw [draw=black, line width=0.001pt] (0,0) circle (5mm);
をいじります。
余談:ボツになった文字盤デザイン
ここで紹介するのは、TeXの機能を最大限アピールするために私が試しに考案したデザインたちです。これらを実際にレーザーカッターによって出力することはなかったデザインですが、せっかくなのでここで供養をしておきたいと思います。
ローマ数字を用いたデザイン
ユニークな使い方ができることで有名な\romannumeralプリミティブを利用した、クラシカルな文字盤のデザインです。別にTeXでなくても作れそうです。

数式を多用したデザイン
TeXといえば「美しい数式組版」ということで、悪ノリで作ってしまいました。大学では抽象度の高い数学にしか取り組んでこなかったこともあり、具体的な数を表す数式を考えるとなると3あたりですでにネタ切れしてしまって辛かったです。なお実用性は(ry

かわいい☃のデザイン
TeXで作る“本質的なモノ”といえば、ゆきだるま☃
というわけで、“画期的な”デザインも考えてみました。この文字盤デザインを作成するにあたっては、doraTeXさんのゆきだるまで素因数分解を可視化するアレに登場するマクロを流用させていただきました。

Adobe Illustratorを用いたAI形式への変換
この部分は使用するレーザーカッターの機種や各工房の環境によって必要とされる要件が異なると思われるので、本稿の内容を再現する場合にはあまり参考にならないかもしれません。
Art Media Centerのレーザーカッターを利用する場合は、以下の条件を満たすAIデータを作る必要がありました。
- ファイル名は半角英数字のみ
- カラーモードはRGB
- CS3互換
というわけでLuaTeXが出力したPDFを、Illustratorを用いてこれらの条件を満たすように編集します。
PDFを開いたら、まず「ファイル>ドキュメントのカラーモード」から「RGBカラー」を選択します。

次に、すべてのオブジェクトを選択した状態で「書式>アウトラインを作成」を押して文字の部分をアウトライン化します。

あとは、CS3互換のAI形式でこの画像を保存するだけです。簡単ですね!

3. 文字盤を作成する
さて、文字盤データができればあとはレーザーカッターに仕事を丸投げできてしまいます。
ここまでで作成したAIデータを入れたUSBフラッシュドライブ(セキュリティとか知らない)と文字盤にする木板を持って、Iさんと共に例のArt Media Centerを訪問しました5。ちなみにその工房というのはこんなところです。

写真の中央部に写っている大型の(?)マシンが今回使用したレーザーカッターで、Epilog Laser社のFusionシリーズの機種のようです。
現地での作業はとても簡単で、普通のプリンタで普通の書類を印刷するのとほとんど手順は変わりません。
まず持ち込んだ入力データを併設のコンピュータで開き、「印刷」ボタンを押して、印刷設定のダイアログを開きます。ここでプリンタとして「Epilog ***」を選択します。

すると、今度はレーザーカッターの設定ダイアログが現れるので、彫刻や切断のスピードやパワーなどの設定を行います。
今回、私たちは初めてレーザーカッターを使用したので、このあたりの設定の最適解についてはよくわからなかったのですが、とりあえずArt Media Centerに用意されていた手順書で推奨されていた値をそのまま採用しました。

コンピュータ上での設定ができたら、レーザーカッターの蓋を開けて指定の箇所に木板を正しくセットします。当たり前ですが、彫刻したい面を上にします。

さて、ここまでできたら若干の緊張感とともにGOボタンを押します。ポチッと……

すると、あとはレーザーカッターがすべてよしなにやってくれます。作業が完了するまで時間があるので、のんびり待ちます。
レーザーカッターのしくみの詳細は本稿では省略させてもらいますが、基本的には普通のインクジェットプリンタのようにヘッドが左右を往復しながら移動していき、このヘッドから適切なタイミングでレーザーが照射されることによって素材が彫刻されていきます(ラスター彫刻)。

写真でもこの速度感が伝わるでしょうか。今回作成したのは直径が280mmの円形の文字盤ですが、だいたい30分程度で彫刻が完了しました。
ラスター彫刻が終わると、次は自動的にベクター切断モードに切り替わり、3時の方向から反時計回りにヘッドが円を描いて、板が切断されていきます。少し炎が立つので驚きますが冷静に見守ります。外枠の切断が終わるとヘッドが自動的に中心の穴の所に移動して、こちらも丸く切り抜かれます。切断は1分もかからない程度で終わりました。

無事に文字盤ができました!
4. 仕上げ
レーザーカッターで作成した文字盤にそのまま針を取り付けてもよかったのですが、少し「バリ」やレーザー照射によって木材が焦げた「スミ」が気になったので、サンドペーパーと固く絞った濡れ雑巾でそれぞれを除去して仕上げます。
5. 文字盤にムーブメントと針を取り付ける
最後に、用意してあったムーブメントと時計針を、メーカーの説明の通りに文字盤に取り付けます。これは本当に簡単で、30秒足らずで組み立てられました。
はい、これにて完成です!

制作ムービー
ここまで文章と写真だけで時計の作成工程を説明してきましたが、レーザーカッターが動いているところは実際に見ていただいた方が面白いだろうと思います。
というわけで、今回の時計制作の様子を1分間の短いムービーにまとめてみました。動画はYouTubeにアップロードしてあります。
それでは皆さん、よいクリスマスをお過ごしください!
-
加工可能な素材は機種によって様々ですが、典型的には木材・樹脂・金属などが挙げられます。 ↩︎
-
芸術大学のような特殊な施設でなくとも、有償で一般向けにレーザーカッターをレンタルしている工房が日本各地にあるようです。レーザーカッターを使用したいけれど協力を仰げる芸大生の知り合いがいないという場合は、そのような施設を利用するといいかもしれません。 ↩︎
-
私が利用したArt Media Centerのレーザーカッターの場合、正確には「線幅0.001ptの黒い線」の部分が切断される仕様でした。 ↩︎
-
正確にはfontspecパッケージが見つけることのできる場所にフォントがインストールされている必要があります。 ↩︎
-
私は部外者ですが、Iさんの協力者という形で入室許可をもらいました。また撮影の許可もいただいています。 ↩︎