1.概 要
STLモデル(三角形でワーク表面を被ったポリゴンモデル)を取得するには、STLファイル書式を利用するのが簡便であり、事実上の標準でもある。一方、このSTLファイル書式以外にも、三角形ポリゴンモデルを記述するファイル書式が提唱されている。その1つが「AMFファイル書式(Additive Manufacturing File Format)」である。AMFファイル書式は、STLファイル書式を完全に含むことができる。さらにアセンブリなど補助的な情報も記述することができる。STLファイル書式からAMFファイル書式への変換は完全に実現できるが、その逆の変換では(当然のことながら)情報の欠落を生じる。
弊社は、次の規格書に基づいてトランスレータプログラムを開発した。
ASTM INTERNATIONAL Designation : F2945-12
Standard Specification for
Additive Manufacturing File Format(AMF) Version 1.1
AMFファイルを読み込み、3D積層造形装置に製品形状(三角形ポリゴンモデル)を取得する機能を開発した。三角形ポリゴンモデルはAMFファイルへの書き出しも可能である。
さらに、AMFファイル固有の「曲面三角形:Curved Triangle(ふんわり三角形)」を微細な平面三角形群に変換する機能も開発した。
ここでは、開発の経験からAMFファイルの現状と実用化の動向についてコメントする。
2.AMFファイルの特徴
2.1 AMFファイル用のトランスレータの例
トランスレータは3つの機能で構成される。
機能1 読み込み AMFファイルを読み込み三角形ポリゴンモデルを生成
機能2 書き出し 三角形ポリゴンモデルをAMFファイルに書き出す
機能3 曲面三角形 AMFファイル固有の表現の曲面三角形を平面三角形で近似する
AMFファイルと三角形ポリゴン(位相付STL)との相互変換では、変換の途中に「中間データ構造」を介在させる。こうすることで、AMFファイルとの読み書きにおいて、本機能固有(MC2型)位相付STLを利用することなく、中間データ構造からAMFファイルIOも可能になる。本機能を活用するアプリケーション開発者は、各自(各社)の固有のモデル構造から、位相付STLまたは中間構造へのデータ変換機能を用意すればよい。
金型製作(造形、切削)の現場としては、AMFファイルの評価は、位相付STL(最もシンプルなBREPソリッド)を安定してやりとり出来るかどうかが重要である。
2.2 XML形式による記述
ファイルフォーマットは「XML形式」と「バイナリ形式」が存在する。バイナリ形式はXML形式をZIP圧縮したものである。展開すればテキストファイルになる。XMLファイルは、タグ(概念的な括弧)で囲む形で要素(ノードやエンティティと言ってもよい)を記述し、さらに要素間の相関関係(指す指される関係)を記述したものである。形状処理的な見方をすれば、IGESやSTEPと同じである。ただし、その記述に汎用的なXML形式を採用していることが画期的である。XML形式ゆえに、人間にとってもコンピュータにとっても可読性が高い。ファイルからメモリへデータ構造(ノード)を展開する機能(およびその逆の機能)は確立されており、無償で利用可能なライブラリも流通している。
2.3 STLファイル書式からの拡張
三角形ポリゴンモデルを記述するにあたり、STLファイル書式と比較する。
STLファイル書式は、N個のばらばらの三角形(3点と法線方向)を記述しただけのものである。頂点の共有や三角形に対する物質側、空気側の指定は保証されない。それゆえ、多くのデータ変換で事故(モデル変換失敗)が起こるのは既知の事実である。一方AMFファイル書式では、頂点の共有を保証する三角形ポリゴンを記述することができる。(書式上、あくまでも記述可能というだけで、STL書式同様に頂点の共有を保証しない記述も可能なので注意が必要である。)
三角形ポリゴンとして、平面三角形だけでなく、「曲面三角形:Curved Triangle」(以下ふんわり三角形)を記述することができる。複数モデルのための配置情報(アセンブリに準ずる概念)も記述することができる。三角形ポリゴン以外の情報では、色や表面模様、物質なども記述することができる。
多くの種類の情報を表現、保持できるのは必ずしもメリットばかりではない。モデルデータを出す側と受ける側の解釈が一致するとは限らない。3Dプリンタ向けの画期的なファイル書式をまとめたはずが、解釈のあいまいさゆえにデータ保存、データ変換が混乱することも予想される。かつて3次元CADモデルのデータ変換にSTEPが提唱されたが、利用される情報はAP203、AP204の形状データだけである。フィーチャや加工属性の記述は利用されなかった。
2.4 三角形ポリゴン(位相付STL)
AMFファイルで扱う三角形ポリゴンは、BREP(境界表現)ソリッドのシェルとして、幾何的、位相的に整合性のとれた状態を期待する。整合性が保たれているとき、全てのエッジは2つの三角形フェースに挟まれている。隣接する三角形フェース間で頂点は共有される。さらに三角形フェースの向き付けが明確で、物質側、空気側が区別できる。
2.5 曲面三角形:curved triangle(ふんわり三角形)
そのままでは、ぽきぽきした表面になるのが平面三角形を利用したポリゴンモデルである。滑らかなワーク表面を再現するためには三角形のサイズを小さく(数を大きく)することになる。
適当な方法で三角形の頂点位置に法線方向やエッジの接線方向を与えることができるなら、ふんわり丸みを帯びた三角形を類推することができる。3次のBEZIER三角形のようなイメージである。ふんわり三角形を利用すれば、大きく少ない三角形群で曲面系モデルの表面を近似できる。ただし、従来のSTL処理系のアプリケーションには存在しない概念なので、ふんわり三角形は適当に分割を進め、細かな平面三角形群に変換する必要がある。分割は注目している三角形を4分割することを繰り返して実現する。
3.AMFファイルのデータ構造
AMFファイル書式内で、モデルデータおよび付随する情報は、ノードを単位として記述されている。概念的に「ノード」は構造体、「属性」はそのメンバー変数に相当する。そこから参照するノードは「子(ノード)」と呼ぶ。ここでは簡便にノードを紹介する。
<amf> ルートノード
AMFファイルの全ての情報はこのノードの配下に置かれる。
<object> 形状を表すデータ
<mesh> 3Dメッシュ(ポリゴンモデル)による体積空間
<vertices> 親(3Dメッシュ)が持つ頂点配列
<vertex> 個々の頂点
<edge> エッジ 2頂点間を曲線で補間する場合に利用
<coordinates> 位置ベクトル
<normal> 法線方向
<volume> BREPにおけるシェル
<triangle> BREPにおけるフェース 3個の頂点から成る
<texmap> 三角形ごとに指定するテクスチャ? F2915-12にのみ記述
<color> 色情報
<material> 物の見た目
<composite> マテリアルを組み合わせる
<texture> テクスチャ 画像データ
<constellation> CADでいうフラットアセンブリ
<instance> オブジェクトの配置情報
<metadata> 属性情報
4.曲面三角形(ふんわり三角形)の再帰分割
2つのあいまいさを含んでいる。
あいまいさ1 三角形の4分割
ふんわり三角形の細分割は、1つの三角形を4つの三角形に分割することを繰り返す。
ふんわり三角形は頂点に法線方向またはエッジの接線方向が与えられた三角形である。
方向ベクトルの与え方は次の2つのケースのみが許される。
ケース1 3つの頂点に法線方向が与えられる
ケース2 法線方向は与えられず、1つのエッジの両端の頂点に接線方向が与えられる
ケース2においても、結局は3つの頂点の法線方向に換算して分割処理を行うことになる。
三角形の分割処理は、3つの頂点位置、3つの法線ベクトルから、3つのエッジの新中点位置およびそこでの法線方向を決定する処理である。ここでは説明を割愛するが、規格書にはあるエッジ曲線に注目して、両端の位置と方向ベクトルから中間部を補間するアルゴリズム(Hermite補間)が示されている。それでも法線方向の決め方がすっきりしない。
仮に、ふんわり三角形からBEZIER三角形への変換とみなしてみる。ふんわり三角形の3つの頂点と3つの法線ベクトルから、BEZIER三角形の10個の制御点を決定することに等しい。困ったことに中央の制御点p111だけは一意に決定することができない。CG系の利用では、p111を決定するためにいくつかの方法が示されているが、適当に決めているに過ぎない。このあいまいさが、AMFファイル書式の曲面三角形の扱いで問題になる。
BEZIER三角形の適用では1個の制御点を決定できない。規格書に示された再帰的4分割法では、エッジ中央部の法線方向の決定方法が曖昧である。
滑らかな曲面の一部を平面三角形で表現するより、滑らかさに追従する細かな三角形で補間する方が表示はきれいである。「表示」の美しさと「ものづくり」の精度を同列に扱ってはならない。三角形内部を完璧に補間できない限り、「造形」のための製品形状の定義には使えない。
あいまいさ2 ふんわり三角形と一般三角形の混在
ふんわり三角形の存在は、そのままではBREPソリッドの整合性を崩す元凶となる。AMFファイルの記述は頂点の共有を前提としているので、位相的には整合性が保たれている(はずである)。ところがエッジを介して隣接する2つの三角形のうち、片方がふんわり、他方が従来の平面である場合、幾何的な整合性は失われる。
曲面三角形は、適当な精度まで再分割(規格書による推奨は4回で1個の三角形が256個になる)を進め平面三角形で近似することが前提となっている。片方のフェースだけ分割を進めると、フェース、エッジ、頂点の数が増加し、それら位相要素が示す隣接関係が崩れる。(エッジの分割位置で頂点が共有されないのでこの問題は明らかである)平面三角形と曲面三角形の混在は危険である。将来の混乱が予想される。
5.AMFファイル書式のサンプルデータ
規格が先行しているようだが、AMFフォーマットのデータはほとんど流通していない。AMF規格書に記載の公式ホームページからAMFファイルサンプルを取得して、規格書どおりの記述であるかを検証してみた。AMFファイル書式ではあるが、AMF規格外のデータも存在した。(2014年12月時点)
公式ホームページからのデータでさへこの混乱である。最もシンプルなBREPソリッドモデルとして整合性の取れた三角形群の記述を推進できない限り、従来ののSTLファイルに対するAMFファイルの優位性はさほど期待できない。
公式ホームページ http://amf.wikispaces.com
6.AMFファイル以外の書式
2015年5月にMicrosoftが3Dプリンタ向けの独自フォーマットを発表した。その名も「3MF」でAMFに似ている。目指していることはAMFとほぼ同じようだ。この規格の推進に参画している企業は、Microsoft、Autodesk、DassaultSystems、hp などIT会の巨人が並ぶ。
詳細は次のURLを参照されたい。 http://www.3mf.io/
< 参 考 文 献 >
1)ASTM INTERNATIONAL Designation : F2945-12
Standard Specification for
Additive Manufacturing File Format(AMF) Version 1.1
2)Tomas Akenine-Moller/Eric Haines 翻訳 川西裕幸
リアルタイムレンダリング 第2版 2006年 発行 株式会社ボーンデジタル
pp.431 – 433
3)三浦曜、中嶋、大野 著
NURBS早分かり 工業調査会
pp.187 – 188