富豪的CAD/CAM

先週金曜日、DMS(設計製造ソリューション展)に行ってきた。

これはちょっと前から感じていることだけど、いわゆるCADって、もう展示が少ないね。SolidWorksがスペースを大きくとっていたな、という程度。数年前まではもっとCADの展示が華やかだったのにね。

代わって何が増えたのか。

まず、PLM/PDM系。それからRP(3次元プリンタ)。そして非接触測定器。この辺じゃないかな。あとは5軸加工を意識したCAMも結構目立ってたかな。


さて、展示が増えてきたRPと測定器。そのデータ構造に着目して欲しい。

まず、RPが受け付けるのはポリゴンデータだ。例えばSTLとかobjとかね。

一方、測定器が出力するのは点群データといって、3次元座標 (X, Y, Z) の羅列だ。


これは、従来のCADの扱うデータとはずいぶん違っている。

いわゆるメカCADは曲線や曲面のデータで形状を表現しているわけ。さらにソリッドカーネルになるとB-rep表現というデータ構造が使われる。大雑把にいって、IGESとかSTEPはこの部類。

従来CAD/CAMといえば、ふつうはこの辺のデータ構造を使っていたわけ。ところが、今回のDMSではこれらのデータ構造を殆ど見かけない。少なくとも、売りになってない。

代わって増えたのは、ポリゴンや点群などの、いわゆる「離散データ」だ。時代は、ゆっくりだが確実に、曲線・曲面からポリゴン・点群に向かって動いている。


さて、表題の「富豪的」の意味だけど。

これはつまり、富豪のように惜しみなくジャブジャブとメモリやCPUを使うということ。

以前、プログラマの世界では「富豪的プログラミング」という言葉が流行ったのだ。これは、性能が向上したハードウェアの能力を富豪的に惜しみなく使うことで、UIをより優れたものにしたり開発効率を向上させようというムーブメントだった。

昔のPCは性能が限られていたので、プログラマは本能的にリソースを節約して使おうとしてしまう癖があったわけだ。できるだけメモリは消費しないように、できるだけ高速に動くように、節約に節約を重ねたプログラムを書こうとしていたんだね。いってしまえば、貧乏性だった。

しかし、この「節約」は結構コストがかかる。この節約のためには、PCに負荷をかけないようにプログラマ側が創意工夫をしなくてはならない。これはそれなりにコストがかかる作業なのだ。あるいは別の観点では、PCに負荷をかけないようにUIを犠牲にするという場面もある。これはユーザー側にコストを強いていることになる。

そこで「富豪的プログラミング」という言葉が登場した。ハードウェアの性能が十分進歩した今、このような貧乏くさい節約にコストをかけているのはおかしい、というわけだ。


この「富豪的」の波が、10年ほど遅れてCAD/CAMの世界にも来ているんじゃないか。

ポリゴンや点群というのは、従来の曲面に比べてずっとデータ量が大きくなる。設計の精度を満たすだけの細かいメッシュを生成すると、ポリゴンはあっという間に巨大に膨れ上がってしまう。昔のハードウェアではとても現実的なアプローチではなかった。だからこそ、曲面を巧みに表現する数式を用いて、データ量を抑えつつ効率的に必要な形状を表現する必要があった。

しかし今、メモリーはぐっと安価になった。ハードディスクもものすごい勢いで値が下がっている。64bitのOSも登場し、アドレス空間の限界も気にならなくなった。この状況で、果たして従来の曲面表現にこだわる必要はあるのだろうか。もはや、「富豪的」にポリゴンや点群データをジャブジャブ使うほうがコストが安い場合もあるんじゃないだろうか。

例えば、DMSでは牧野フライスさんがSTL CAMというのを展示されてたけど、なんと2GBのSTLを読み込んで加工パスが生成できるそうだ。話を伺ったところ、「だって、測定器で計測したポリゴンモデルを曲面データに変換するのはすごく人手がかかって大変でしょ。そのSTLをそのままCAMで読めちゃうほうが圧倒的に低コストなんです。」だそうだ。まさに「富豪的」といえよう。


富豪的」となったCAD/CAMとは、一体どんなカタチへ向かっていくのだろうか。「富豪的」という視点で横断的にCAD/CAM全体を眺めたとき、向かうべき方向性が見えてくるような気がしている。