デジタル・ファブリケーションにまつわる
エピソード(後編)
2021.06.22
パラメトリック・ボイス
前回のコラムに引き続き、ブラッド・ピットが立ち上げたMake It Rightプロジェクトのために設計されたモーフォシス「FLOATハウス」でのエピソードを記す。
著者は住宅の玄関ポーチに取付ける手すりのアルミパネルを設計(図1)し、CNC プラズマ切断
機でパネルを切出すためにトム・メインの友人の金属工房に赴いたが、設計したパターンが複
雑すぎて工房のCAMソフトが使えず自作のソフトでG-Codeを出力した。それをプラズマ切断
機に読込ませて切断を開始した十数分後のこと。
「ガンッ!」という大きな金属音が工房に響いた。プラズマ切断機が停止している。目を凝ら
すと切断機のプラズマノズルのあるヘッド部分が、アルミ板のせり上がった部分に激突したよ
うである。これはどういうことか。
CNCプラズマ切断機では加工される金属板は目の荒い金属格子の上に載せられている(図2)。
この上で穴を開けると、切り取られた小さい部材は格子を通り抜けて落下し(図3a)、大きな部
材は格子に載る(図3b)。しかし中くらいの部材は格子の一辺に引っかかり傾く(図3c)。一方
プラズマノズルが取り付けられたヘッド部分はプラズマ放電による切断をしていない時でも低
い位置におり、次の切断箇所に移動するとき部材の上空1cmにも満たない所を動いている。こ
の低く移動するヘッドが、傾いてせり上がっている部材に激突したのである(図4)。
「ああ、こういうことあるんだよ。」と言って停止したプラズマ切断機の設定パネルをいじる
金属工房オーナー(図面見せた時に先に言ってほしかった)。
衝突が起きた場合、プラズマ切断機のセンサーが異常を検知し、切断機に強制終了がかかる。
加工再開のためにはプラズマ切断機を再起動し、切断を再開する位置から始まる新しい
G-Codeを(少なくともこの機械の場合には)読込ませねばならない。私は急いで加工再開のた
めのG-Codeを現場で作成した。目視で切断済みの閉曲線を確認し、自作G-Codeファイルをテ
キストエディタで開き、プラズマOn/Offで挟まれるループを順番に比較し、切断済みのループ
を削除して新しいG-Codeを保存した。それをプラズマ切断機に読込ませて加工を再開し、何
事もなかったかのように機械は再び切断を開始した。
しかしまた十~二十分後に衝突が発生。今度はプラズマ放電中にせり上がった近隣部材に触れ
て停止。また急いでG-Codeを作りなおそうと、停止位置とG-Codeの座標を比べてあたりをつ
けて、おおよそ停止した位置から切断を開始するG-Codeを作成して切断機に読込ませた。そ
して切断機の加工開始ボタンを押し、ヘッドが最初に放電切断を始める位置に移動した。しか
しそこで切断機が停止してしまった。こんどはなんだ。
「そこから始めたら、電気通らないでしょ。電気通らないとシャットダウンしちゃうんだよ。」
と傍で見ていたオーナーが言う(それも先に言って…)。プラズマ切断は放電の高熱で金属を
焼き切っており、金属板にはワニクリップで片方の電極が繋がれている。プラズマノズルの真
下に金属部材がなければ通電せずに放電が起きないのである(図5)。
PCに戻りまた新たなG-Codeファイルを制作する。今度はヘッドが切削済みの部分に来ないよ
うに曲線上を十分に進んだ位置から開始する。しかしこれだと閉曲線の前回切った部分との間
に1~数cmの未切断部ができて穴が切り取れない(板は1/4インチ=約6mm厚)。これはどうす
ればよいか。
「後で俺がハンドツールで切っといてやるよ。」頼もしそうな笑みを浮かべているオーナーで
はあるが、そもそもずっと前に図面を送ってこの人に切断加工をお願いしていたものの納期近
くにこんなの切れないと言い出して著者が工房まで来る羽目になっているのだが、大丈夫だろ
うか。
ともあれその日のうちに可能な限り切断を進めることにし、その後も何度も衝突と再起動、
G-Code作り直しを繰り返し、未切断部分を残しながらもプラズマ切断して行った。そして夕方
にモーフォシス事務所に戻り、翌日からの対策を思案した。問題は衝突が起きた時のタイムロ
スの大きさと、そしてそもそも衝突が起きることである。
まず自分で生成したG-Codeファイルは、CADファイルから直接テキストのG-Codeファイル生
成しているため、どのG-Codeがどの曲線に相当するかの直感的理解が容易でない。どの曲線
がどのG-Codeであるかの対応と、次に切断される位置の現場での把握を容易にするために、
G-Codeを読込んで切断形状とその順番、そしてそれらに対応するG-Codeコマンドを表示する
プログラムを作成した(図6)。そしてG-Codeの作り直しを容易にするため、マウスで選択され
た曲線やG-Codeコマンドの削除や編集を行い新たなG-Codeファイルを保存する機能を付けた。
以上のようにしてプラズマ切断機が衝突・停止した後にG-Codeの再生成の時間は短縮した。
しかし、そもそもの衝突を回避または減少することはできないであろうか。衝突が起きるとき
は大体直前に切断して傾いた部材に接触した時であり、部材が傾いてから衝突までの時間が短
く対処が困難であった。このようなことになっているのはヘッドの移動距離/加工時間の短縮の
ために、一つの穴を切断した次に最寄りの別の穴を切断することが影響していると考えられる。
では、傾く可能性のある穴を切断した後に、遠くにヘッドを移動させたら傾いた部材に対処す
る余地があるであろうか。このアイデアを元にして以下のようにG-Codeのスケジューリング・
アルゴリズムを更新した。
1) 切断する穴の閉曲線の幅・高さが共にある程度以上であれば次は最寄りの閉曲線を切断す
る(図3aの場合)。
2) 切断する穴の閉曲線の幅・高さが共にある程度以下であれば次は最寄りの閉曲線を切断す
る(図3bの場合)。
3) それ以外の閉曲線の場合は、X方向(切断機長手方向)にある程度以上離れた閉曲線を(該当
なしの時は最も離れた閉曲線を)次に切断する(図3cの場合)。
そしてこのアルゴリズムにインターンの人間を巻き込んで以下のようなシステムを考案した(図
7)。
翌日インターンと共に工房を訪れ、上記システムでプラズマ切断作業を再開した。著者は
G-Code表示プログラムから印刷した曲線の切断の順番を眺めながら、部材がせり上がる可能
性に備えた待機位置を順次インターンに指示した。切断部分が実際に傾いてせり上がった時に
は、ヘッドとヘッドが取り付けられたレールが遠方に移動して次の閉曲線を切断している間に、
耐熱手袋を着けたインターンがせり上がった切断部分をやっとこで取り除くか、または引っか
かって取れない時は叩き戻して平らにした。この方法によりヘッドの衝突は激減した。また衝
突したときでもG-Code表示・編集プログラムにより素早く新しいG-Codeが生成でき、作業は
順調に進んで必要な4つのパネルの切断は数日のうちに完了することができたのである(なお
オーナーにお願いした未切断部分の切り取りや、プラズマ切断による荒い縁のヤスリがけには
もう少し日数を要したが、プロジェクトの他の工程が遅れたため問題にはならなかった)。
現場での問題に対処するために、場当たり的/ハッキング的に作成したG-Code生成プログラム
とG-Code表示・編集プログラムであったが、CAMソフトウェアに相当する部分を自分で作っ
てしまったおかげで、現場での別の問題に、通常のCAMソフトウェアでは指定が困難な細かな
スケジューリングを行うこと(並びにインターンの彼の尽力)によって対処できた。このように
コンピュテーショナル・デザインやデジタル・ファブリケーションではツール自体を制作する
ことによって新たな問題解決方法を与え、設計・ものづくりの幅を広げる可能性をもたらすの
である。