3次元CADデータをアプリケーション間で(できれば完璧に!)共有したいという要望が高まりつつあり ます。形状処理ソフトの開発を生業とする私たちにとってユーザの要望(わがまま?)は飯の種であります。是非3次元形状データ共有(変換)プログラムを提 供して一儲けしたいものです。
ところが、そう簡単ではないのです。ワープロデータの共有と比べて、3次元CADデータの共有は大変にハードルが高いのです。
ここでは、3次元CADデータの交換技術を解説していきます。CADデータそのものを扱いますので モデリング操作から離れたところの話になります。CADユーザだけでなく、CADベンダー、サードパーティ間でデータ変換にまつわる課題を共通に認識していただければ幸いです。
CAD間で共有したいCADデータとはいったいどういったものでしょうか。
これは、CAD間で読み書きできるファイル形式を指します。
IGESやSTEP、DXF、STLが有名です。異なるCADシステム間でデータを共有するというより、
異なるコンピュータ間でデータを共有するために考案されたものとみなせます。したがって、
原則としてテキストファイルになります。
CADデータは、製品モデル形状を表すように設計されています。CAD(ベンダー)ごとに
工夫されており「固有のデータ構造」をもっています。CADデータを共有するためには、
どこかで「データ構造の差異を吸収するしくみ」が必要となります。
「3次元CADデータの交換」とは、固有のデータ構造で定義された製品モデルを、
CAD-AからCAD-Bに理解できるよう「翻訳」することに他なりません。
CADデータを4種類に分類します。どの分類にも属さないデータは、データ変換に値しないデータと考えます。
点・線・面のことです。
点については、説明の必要はないでしょう。
線は、パラメトリック曲線(Bezier曲線、Bスプライン曲線、NURBS曲線など)を用います。解析曲線(直線、円弧、楕円、放物線、双曲線)もあります。
面はパラメトリック曲面(Coonsパッチ、Bezierパッチ、Bスプライン曲面、NURBS曲面)を用います。解析曲面(平面、円筒、円錐、球、トーラス)もあります。
点・線・面の「隣接情報」のことです。「Brep(境界表現法)」では、繋ぎ合わせた点・線・面で
物体の表面を表してモデルを定義します。
サッカーボールを思い浮かべてください。
Brepでは、製品形状はサッカーボールのように、多角形の皮が縫い合わされて閉じたものと考えます。
ボール全体を「SHELL」、5角形や6角形の皮を「FACE」、皮の縫い目の線を「EDGE」、縫い目が
集まる場所を「VERTEX」と呼びます。
SHELL/FACE/EDGE/VERTEXは、ボールの作るための縫製パターンを表しています。
縫製パターンは皮と皮の「隣接情報」です。隣接情報のことを「位相」と呼びます。
3次元空間に浮かぶ形状に、形状以外の情報を付加すると製品モデルとしてより意味を持つもの
になります。この付加情報を「属性」と呼びます。
例えば、モデルの色(点、線、面の色や太さ)、寸法、加工方法、物理特性(体積、重量)、
製品名、部品番号などがあります。
CAD上で製品形状をどのように作りこんでいくかその過程に関する情報です。
初期の3次元CADでは、点、線、面を直接定義して製品形状を作り上げていくのが主流でした。
ユーザが、操作を駆使すればどんな製品形状でも定義していくことができます。現在の3元CADでは、穴とかフィレットといった形状の特徴「フィーチャ」に注目して製品モデルを作成していきます。
フィーチャは、「種類」とともに位置や大きさ、参照形状などの「パラメータ」から定義されます。個々のフィーチャの「種類」「パラメータ」と「順序」を保存できれば、点、線、面や位相を意識することなく製品形状を一意に定義することができます。
CADでは、フィーチャ作成がコマンド(メニュー1個分の操作)に対応しますから、これら情報は「モデル作成手順」あるいは「コマンド列」とも言えます。