FAV(ファブ、FAbricatable Voxel)[1]は、Additive Manufacturing、または3Dプリンティングとも呼ばれる積層造形プロセスのための3Dデータフォーマットである。デジタルな計算処理と、フィジカルな物質の組成をつなげることに威力を発揮する。
概要
従来の3Dデータフォーマットのようにメッシュ(ポリゴン)で3次元モデルの表面のみを記述するのではなく、立方体や球体など3次元の基本要素であるボクセルで3次元モデルを表現している。各ボクセルには、RGBやCMYKなどの色情報、ABS樹脂やナイロンなどの材料情報など、様々な属性を定義できる。また、お互いの接続強度など、ボクセル同士の関係性を管理することができる[2]。FAVにより、硬い材料や軟らかい材料など複数の材料の分布を細かくデザインする、複雑に入り組んだ内部構造を自由にデザインするなど、高い表現力を持つ立体物を作ることが可能となる[3]。
特徴
コンセプト
FAVは、fabricatable voxelの略である。FAVフォーマットで記載された3Dモデルデータは、fabricatableである、つまりものづくりに利用するために最適化された情報として格納されていることを示している。ものづくりに利用することができる最適化された情報とは、以下のようなことを示す。
- 3Dモデルデータの外部、内部を問わず、形状、材料、色、接合強度、等といったものづくりに必要な情報が立体的な位置ごとに明確に定義されていること
- 3Dモデルデータのデザイン(CAD)、解析(CAE)、検査(CAT)を、データ変換することなく統一的、かつ双方向的に行うことができること
3Dモデルデータにより高い表現力を発揮し、ものづくりに活かすことで、これまで作ることができなかったものを考え、作ることができ、3Dモデルデータを介したコミュニケーションの促進にも寄与する。特に、これまで分かれていた、画像処理、医療用のMRI/CTスキャンデータ、複合材料の混合による工業製品といった3つの分野を横断し、相互の境界を超えた新しいアプリケーションを生み出すことに役立つ。
3Dモデルの外側/内側を問わず、デザイナーが思った通りに・隅々まで・徹底的に・精緻にデザインできること、それをデータとして保存できることを担保している[4]。FAVフォーマットは、これらを兼ね備えた3Dモデルデータである。
効果
ボクセルを用いて3次元的な形状を定義することができるため、種類の違うボクセルを組み合わせたり、ボクセルの有り無しを組み合わせたりすることで、微細構造、内包構造、繰り返し構造などの様々な構造を表現することができる。ボクセルという基本要素の積み上げで3次元的な物体を定義することで、以下のようなメリットを得ることができる。
- 外側から見た形状だけでなく、内側の形状までボクセルの配置で表現できる
- 形状だけでなく、材料や色や接合強度などといった様々な属性の構造をボクセルの配置で表現できる
- ボクセルは有限要素であり、デザイン(CAD)したフォーマットのままシミュレーション(CAE)を行うことができる。また、シミュレーション結果からボクセル単位での設計変更を行うことができる。
構造
環境条件
座標系
FAVフォーマットで扱われる座標系は、積層面をXY平面とし、積層高さ方向をZ軸プラス方向であるとする、右手座標系で記述される。3Dプリンターなどの製造装置のワークエリアを考えた時、 装置の原点から見て製造する高さがZ軸、幅がX軸、奥行きがY軸となるように向きを合わせ、3Dモデルデータが収まるように配置することが推奨される。
座標の単位
FAVフォーマット内で使用される座標値1は、実世界上の1mmとして記述される。アプリケーションによって、インチや他の単位に変換して使用してもよい。ただしその場合でも、FAVフォーマットに保存する際は、座標値1が実世界上の1mmになるようにしなければならない。環境やアプリケーションによって、同じFAVファイルが違う寸法で解析されることを避けなければならない。
フォーマット
FAVフォーマットはXMLで記述されており、どのようなコンピュータでも一般的に読み書きできる。FAVフォーマット内の要素、並びに属性のラベルは、すべて小文字で記載する。複数の単語からなるラベルは、単語同士がunderlineで接続されて記載する。
FAVフォーマットの各種要素は、以下のようなツリー構造を持つ。
<fav>
FAVフォーマットのRoot要素である。FAVフォーマットに則って定義された3Dモデルデータは、<fav>
という要素から開始される。FAVフォーマットで定義され、管理されるデータはすべて<fav>
以下に格納される。
<metadata>
FAVフォーマットで定義される各種データに関するメタデータ(<id>
、<title>
、<author>
、<license>
、<note>
)が記載される。<metadata>
は、<fav>
、<material>
、<object>
を親要素として定義することができる。どの階層に定義した場合でも、<metadata>
以下に定義できる要素は同じである。ただし、必要な要素のみ定義すればよい。
<palette>
3DモデルデータをFAVフォーマットに基づいて構成するための前準備として、voxelの形状(<geometry>
)や材料(<material>
)などの基本情報の登録を行う。<palette>
に登録された基本情報で構成される<voxel>
を用いて<object>
を定義することで、3DモデルデータをFAVフォーマットとして定義する。
<voxel>
3DモデルデータをFAVフォーマットに基づいて構成するための基本要素である。voxelを立体的に積み上げていくことで、3Dモデルデータの構造を定義する。<voxel>
は<palette>
に登録されている<geometry>
や<material>
などの情報を保持する。そのため、3Dモデルデータの各位置において、形状以外の情報も定義することができる。
<object>
FAVフォーマットにより定義される実際の3Dモデルデータである。3Dモデルデータを格納するための<grid>
が定義され、その中に3Dモデルデータの構造である<structure>
が記載される。3Dモデルデータは、形状を表す<voxel_map>
、色情報を表す<color_map>
、接合強度情報を表す<link_map>
に分けて記載される。
FAVフォーマットのXMLの例
<?xml version="1.0" encoding="utf-8"?>
<fav version="1.1">
<metadata>
<id>bc4affb5-9a53-4de7-9f27-721ef27e8f34</id>
<title><![CDATA[FAV Ver1.1 Sample File]]></title>
<author><![CDATA[Fuji Xerox & Keio SFC]]></author>
<license><![CDATA[CC BY]]></license>
<note><![CDATA[This is a sample file in FAV format ver1.1.]]></note>
</metadata>
<palette>
<geometry id="1" name="NormalCube">
<shape>cube</shape>
<scale>
<x>1</x>
<y>1</y>
<z>1</z>
</scale>
</geometry>
<geometry id="2" name="Plate">
<shape>cube</shape>
<scale>
<x>1</x>
<y>1</y>
<z>0.25</z>
</scale>
</geometry>
<geometry id="3" name="Diamond">
<shape>user̲defined</shape>
<reference><![CDATA[Diamond.stl]]></reference>
<scale>
<x>0.98</x>
<y>0.98</y>
<z>-1.05</z>
</scale>
</geometry>
<material id="1" name="SoftMat1">
<material̲name><![CDATA[Some-soft-materials]]></material̲name>
</material>
<material id="2" name="HardMat1">
<product̲info>
<manufacturer><![CDATA[ABC Materials Co.]]></manufacturer>
<product̲name><![CDATA[ULTRA-HARD/007]]></product̲name>
<url><![CDATA[http://www.abcmaterial.com/ultra/hard/007]]></url>
</product̲info>
<product̲info>
<manufacturer><![CDATA[ABC Materials Co.]]></manufacturer>
<product̲name><![CDATA[ULTRA-HARD/006a]]></product̲name>
<url><![CDATA[http://www.abcmaterial.com/ultra/hard/006/a]]></url>
</product̲info>
<standard̲name><![CDATA[JIS K6899-1 ABS]]>
</standard̲name>
</material>
</palette>
<voxel id="1" name="soft̲cube">
<geometry̲info><id>1</id></geometry̲info>
<material̲info><id>1</id></material̲info>
</voxel>
<voxel id="2" name="hard̲cube">
<geometry̲info><id>1</id></geometry̲info>
<material̲info><id>1</id><ratio>0.15</ratio></material̲info>
<material̲info><id>2</id><ratio>0.85</ratio></material̲info>
<application̲note><![CDATA[HM-H01:Hybrid Hard Material Number 01]]></application̲note>
<application̲note><![CDATA[FabAppAttr : application note]]></application̲note>
</voxel>
<object id="1" name="SampleObject">
<metadata>
<id>cafed8bd-3bd9-4d7a-a67d-2df635d2d8f8</id>
<title><![CDATA[]]></title>
<author><![CDATA[Mr. Sample Creator]]></author>
<license><![CDATA[No rights reserved]]></license>
</metadata>
<grid>
<origin>
<x>28.5</x>
<y>-30</y>
<z>0</z>
</origin>
<unit>
<x>1</x>
<y>1</y>
<z>1</z>
</unit>
<dimension>
<x>7</x>
<y>7</y>
<z>7</z>
</dimension>
</grid>
<structure>
<voxel̲map bit̲per̲voxel="8" compression="none">
<layer><![CDATA[01010000000000010100000000000101000000000001010100000000000101010000000000010101010100000001010101]]></layer>
<layer><![CDATA[01010000000000010100000000000101000000000001010100000000000101010000000000010101010100000001010101]]></layer>
<layer><![CDATA[01010000000000010100000000000101010000000000010101000000000101010100000000010101010100000000010101]]></layer>
<layer><![CDATA[01010100000000010101000000000001010100000000010101010000000001010101010000000101010100000000010101]]></layer>
<layer><![CDATA[00010101000000000101010000000001010101000000000101010101000001010101010000000001010100000000000000]]></layer>
<layer><![CDATA[00010101010100000001010101010000010101010100000001010101000000000101010000000000000100000000000000]]></layer>
<layer><![CDATA[00000001010101000000010101010000000101010100000000010101000000000000000000000000000000000000000000]]></layer>
</voxel̲map>
<color̲map color̲mode="RGB" compression="none" >
<layer><![CDATA[8300258100277600329100176400457c002d5e004a5c004c5000595600523300753700713000782f007a3100771800900f00991f00891c008c1300960c009c]]></layer>
<layer><![CDATA[8200269700117400348e001a6300466800405b004e5900505500535500534000684200663b006d2c007c2400842d007a1700911f00891e008b140094100098]]></layer>
<layer><![CDATA[8900209a000e8500237f002a8100277b002d6c003c7700315800515a004e5300554900604200673d006b39007038007027008123008630007927008119008f19008f]]></layer>
<layer><![CDATA[9300159800109b000e8100278000288100277f00297200367000397500336e003b6f003a58005159004f3e006a4100684100674100673d006b2d007c2200862000892c007c2100881f0089]]></layer>
<layer><![CDATA[99000f9700119a000e9200169200168a001e7500337300347000386b003d72003562004759004f6300465b004e6100475d004b55005342006639006f4300662a007e270081]]></layer>
<layer><![CDATA[9000189000188a001e9700129600128f001988001f8c001c7b002d7a002e8700218600237700316f00396d003c5c004c6f003a6d003c5800505a004e5300554f005939006f]]></layer>
</color̲map>
<link̲map bit̲per̲link="8" neighbors="6" compression="none">
<layer><![CDATA[00000064c8ff00000000c8ff00000064c8ff00000000c8ff00c80064c8ff00c80000c8ff00c8006400ff00c80064c8ff00006400c8ff00c8006400ff00c86464c8ff00006400c8ff00c8006400ff00c86464c8ff00006464c8ff00006464c8ff00006400c8ff00c8006400ff00c8646400ff00c8646400ff00c8640000ff]]></layer>
<layer><![CDATA[00000064c8ff00000000c8ff00000064c8ff00000000c8ff00c80064c8ff00c80000c8ff00c80064000000c80064c8ff00006400c8ff00c8006400ff00c86464c8ff00006400c8ff00c8006400ff00c86464c8ff00006464c8ff00006464c8ff00006400c8ff00c80064000000c8646400ff00c8646400ff00c8640000ff]]></layer>
<layer><![CDATA[ff000064c8ffff000000c8ffff000064c8ffff000000c8ffffc800640000ffc80064c8ff00006400c8ffffc80064c8ffffc86464c8ff00006400c8ffffc800640000ffc86464c8ffffc86464c8ff00006400c8ffffc800640000ffc8646400ffffc86464c8ffff006464c8ffff006400c8ffffc8006400ff50ffc8646400ffffc8640000ff]]></layer>
<layer><![CDATA[ff000064c800ff000064c8ff00006400c8ffff0000640000ff000064c8ff00006400c8ffffc80064c8ffffc86464c8ff00006400c8ffffc800640000ffc86464c8ffffc86464c8ff00006400c8ffffc8006400ffffc86464c8ffffc86464c8ff00006464c8ff00006400c8ffffc800640000ffc86464c8ffffc86464c8ffffc86400c8ffffc800640000ffc864640000ffc864000000]]></layer>
<layer><![CDATA[ff000064c8ffff006464c8ff00006400c8ffff000064c800ff006464c8ff00006400c8ffffc800640000ffc86464c8ffffc86464c8ff00006400c8ffffc80064c800ffc86464c8ffffc86464c8ff00006464c8ff00006400c8ffffc800640000ffc864640000ffc86464c8ffffc86464c8ffffc86400c8ffffc800640000ffc864640000ffc8640000ff]]></layer>
<layer><![CDATA[ff0000640000ff006464c800ff006464c8ff00006464c8ff00006400c8ffff000064c800ff006464c8ff00006464c8ff00006464c8ff00006400c8ffffc800640000ffc86464c8ffffc86464c8ff00c86464c8ff00c86400c8ffffc800640000ffc86464c8ffffc86464c8ffffc86400c8ffffc800640000ffc864640000ffc86400c800ffc800000000]]></layer>
<layer><![CDATA[ff000064c800ff006464c800ff006464c80000006400c800ff000064c800ff006464c800ff006464c800ff006400c800ffc800640000ffc86464c800ffc86464c800ffc86400c800ffc800640000ffc864640000ffc864000000]]></layer>
</link̲map>
<user̲defined̲map value̲type="float" compression="none">
<reference><![CDATA[ExternalAttributes.favmap]]></reference>
<metadata>
<id>fa23e6c1-e52e-4591-b354-e4cfa382571a</id>
<title><![CDATA[StressHeatmap]]></title>
<author><![CDATA[Fuji Xerox & Keio SFC]]></author>
<license><![CDATA[CC BY]]></license>
<note><![CDATA[This file is FAVMAP format on ver1.1.]]></note>
</metadata>
</user̲defined̲map>
</structure>
</object>
</fav>
脚注
出典
- ^ FAV File Format Specification Ver 1.0 (PDF) - 富士ゼロックス
- ^ T. Tomonari, A. Masumori, M. Fujii, H. Tanaka, “An Internal Structure and Attributes Provided by Voxel-based 3D Data Format FAV (Fab-able Voxel”, ICJ (2016), A-16 pp.33.
- ^ A. Masumori, H. Tanaka, “Voxel-based 3D Processing for 3D Printing”, NIP31 (2015), pp.285.
- ^ 田中浩也、齋藤和行、守矢拓海、3Dプリンティングにまつわる情報学的研究課題:データ標準化,次世代モデリング環境,AIとの連結 情報管理 2017年 60巻 6号 p.403-411, doi:10.1241/johokanri.60.403, ISSN 1347-1597
関連項目
外部リンク