B 9442:2019
(1)
目 次
ページ
1 適用範囲························································································································· 1
2 用語及び定義 ··················································································································· 1
3 FAVフォーマットの原則 ··································································································· 3
3.1 環境条件 ······················································································································ 3
3.2 フォーマットの記述方法 ································································································· 3
3.3 フォーマット構成 ·········································································································· 4
3.4 セキュリティ ················································································································ 5
4 ファブ<fav> ···················································································································· 6
5 メタデータ<metadata> ······································································································ 6
5.1 基本 ···························································································································· 6
5.2 ID<id> ························································································································· 7
5.3 タイトル<title> ·············································································································· 7
5.4 作者<author> ················································································································ 7
5.5 ライセンス<license>········································································································ 8
5.6 メモ<note> ··················································································································· 8
6 パレット<palette>············································································································· 8
6.1 基本 ···························································································································· 8
6.2 幾何情報<geometry> ······································································································· 9
6.3 材料<material> ············································································································· 12
7 ボクセル<voxel>·············································································································· 14
7.1 基本 ··························································································································· 14
7.2 幾何情報指定<geometry̲info> ·························································································· 16
7.3 材料指定<material̲info> ································································································· 17
7.4 カラー指定<display> ······································································································ 18
7.5 プロパティ<application̲note> ·························································································· 18
7.6 外部参照<reference> ······································································································ 19
8 3Dオブジェクト<object> ·································································································· 21
8.1 基本 ··························································································································· 21
8.2 グリッド<grid> ············································································································· 24
8.3 構造<structure> ············································································································ 26
附属書A(参考)FAVフォーマットの一覧表 ············································································ 34
附属書B(参考)構造<structure>の各要素の説明 ······································································ 42
附属書C(参考)FAVフォーマットのXMLの例 ······································································· 46
B 9442:2019
(2)
まえがき
この規格は,産業標準化法第12条第1項の規定に基づき,ファブ地球社会コンソーシアム及び一般財団
法人日本規格協会(JSA)から,産業標準原案を添えて日本産業規格を制定すべきとの申出があり,日本
産業標準調査会の審議を経て,経済産業大臣が制定した日本産業規格である。
この規格は,著作権法で保護対象となっている著作物である。
この規格の一部が,特許権,出願公開後の特許出願又は実用新案権に抵触する可能性があることに注意
を喚起する。経済産業大臣及び日本産業標準調査会は,このような特許権,出願公開後の特許出願及び実
用新案権に関わる確認について,責任はもたない。
日本産業規格 JIS
B 9442:2019
3Dモデル用FAVフォーマットの仕様
Specification of FAV format for 3D models
1
適用範囲
この規格は,次の機能及び特徴を備えた3Dモデル用データフォーマットであるFAV 1)フォーマットの
仕様について規定する。
− 3Dモデルの表面及び内部を問わず,形状,材料,色,接合強度などといったものづくりに必要な情報
を立体の基本構成要素ごとに明確に定義している。
− 3Dモデルの設計データに,解析結果データ,検査結果データなどを付与し,統合して流通させること
で,これまで独立していた各工程2)の連携と柔軟な相互運用とを可能とする。
注記 この規格に従って記述した3Dモデルデータは,FAVファイルを扱うことができるシステムに
よって利用される。FAVファイルを処理するシステムは,この規格の規定に従って適切に処理
することで,FAVフォーマットが管理する3Dモデルデータの様々な情報を利用することが可
能となる。
注1) “FAV”は登録商標名であるが,この規格では登録商標を示す“®”を省略している。
2) これまで独立していた各工程とは,例えば,3Dモデルのデザイン,解析,検査などをいう。
2
用語及び定義
この規格で用いる主な用語及び定義は,次による。
2.1
FAVフォーマット[FAV (fabricatable voxel) format]
ものづくりに利用するために最適化した情報として3Dモデルデータを保存するファイルフォーマット。
注記 FAVフォーマットで記述した3Dモデルデータは,ファブリケータブル(fabricatable)である。
fabricatableは,“製造”を意味するfabricate及び“適する”などの意味をもつableを組み合わ
せた用語であり,FAVフォーマットは,3次元の立体物製造に最適化した情報を格納している
ことを示している。
2.2
ボクセル(voxel)
形状,材料,色,接合強度などを独立に割り当てることができる,立体物における最小の基本構成要素。
ボクセルの形状は立方体だけでなく,直方体,球,円柱などのほか,独自の形状及びサイズを定義する
こともできる。
注記 2次元画像の基本構成要素であるピクセルを配置することで,画像を構成するように,立体の
基本構成要素であるボクセルを配置することで,立体物を構成する(図1参照)。
2
B 9442:2019
a) ピクセルによる画像の構成
b) ボクセルによる物体の構成
図1−ピクセル及びボクセル
2.3
XML(Extensible Markup Language)
タグと呼ばれる文字列を使用して,文章の構造などを表す拡張可能なマーク付け言語。
2.4
(XMLの)要素(element)
開始タグで始まり,終了タグで終わるXMLの基本となる情報単位。子要素,属性及び文字データを含
む。
2.5
(XMLの)属性(attribute)
要素の開始タグの中に記述する,名前と値とが対になった情報。
2.6
メタデータ(metadata)
データに関するタイトル,作者などの附帯情報。
2.7
グリッド(grid)
3Dモデルを格納することができる大きさの直方体。
2.8
セル(cell)
グリッドの最小構成要素である直方体。1個のセルには1個のボクセルを配置することができる。ただ
し,セルの形状及び大きさとボクセルの形状及び大きさとは,必ずしも一致しない。
2.9
マップ(map)
ボクセルの配置,色などボクセルに与える様々な情報の配置を定義するXMLの要素又は属性。ボクセ
ルの数と同じ数の情報を定義する。
2.10
STLファイル[STL (Stereolithography) file]
3次元(の表面)形状を小さな三角形の集合体で表現する3Dモデル用データフォーマットの1種。
2.11
UUID(Universally Unique Identifier)
プログラム,データなどを一意に識別するための128ビットの数値。32桁の16進文字列で表現するこ
ともある。
3
B 9442:2019
3
FAVフォーマットの原則
3.1
環境条件
FAVフォーマットは,次の環境を条件としてデータを保持する。
a) 座標系 FAVフォーマットで扱う座標系は,積層面をxy平面とし,積層高さ方向をz軸のプラス方向
とする右手座標系とする(図2参照)。
3Dプリンタなどの製造装置のワークエリアの場合,装置の原点から見て製造する高さ方向がz軸,
幅がx軸,奥行きがy軸となるように向きを合わせ,3Dモデルデータが収まるように配置することが
望ましい。
図2−FAVフォーマットで使用する座標系
b) 座標の単位 FAVフォーマット内で使用する座標値1は,1 mmとする。
アプリケーションによってインチなど他の単位に変換して使用してもよい。ただし,その場合でも,
FAVフォーマットに保存する場合は,座標値1が1 mmになるようにしなければならない。これは,
環境又はアプリケーションによって,同じFAVファイルが異なる寸法で解析されることを避けるため
である。
3.2
フォーマットの記述方法
FAVフォーマットは,XMLによって記述する。XML内の要素,その属性などの記述方法は,次による。
a) XML内の要素は,山括弧“< >”で囲んだ形式で記述する。
例1 <element>
b) 要素の属性は,丸括弧“( )”で囲んだ形式で記述する。
例2 (attribute)
c) 要素をドット“.”で区切って記述した場合,ドットの左側を親階層,右側を子階層という意味で使用
する。
例3 <element̲parent.element̲child>は,次の要素を示すための記述方法として使用する。
<element̲parent>
<element̲child>この要素のことを示すための記述として使用。</element̲child>
</element̲parent>
d) 要素及び属性の名前は,全て小文字で記述する。複数の単語からなる名前は,単語間をアンダバー“̲”
で接続し記述する。
4
B 9442:2019
例4 <element̲item attribute̲item="ATTRIBUTE"/>
e) 要素及び属性に関する仕様の記載は,表1の様式による。また,要素及び属性の型は,表2による。
表1−要素及び属性の仕様の記載様式
要素
属性
型
データ
[規定値]
説明
条件
<element̲label>
(attribute̲
label)
Double
データの内容
[0.0]
要素又は要素がもつ属性のデータに何
を指定するか,どんな意味があるのか
を説明する。
必須,一
つ以上,
などの条
件を指定
する。
−
String
データの内容
[−]
要素のデータに何を指定するのか,ど
んな意味があるのかを説明する。規定
値がない場合は“−”と記載する。
−
表2−要素及び属性の型
型
内容
Positive Integer
正の整数
non Negative Integer
0以上の整数
Double
倍精度小数点
String
文字列(記号を含まない。)
CDATA
文字列(記号を含む。)
3.3
フォーマット構成
FAVフォーマットの各要素は,図3のようなツリー構造をもつ。
FAVフォーマットは,大きく分けて四つの要素<metadata>,<palette>,<voxel>及び<object>で構成する。
<palette>は,<voxel>から参照され,<voxel>は,<object>から参照される。そのため,FAVフォーマットの
先頭から<palette>→<voxel>→<object>の順に定義することが望ましい。また,特に記載がない限り,要素
の順序を規定しない。
それぞれの要素及び属性の仕様は,箇条4〜箇条8に規定する。また,FAVフォーマットの全ての要素
及び属性を一覧表にまとめて,附属書Aに示す。
5
B 9442:2019
図3−FAVフォーマットを構成する各要素のツリー構造
3.4
セキュリティ
FAVフォーマットに対するセキュリティは,他の一般的な電子データと同様に扱う。すなわち,パスワ
6
B 9442:2019
ードの設定,改ざんを検知するための電子署名の付与,特定の鍵を保持している場合にだけFAVファイル
が閲覧可能などのセキュリティ技術を適用することが可能である。
作者が許諾していない改編,作者情報そのものの改変などを行ったFAVフォーマットを再流通してはな
らない。ライセンスに反する利用を行った場合,法律に違反する可能性があることを十分に理解しなけれ
ばならない。
4
ファブ<fav>
<fav>は,FAVフォーマットのルート要素を示している。FAVフォーマットに従って定義した3Dモデル
データは,<fav>という要素から開始する。
FAVフォーマットで定義し管理するデータは,全て<fav>に格納する。
<fav>の仕様は,表3による。
表3−<fav>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<fav>
(version)
String
FAVフォーマ
ットのバージ
ョン番号
[−]
FAVファイルが従っているフォーマッ
トのバージョン番号を指定する。
必須
<fav>の階層のXMLの例を,次に示す。
例 <fav version="1.1a">
…
</fav>
<fav>には,次の要素を定義する。
・ <metadata>
・ <palette>
・ <voxel>
・ <object>
これらの要素のうち<palette>,<voxel>及び<object>は,必ず記述しなければならない。これらの要素の
仕様は,箇条5〜箇条8による。
5
メタデータ<metadata>
5.1
基本
<metadata>は,FAVフォーマットで定義する各種データに関するメタデータを記述する。
<metadata>は,<fav>,<material>,<object>及び<user̲defined̲map>を親要素として定義することができ
る。どの階層に定義した場合でも,<metadata>に定義する要素は,同じとする。ただし,必要な要素にだ
け<metadata>を定義する。
<metadata>には,次の要素を定義する。
・ <id>
・ <title>
・ <author>
7
B 9442:2019
・ <license>
・ <note>
<metadata>以下の階層のXMLの例を,次に示す。
例 <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>
5.2
ID<id>
<id>には,<metadata>を定義する親要素のデータを一意に示すIDを設定する。FAVフォーマットで管理
するデータの一意性を担保しようとする場合,UUIDなどの一意性が担保されているIDを使用することが
望ましい。
<id>の仕様は,表4による。
表4−<id>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<id>
−
String
親要素のID
[−]
<metadata>を定義する親要素を一意に
示すIDを指定する。
必須
5.3
タイトル<title>
<title>には,<metadata>を定義する親要素を表す名前を設定する。<fav.metadata.title>の場合は,<fav>全
体を表す名前であり,<object.metadata.title>の場合は,一つの<object>を表す名前である。
<title>の仕様は,表5による。
表5−<title>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<title>
−
CDATA
親要素の名前
[−]
<metadata>を定義する親要素を表す名
前を指定する。
必須
5.4
作者<author>
<author>には,<metadata>を定義する親要素の作者情報を設定する。<fav.metadata.author>の場合は,<fav>
全体の作者であり,<object.metadata.author>の場合は,一つの<object>の作者である。
<author>の仕様は,表6による。
表6−<author>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<author>
−
CDATA
親要素の作者
[−]
<metadata>を定義する親要素の作者情
報を指定する。
必須
8
B 9442:2019
5.5
ライセンス<license>
<license>には,<metadata>を定義する親要素のライセンス情報を設定する。<fav.metadata.license>の場合
は,<fav>全体のライセンスを表し,<object.metadata.license>の場合は,一つの<object>のライセンスを表す。
一般に認められているライセンスのほかに,独自のライセンスを定義する場合,<license>に全文を記述,
ライセンス情報へのリンクを記述などの記述方法がある。
<license>の仕様は,表7による。
表7−<license>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<license>
−
CDATA
親要素のライ
センス情報
[−]
<metadata>を定義する親要素のライセ
ンス情報を指定する。
必須
5.6
メモ<note>
<note>には,<metadata>を定義する親要素に関するメモを設定する。<fav.metadata.note>の場合は,<fav>
全体に関するメモであり,<object.metadata.note>の場合は,一つの<object>に関するメモである。
<note>の仕様は,表8による。
表8−<note>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<note>
−
CDATA
親要素に関す
るメモ
[−]
<metadata>を定義する親要素に関する
メモを指定する。
−
6
パレット<palette>
6.1
基本
<palette>では,3DモデルをFAVフォーマットに基づいて構成するための準備として,ボクセルの形状,
材料などの基本情報を設定する。<palette>に設定した基本情報で構成する<voxel>を用いて<object>を定義
することで,3DモデルをFAVフォーマットとして定義する。
<palette>には,次の要素を定義する。
・ <geometry>
・ <material>
<palette>以下の階層のXMLの例を,次に示す。
例 <palette>
<geometry id="1" name="NormalCube">
<shape>cube</shape>
<scale>
<x>1</x>
<y>1</y>
<z>1</z>
</scale>
9
B 9442:2019
</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>
6.2
幾何情報<geometry>
6.2.1
基本
<geometry>には,3Dモデルを構成する基本要素となるボクセルの形状及び倍率を設定する。
ここで設定したgeometryのボクセルを立体的に積み重ねることで,3Dモデルを構成する。
10
B 9442:2019
<geometry>の仕様は,表9による。
表9−<geometry>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<geometry>
(id)
Positive
Integer
幾何情報のID
[1〜a)]
<geometry>を一意に示すためのIDを設
定する。他の<geometry>の(id)と重複し
てはならない。
必須
(name)
String
定義する幾何
情報の名称
[−]
<geometry>の名前を設定する。他の
<geometry>の(name)と重複しないほう
がよい。
−
注a) 最初の規定値は,“1”。それ以降の規定値は,1ずつ加算する。
<geometry>のパターン例を表10に示す。
表10−<geometry>のパターン例
イメージ
(id)
01
02
03
04
05
06
(name)
Cube01
Cube02
Plate
BigSphere
SmallSphere
Cylinder
<shape>
cube
cube
cube
sphere
sphere
user̲defined
<scale>
2×2×2
1×1×1
1×1×0.3
1.5×1.5×1.5
0.25×0.25×0.25 3×1×1
<geometry>には,次の要素を定義する。
・ <shape>
・ <scale>
<geometry>以下の階層のXMLの例を,次に示す。
例 <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>
11
B 9442:2019
</scale>
</geometry>
6.2.2
形状<shape>
<shape>には,3Dモデルを構成する基本要素となるボクセルの形状を設定する。既定の形状のほか,外
部のSTLファイルを指定して任意の形状を使用することができる。
指定した<shape>で構成する<voxel>を<grid>に配置した場合,<shape>の中心が<grid>セルの中心と一致
するようにセンタリングして配置する。
<shape>の仕様は,表11による。
表11−<shape>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<shape>
−
String
cube / sphere /
user̲defined
[cube]
ボクセルの形状を指定する。
user̲definedを指定した場合,
<reference>を追加で指定しなければな
らない。
−
<shape>にuser̲definedを指定した場合,ボクセルの形状を定義する外部のSTLファイルへの参照を示す
<reference>を追加で定義する。
<reference>の仕様は,表12による。
表12−<reference>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<reference>
−
CDATA
ボクセルの形
状を定義する
STLファイル
パス
[−]
ボクセルの形状を定義する外部のSTL
ファイルまでの相対パスを指定する。
−
6.2.3
倍率<scale>
<scale>には,3Dモデルを構成する基本要素となるボクセルの倍率を設定する。倍率は,ボクセルを配
置する空間である<grid>のセルに対する倍率をx,y及びzのそれぞれの方向について指定する。<grid>の
セルと等倍の1×1×1の倍率が基本となる。
指定した<scale>で構成する<voxel>を<grid>に配置した場合,<scale>で指定した倍率のかかった<shape>
の中心が<grid>セルの中心と一致するようにセンタリングして配置される。
<scale>がもつ要素の仕様は,表13による。
12
B 9442:2019
表13−<scale>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<x>
−
Double
x方向の倍率
[1.0]
<grid>のセルを基準として,<shape>の
x方向の倍率を指定する。負の値を設
定した場合,反転する。“0”を指定し
てはならない。
−
<y>
−
Double
y方向の倍率
[1.0]
<grid>のセルを基準として,<shape>の
y方向の倍率を指定する。負の値を設
定した場合,反転する。“0”を指定し
てはならない。
−
<z>
−
Double
z方向の倍率
[1.0]
<grid>のセルを基準として,<shape>の
z方向の倍率を指定する。負の値を設定
した場合,反転する。“0”を指定して
はならない。
−
6.3
材料<material>
6.3.1
基本
<material>には,3Dモデルを構成する基本要素となるボクセルの材料情報を設定する。
ここで設定した材料のボクセルを立体的に積み重ねることで,3Dモデルの材料構成を定義する。
<material>の仕様は,表14による。
表14−<material>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<material>
(id)
Positive
Integer
材料情報のID
[1〜a)]
<material>を一意に示すためのIDを設
定する。他の<material>の(id)と重複し
てはならない。
必須
(name)
String
定義する材料
情報の名称
[−]
<material>の名前を設定する。他の
<material>の(name)と重複しないほうが
よい。
−
注a) 最初の規定値は,“1”。それ以降の規定値は,1ずつ加算する。
<material>には,材料情報を表す次の要素のいずれか一つ以上を定義する。
・ <material̲name>
・ <product̲info>
・ <standard̲name>
これらの要素は,指定した材料をユーザが使用不可能であった場合に備え,<material>に複数定義するこ
とができる。その場合,使用を推奨する順番で要素を定義する。
さらに,<material>に,次の要素を定義してもよい。<metadata>の仕様は,箇条5による。
・ <metadata>
<material>以下の階層のXMLの例を,次に示す。
例 <material id="2" name="HardMat1">
<product̲info>
<manufacturer><![CDATA[ABC Materials Co.]]></manufacturer>
<product̲name><![CDATA[ULTRA-HARD/007]]></product̲name>
13
B 9442:2019
<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>
6.3.2
材料名<material̲name>
<material̲name>には,材料を材料名で設定する。材料名には,ABS,PLAなどの材料名のほか,通称な
ど,何の材料を使用するかを判別できる名称を指定する。
<material̲name>の仕様は,表15による。
表15−<material̲name>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<material̲name>
−
CDATA
材料の名前情
報
[−]
何の材料を使用するかを判別できる名
称を指定する。
−
6.3.3
製品情報<product̲info>
<product̲info>には,材料を製品情報で設定する。メーカ名,製品名又は製品コード,製品情報URLな
ど,何の材料を表しているかを判別できる製品情報を指定する。
<product̲info>がもつ要素の仕様は,表16による。
表16−<product̲info>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<manufacturer>
−
CDATA
材料メーカ名
[−]
材料のメーカ名を指定する。
−
<product̲name>
−
CDATA
材料の製品名
[−]
材料を表すメーカ指定の製品名,製品
コードなどを指定する。
−
<url>
−
CDATA
材料に関する
web上の情報
のURL
[−]
材料に関するweb上の情報へのリンク
をURLで指定する。
−
6.3.4
規格材料名<standard̲name>
<standard̲name>には,材料を各種規格で規定している名前で設定する。規格の種類としては,JIS,ISO
又はASTMを指定することができる。規格種類,指定した規格種類の規格番号及びその規格に規定されて
いる材料名を指定する。規格番号には,制定年を記述しなくてもよい。その場合,指定した規格の最新版
を適用する。
14
B 9442:2019
<standard̲name>の仕様は,表17による。
表17−<standard̲name>の仕様
要素
属性
型
データ
[規格値]
説明
条件
<standard̲name>
−
CDATA
材料の規格情
報
[−]
材料を規格で規定している名前に従っ
て指定する。次の形に従って記述する。
[規格種類 規格番号 材料名]
−
<standard̲name>の指定方法の例を,次に示す。
例 JIS K 6899-1:2015(プラスチック−記号及び略語−第1部:基本ポリマー及びその特性)に規定
のある,アクリロニトリル-ブタジエン-スチレンプラスチック(ABS)を材料として指定する場
合
[JIS K6899-1:2015 ABS]
材料名
規格番号(制定年を指定する場合は,その年も記述)
規格種類
7
ボクセル<voxel>
7.1
基本
<voxel>は,3DモデルをFAVフォーマットに基づいて構成するための基本要素であるボクセルを定義す
る。ボクセルを立体的に積み重ねていくことで,3Dモデルの構造を決定する。<voxel>は,<geometry>,
<material>などの情報を保持する。そのため,3Dモデルの各位置において,形状以外の情報も定義するこ
とができる。
図4に,<voxel>による形状及び属性の指定の例を示す。
図4−<voxel>による形状及び属性の指定の例
<voxel>の仕様は,表18による。
15
B 9442:2019
表18−<voxel>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<voxel>
(id)
Positive
Integer
ボクセルのID
[1〜a)]
<voxel>を一意に示すためのIDを1以
上の整数で設定する。他の<voxel>の
(id)と重複してはならない。
必須
(name)
String
定義するボク
セルの名称
[−]
<voxel>の名前を設定する。他の<voxel>
の(name)と重複しないほうがよい。
−
注a) 最初の規定値は,“1”。それ以降の規定値は,1ずつ加算する。
<voxel>の(id)は,3Dモデルの形状を定義するための<voxel̲map>にて,16進文字列として列挙するため,
整数でなければならない。また,“0”は<voxel>が存在しないことを示すために使用しており,(id)に使用
してはならない。
<voxel>には,次の要素を定義するか,又は<reference>だけを定義することで,外部のFAVファイルを指
定して任意のボクセル集合を1ボクセルとして使用することができる。
・ <geometry̲info>
・ <material̲info>
・ <display>
・ <application̲note>
・ <reference>
<voxel>以下の階層のXMLの例を,次に示す。
例 <voxel id="1" name="soft̲cube">
<geometry̲info>
<id>1</id>
</geometry̲info>
<material̲info>
<id>1</id>
<ratio>1</ratio>
</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>
16
B 9442:2019
</material̲info>
<application̲note><![CDATA[HM-H01:Hybrid Hard Material Number 01]]></application̲note>
<application̲note><![CDATA[FabAppAttr : application note]]></application̲note>
</voxel>
<voxel id="3" name="reserved̲cube">
<geometry̲info>
<id>1</id>
</geometry̲info>
<material̲info>
<id>0</id>
<ratio>1</ratio>
</material̲info>
</voxel>
<voxel id="4" name="sparse̲cube">
<geometry̲info>
<id>1</id>
</geometry̲info>
<material̲info>
<id>2</id>
<ratio>0.6</ratio>
</material̲info>
<material̲info>
<id>0</id>
<ratio>0.4</ratio>
</material̲info>
</voxel>
<voxel id="5" name="Voxel01">
<reference><![CDATA[Voxel01.fav]]></reference>
</voxel>
7.2
幾何情報指定<geometry̲info>
<geometry̲info>には,<voxel>に対して形状及び倍率を示す<geometry>を設定する。
<geometry̲info>の<id>には,<palette>に設定している<geometry>の(id)を指定する。この<geometry̲info>
を設定している<voxel>によって3Dモデルの形状を定義した場合,該当する箇所の単位形状が指定した
<geometry>であることを示す(図4参照)。
<geometry̲info>がもつ要素の仕様は,表19による。
17
B 9442:2019
表19−<geometry̲info>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<id>
−
Positive
Integer
定義済みの幾
何情報のID
[−]
<geometry>を参照するためのIDを指定
する。<geometry>に設定済みの(id)を指
定しなければならない。
必須
7.3
材料指定<material̲info>
<material̲info>には,<voxel>に対して材料情報を示す<material>を設定する。
<material̲info>の<id>には,<palette>に設定している<material>の(id),又は“0”を指定する。
<palette>に設定している<material>の(id)を指定した場合,そのボクセルを配置した箇所を構成する材料
が指定した<material>であることを示す(図4参照)。
“0”を指定した場合,そのボクセルを配置した箇所には材料がない空間を確保していることを示す。
<material̲info>を<voxel>に複数定義することで,複合材料を定義することができる(図5参照)。その場
合,<material̲info>には,<material>の種類を指定する<id>,及び複合する割合を指定する<ratio>のペアを
指定する。一つの<voxel>に設定した全ての<material̲info>の<ratio>の合計が1.0になるように指定しなけ
ればならない。
(id)が0の<material̲info>を組み合わせた場合,一つのボクセル内に,指定された<ratio>の割合分,材料
がない空間が含まれていることを示す。
図5に単一材料及び複合材料の定義例を示す。
図5−単一材料及び複合材料の定義例
18
B 9442:2019
<material̲info>がもつ要素の仕様は,表20による。
表20−<material̲info>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<id>
−
non
Nagative
Integer
定義済みの材
料情報のID
[−]
<material>を参照するためのIDを指定
する。<material>に設定済みの(id),又
は“0”を指定する。
必須
<ratio>
−
Double
複数の材料の
複合割合
[−]
<material>を使用する割合を指定する。
他の<material>の割合との合計で1.0に
なるように指定する。0以下を指定し
てはならない。
−
7.4
カラー指定<display>
<display>には,<voxel>を判別するための表示色の情報を設定する。形状,材料などの属性の違いを分か
りやすく可視化する目的で使用する。
3Dモデルの形状定義時,<voxel>に<display>を指定した場合,3Dモデルの指定した位置の色は<display>
の色で表示する。3Dモデルを実際にものとして作り出すときのものの色は,<color̲map>で指定する。
<display>がもつ要素の仕様は,表21による。
表21−<display>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<r>
−
non
Negative
Integer
ボクセル表示
色の赤(R)成
分
[−]
<voxel>の色情報を表す赤成分を指定
する。0未満又は256以上の値を指定
してはならない。
−
<g>
−
non
Negative
Integer
ボクセル表示
色の緑(G)成
分
[−]
<voxel>の色情報を表す緑成分を指定
する。0未満又は256以上の値を指定
してはならない。
−
<b>
−
non
Negative
Integer
ボクセル表示
色の青(B)成
分
[−]
<voxel>の色情報を表す青成分を指定
する。0未満又は256以上の値を指定
してはならない。
−
<a>
−
non
Negative
Integer
ボクセル表示
色の透明度
[−]
<voxel>の色情報を表す透明度を指定
する。0未満又は256以上の値を指定
してはならない。
−
7.5
プロパティ<application̲note>
<application̲note>には,<voxel>に格納する任意のプロパティ情報を設定する。
設定したいプロパティ一つに付き一つの<application̲note>要素を追加して指定する。<application̲note>
のデータには,プロパティを格納したユーザ及びプロパティを使用するユーザが,複数の<application̲note>
の中から必要なデータを判別し抽出できるような,手がかりとなる記述を添えておくことが望ましい。
サイズの大きなデータの格納又は不必要に多くの<application̲note>の定義は,しないほうがよい。
<application̲note>の仕様は,表22による。
19
B 9442:2019
表22−<application̲note>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<application̲
note>
−
CDATA
ボクセルに格
納する任意の
プロパティ情
報
[−]
<voxel>に格納する任意のプロパティ
を指定する。複数の<application̲note>
の中から必要なデータを判別し抽出で
きるような,手がかりとなる記述を添
えておくことが望ましい。
−
7.6
外部参照<reference>
<reference>は,外部のFAVファイルを指定することで,任意のボクセル集合を1ボクセルとして使用す
ることができる。
読み込む側のFAVファイルを“親”,読み込まれる側のFAVファイルを“子”というとき,子のFAVフ
ァイルを親の1ボクセルとして指定する場合は,次の関係性を保たなければならない。
・ 親のFAVファイルの<unit.x> = 子のFAVファイルの<unit.x>×<dimension.x>
・ 親のFAVファイルの<unit.y> = 子のFAVファイルの<unit.y>×<dimension.y>
・ 親のFAVファイルの<unit.z> = 子のFAVファイルの<unit.z>×<dimension.z>
図6は,外部のFAVファイルを参照したボクセルの定義の例である。実際にモデルデータを定義してい
る“Bunny.fav”では,1辺が1 mmのボクセルの10×10×10個の集合である“Voxel01.fav”を1ボクセル
として使用している。さらに,“Voxel01.fav”では,1辺が0.01 mmのボクセルの100×100×100個の集合
である“SubVoxel01.fav”を1ボクセルとして使用している。
20
B 9442:2019
図6−外部のFAVファイルを参照したボクセルの定義例1
図7は,外部のFAVファイルを参照したボクセルを複数種類定義する例である。
実際にモデルデータを定義している“Bunny.fav”では,x辺が1 mm,y辺が2.5 mm,z辺が0.5 mmの
ボクセルの10×4×20個の集合である“Voxel02.fav”を1ボクセルとして使用している。
さらに,“Voxel02.fav”では,それぞれ次のように3種類のボクセルを定義している。
・ <voxel> id=01 … x辺が0.05 mm,y辺が0.05 mm,z辺が0.01 mmのボクセルの20×50×50個の集合
である外部の“SubVoxel̲A.fav”を1ボクセルとして使用。
・ <voxel> id=02 … x辺が0.01 mm,y辺が0.01 mm,z辺が0.01 mmのボクセルの100×250×50個の集
合である外部の“SubVoxel̲B.fav”を1ボクセルとして使用。
・ <voxel> id=03 … x辺が1 mm,y辺が2.5 mm,z辺が0.5 mmのボクセルを“Voxel02.fav”の内部で定
義して使用。
21
B 9442:2019
図7−外部のFAVファイルを参照したボクセルの定義例2
<reference>の仕様は,表23による。
表23−<reference>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<reference>
−
CDATA
1ボクセルとし
て扱うボクセ
ル集合を定義
するFAVファ
イルパス
[−]
1ボクセルとして扱う外部のFAVファ
イルまでの相対パスを指定する。
−
8
3Dオブジェクト<object>
8.1
基本
<object>は,FAVフォーマットによって構成する実態の3Dモデルを定義する。
3Dモデルを格納するための<grid>を定義し,その中に3Dモデルデータの構造である<structure>を記述
する。3Dモデルは,形状を表す<voxel̲map>,色情報を表す<color̲map>,及び接合強度情報を表す
<link̲map>に分けて記述する。また,ユーザ独自の情報<user̲defined̲map>を<grid>のセルにマッピングす
ることができる。
<grid>と<structure>との関係を図8に示す。
22
B 9442:2019
図8−<grid>と<structure>との関係
一つのFAVフォーマット内で,複数の<object>を定義することができる。その場合,<object>ごとに<grid>
及び<structure>を定義する。
<object>の仕様は,表24による。
表24−<object>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<object>
(id)
Positive
Integer
オブジェクト
のID
[1〜a)]
<object>を一意に示すためのIDを設定
する。他の<object>の(id)と重複しては
ならない。
必須
(name)
String
定義するオブ
ジェクトの名
称
[−]
<object>の名前を設定する。他の
<object>の(name)と重複しないほうが
よい。
−
注a) 最初の規定値は,“1”。それ以降の規定値は,1ずつ加算する。
<object>には,次の要素を定義しなければならない。
・ <grid>
・ <structure>
さらに,<object>に,次の要素を定義してもよい。<metadata>の仕様は,箇条5による。
・ <metadata>
<object>以下の階層のXMLの例を,次に示す。
例 <object id="1" name="SampleObject">
<grid>
<origin>
<x>28.5</x>
23
B 9442:2019
<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 compression="none" bit̲per̲voxel="8">
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
</voxel̲map>
<color̲map compression="none" color̲mode="RGB">
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
</color̲map>
<link̲map bit̲per̲link="8" compression="none" neighbors="6">
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
24
B 9442:2019
<layer><![CDATA[……]]></layer>
</link̲map>
<user̲defined̲map value̲type="byte" compression="none">
<reference><![CDATA[StressHeatmap.favmapx]]></reference>
<metadata>
<id>fa23e6c1-e52e-4591-b354-e4cfa382571a</id>
<title><![CDATA[Stress Heatmap]]></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>
<user̲defined̲map value̲type="float" compression="none">
<reference><![CDATA[Thermography.favmapx]]></reference>
<metadata>
<id>84343e14-ad81-49e9-bf1e-884dcfa80c34</id>
<title><![CDATA[Thermography sensing data]]></title>
<author><![CDATA[Fuji Xerox & Keio SFC]]></author>
<license><![CDATA[CC BY]]></license>
</metadata>
</user̲defined̲map>
</structure>
</object>
8.2
グリッド<grid>
8.2.1
基本
<grid>は,FAVフォーマットによって定義する実態の3Dモデルを構成するための,均等なセルで区切
られた空間に関する設定を行う。<grid>の設定に基づき,3Dモデルの構造を記述する。一つのFAVフォ
ーマット内で,複数の<object>を定義する場合,<object>ごとに<grid>を設定する。
<grid>には,次の要素を定義する。
・ <origin>
・ <unit>
・ <dimension>
<grid>で管理する各要素の意味を図9に示す。
25
B 9442:2019
図9−<grid>で管理する各要素の意味
8.2.2
原点<origin>
<origin>には,グローバル座標空間の原点から<grid>の原点までのオフセット値を設定する。この設定に
よって,グローバル座標空間内における,この<object>の位置が決まる。
<origin>がもつ要素の仕様は,表25による。
表25−<origin>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<x>
−
Double
x方向の原点ま
での距離
[0.0]
グローバル座標空間の原点から<grid>
の原点までのx方向のオフセット値を
指定する。
−
<y>
−
Double
y方向の原点ま
での距離
[0.0]
グローバル座標空間の原点から<grid>
の原点までのy方向のオフセット値を
指定する。
−
<z>
−
Double
z方向の原点ま
での距離
[0.0]
グローバル座標空間の原点から<grid>
の原点までのz方向のオフセット値を
指定する。
−
8.2.3
セルサイズ<unit>
<unit>には,<grid>のセル一つ分の大きさを設定する。x,y及びzの3辺をそれぞれ指定する。
<unit>から,1 mmに何個のボクセルが配置できるか(vpm = voxel per mm)は,次の式による。
1 (voxel)/unit (mm)=vpm
例 unit = ( 1,
1,
1 )
の場合, x = 1 vpm,
y = 1 vpm,
z = 1 vpm
unit = ( 10, 10,
5 )
の場合, x = 0.1 vpm, y = 0.1 vpm, z = 0.2 vpm
unit = ( 0.01, 0.002, 0.05 ) の場合, x = 100 vpm, y = 500 vpm, z = 20 vpm
26
B 9442:2019
<unit>がもつ要素の仕様は,表26による。
表26−<unit>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<x>
−
Double
x方向のセルサ
イズ
[1.0]
<grid>のセル一つ分のx方向の大きさ
を指定する。0以下を指定してはなら
ない。
−
<y>
−
Double
y方向のセルサ
イズ
[1.0]
<grid>のセル一つ分のy方向の大きさ
を指定する。0以下を指定してはなら
ない。
−
<z>
−
Double
z方向のセルサ
イズ
[1.0]
<grid>のセル一つ分のz方向の大きさ
を指定する。0以下を指定してはなら
ない。
−
8.2.4
セル数<dimension>
<dimension>には,<grid>全体の大きさを,ボクセルを並べることができる個数で設定する。この指定に
よって,グローバル座標空間上の実際の<grid>のサイズは,<unit>×<dimension>となる。
<dimension>がもつ要素の仕様は,表27による。
表27−<dimension>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<x>
−
Positive
Integer
x方向のセル数
[−]
<grid>のx方向にボクセルを並べるこ
とができる個数を指定する。
必須
<y>
−
Positive
Integer
y方向のセル数
[−]
<grid>のy方向にボクセルを並べるこ
とができる個数を指定する。
必須
<z>
−
Positive
Integer
z方向のセル数
[−]
<grid>のz方向にボクセルを並べるこ
とができる個数を指定する。
必須
8.3
構造<structure>
8.3.1
基本
<structure>では,FAVフォーマットによって定義する3Dモデルの構造を記述する。<grid>で定義した3
次元的なグリッド内に,<voxel>で定義したボクセルを立体的に配置していくことで,3Dモデルの形状を
決定する。配置したボクセルの色,材料,接合強度などの情報を各種マップで定義する。
<structure>以下の階層には,次の要素を定義する。
・ <voxel̲map>
・ <color̲map>
・ <link̲map>
・ <user̲defined̲map>
<user̲defined̲map>を定義することで,ユーザ独自の属性を<grid>のセルにマッピングすることができる。
<user̲defined̲map>は,複数定義することができる。
<structure>以下の階層の各要素について,FAVフォーマットで定義可能な3Dモデルデータを例に,附属
書Bで説明する。また,<structure>のXMLの例については,附属書Cを参照。
27
B 9442:2019
8.3.2
ボクセル配置<voxel̲map>
<voxel̲map>には,FAVフォーマットによって定義する3Dモデルの形状を設定する。<grid>で定義した
3次元的なグリッドのxy平面1層ごとに,層内の各セル位置におけるボクセルの有無を定義する。層ごと
に定義したボクセルマップを,3Dモデルの高さ分積み上げることで,3Dモデル全体の形状を決定する。
<voxel̲map>の仕様は,表28による。
表28−<voxel̲map>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<voxel̲map>
(bit̲per̲voxel) Positive
Integer
4 / 8 / 16
[−]
ボクセル1個を表現するbit数を4,8
又は16のいずれかで指定する(それぞ
れ16進文字列1文字,2文字又は4文
字)。
必須
(compression)
String
none / base64 /
zlib / runlength
[none]
<layer>データの圧縮方法をnone(圧縮
無し),base64,zlib又はrunlengthのい
ずれかで指定する。
−
<voxel̲map>には,<dimension.z>分の<layer>を定義する。3Dモデルデータの接地面,すなわち,高さ方
向の一番低い層から順番に<layer>を格納する。
一つの<layer>には,xy平面1層分のボクセルマップを記述する。ボクセルマップに<voxel>の(id)を設定
した場合,ボクセルマップで表すセル位置に(id)に相当するボクセルが存在することを示す。ボクセルマッ
プで表すセル位置にボクセルが存在しない場合は,“0”を指定する。
<voxel̲map>がもつ要素の仕様は,表29による。
表29−<voxel̲map>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<layer>
−
CDATA
ボクセルのID
を列挙した文
字列
[−]
<voxel>の(id)を(bit̲per̲voxel)で指定し
たフォーマットで列挙する。
<dimension.x>×<dimension.y>分の(id)
を1行に連結して記述する。
<voxel̲map>の(compression)にnone以
外を指定した場合,<layer>のデータは,
指定の圧縮方法で圧縮して格納され
る。
一つ以上
<voxel̲map>に関する説明は,B.2を参照。
8.3.3
カラー配置<color̲map>
<color̲map>には,FAVフォーマットによって定義する3Dモデルの色情報を設定する。<voxel̲map>で
列挙した各ボクセルに対し,色情報を指定する。
<color̲map>の仕様は,表30による。
28
B 9442:2019
表30−<color̲map>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<color̲map>
(color̲mode)
String
GrayScale
/
GrayScale16
/
RGB / RGBA /
CMYK
[−]
ボクセルに定義する色情報フォーマッ
トを,GrayScale,GrayScale16,RGB,
RGBA又はCMYKのいずれかで指定す
る。
必須
(compression)
String
none / base64 /
zlib / runlength
[none]
<layer>データの圧縮方法をnone(圧縮
無し),base64,zlib又はrunlengthのい
ずれかで指定する。
−
(color̲mode)に指定する色情報フォーマットを,次に示す。
・ GrayScale
… 白〜黒までのグレースケールを256諧調(1 byte)で表現する。1ボクセル分の色情報
は,1 byte(16進文字2文字)となる。
・ GrayScale16 … 白〜黒までのグレースケールを65 536諧調(2 byte)で表現する。1ボクセル分の色情
報は,2 byte(16進文字4文字)となる。
・ RGB
… 赤(R),緑(G)及び青(B)をそれぞれ256諧調(1 byte)で表現する。1ボクセル
分の色情報は,3 byte(16進文字6文字)となる。
・ RGBA
… 赤(R),緑(G),青(B)及び透明度(Alpha)をそれぞれ256諧調(1 byte)で表現
する。1ボクセル分の色情報は,4 byte(16進文字8文字)となる。
・ CMYK
… シアン(C),マゼンタ(M),イエロー(Y),キープレート(KeyPlate)をそれぞれ
256諧調(1 byte)で表現する。1ボクセル分の色情報は,4byte(16進文字8文字)と
なる。
<color̲map>には,<dimension.z>分の<layer>を定義する。一つの<layer>には,xy平面1層分のカラーマ
ップを記述する。<color̲map>には,<voxel̲map>に列挙したボクセルそれぞれに対し,(color̲mode)に指定
したフォーマットで色情報を指定する。<voxel̲map>でボクセルが存在しないことを表す“0”を指定した
場合,<color̲map>上での色情報の指定は省略し,左詰めにする。
<color̲map>がもつ要素の仕様は,表31による。
表31−<color̲map>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<layer>
−
CDATA
3Dモデルの色
情報を表す16
進文字列
[−]
<voxel̲map>に列挙したボクセルの色
情報を,(color̲mode)に指定したフォー
マットで列挙する。<color̲map>の
(compression)にnone以外を指定した場
合,<layer>のデータは,指定の圧縮方
法で圧縮して格納される。
一つ以上
<color̲map>に関する説明は,B.3を参照。
8.3.4
リンク配置<link̲map>
<link̲map>には,FAVフォーマットによって定義する3Dモデルのリンク情報を設定する。リンク情報
とは,ボクセル間の関係性の強度を表す値である。例えば,ボクセル間の接合強度などを表現する。これ
29
B 9442:2019
らのリンク情報は,より精度の高い構造解析,3Dプリンタのツールパスの生成などに用いることができる。
<voxel̲map>で列挙した各ボクセルに対し,リンク情報を指定する。
<link̲map>の仕様は,表32による。
表32−<link̲map>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<link̲map>
(bit̲per̲link)
Positive
Integer
4 / 8 / 16
[−]
リンク情報1個を表現するbit数を4,
8又は16のいずれかで指定する(それ
ぞれ16進文字列1文字,2文字又は4
文字)。
必須
(neighbors)
Positive
Integer
6 / 18 / 26
[−]
対象ボクセルの周囲をどの近傍までリ
ンク情報を保持するかを6,18又は26
のいずれかで指定する。
必須
(compression)
String
none / base64 /
zlib / runlength
[none]
<layer>データの圧縮方法をnone(圧縮
無し),base64,zlib又はrunlengthのい
ずれかで指定する。
−
ボクセルユニットの周囲をどの近傍までリンク情報を保持するかを指定する(neighbors)には,3種類あり,
次による。
・ 6 … 該当ボクセルと面で接する6個のボクセルとの間のリンク情報を表現する(6近傍)。
・ 18 … 該当ボクセルと辺で接する18個のボクセルとの間のリンク情報を表現する(18近傍)。
・ 26 … 該当ボクセルと点で接する26個のボクセルとの間のリンク情報を表現する(26近傍)。
1個のボクセルが管理するリンク情報は,(bit̲per̲link)分の16進文字数×(neighbors)個分で表す。次の例
1及び例2は,<link̲map>の中から1個分のボクセルのリンク情報の記述を抜き出した例である。
例1 <link̲map bit̲per̲link=4, neighbors=6>
<layer>...004af0...</layer>
</link̲map>
16進文字1文字×6近傍=1ボクセル分のリンク情報は,16進文字6文字で記述する。
例2 <link̲map bit̲per̲link=16, neighbors=26>
<layer>...
000000000000004e01a90000000000000000000f
0cbe0000100d0000005000000000000000000000
00200ff6 0000000000000000...
</layer>...
</link̲map>...
16進文字4文字×26近傍=1ボクセル分のリンク情報は,16進文字104文字で記述する。
<link̲map>には,<dimension.z>分の<layer>を定義する。一つの<layer>には,xy平面1層分のリンク情報
を記述する。一つの<layer>には,<voxel̲map>に列挙したボクセルそれぞれに対し,(neighbors)に指定した
隣接ボクセルにリンク情報を指定する。<voxel̲map>でボクセルが存在しないことを表す“0”を指定した
場合,<link̲map>上でのリンク情報の指定は省略し,左詰めにする。
隣接するボクセルが存在しない場合,リンク情報に“0”を指定し,必ず(neighbors)で指定した数に相当
30
B 9442:2019
するbyte数分のリンク情報を列挙しなければならない。
<link̲map>上でのリンク情報の記述順序は,次の図10で示すとおり,z軸,y軸及びx軸の順で座標値
の小さい順とする。赤のボクセルは対象ボクセルを,数字は記述順序を示している。
図10−各近傍のフォーマットの記述順序
<link̲map>がもつ要素の仕様は,表33による。
表33−<link̲map>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<layer>
−
CDATA
3Dモデルのリ
ンク情報を表
す16進文字列
[−]
<voxel̲map>に列挙したボクセルのリ
ンク情報を,(neighbors)に指定したフォ
ーマットで,図10の順番に列挙する。
<link̲map>の(compression)にnone以外
を指定した場合,<layer>のデータは,
指定の圧縮方法で圧縮して格納され
る。
一つ以上
<link̲map>に関する説明は,B.4を参照。
8.3.5
ユーザ定義属性配置<user̲defined̲map>
8.3.5.1
基本
<user̲defined̲map>では,FAVフォーマットによって定義する3Dモデルを構成する各<grid>のセルに対
し,ユーザ独自の属性を付与するためのマップを設定する。ここでは,ユーザ定義属性の付与対象となる
ファイルを,“親ファイル”という。
ユーザ定義属性は,親ファイルの<grid>のセル一つに対し,一つの属性値を対応付ける。ユーザ定義属
性のマップを複数定義することで,親ファイルの<grid>のセル一つに対し,複数の属性を対応付けできる。
<user̲defined̲map>の仕様は,表34による。
31
B 9442:2019
表34−<user̲defined̲map>の仕様
要素
属性
型
データ
[規定値]
説明
条件
<user̲defined̲
map>
(value̲type)
String
byte / short /
ushort / int / uint
/ float / double
[byte]
外部ファイルに格納しているユーザ定
義属性の,ボクセル1個分の属性値の
型を指定する。
必須
(compression)
String
none / base64 /
zlib / runlength
[none]
外部ファイルに格納している<layer>デ
ータの圧縮方法をnone(圧縮無し),
base64,zlib又はrunlengthのいずれか
で指定する(XML形式の“.favmapx”
ファイルのときだけ有効)。
−
<user̲defined̲map>には,次の要素を定義する。
・ <reference>
・ <metadata>
<user̲defined̲map>は,<reference>を定義することで,外部ファイルからユーザ定義属性を読み込む。外
部ファイルは,XML形式(拡張子“.favmapx”)又はバイナリ形式(拡張子“.favmap”)でユーザ定義属性
を記述する。ユーザ定義属性ファイルの詳細な仕様は8.3.5.2及び8.3.5.3を参照。
<user̲defined̲map>を定義したユーザだけでなく,データを利用する別のユーザにも,定義している属
性の種類と読み込む必要性とが判断できるように,<metadata>を定義することが望ましい。
<user̲defined̲map>がもつ要素の仕様は,表35による。
表35−<user̲defined̲map>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<reference>
−
CDATA
ユーザ定義属
性を格納する
外部ファイル
パス
[−]
ユーザ定義属性を格納している外部の
“.favmap”又は“.favmapx”ファイル
までの相対パスを文字列で指定する。
必須
<metadata>
−
箇条5参照
ユーザ定義属性を特定するための
ID<id>,タイトル<title>,作者<author>,
ライセンス<license>及びメモ<note>を
定義する。
−
8.3.5.2
ユーザ定義属性ファイル−XML形式(.favmapxファイル)
<user̲defined̲map>の<reference>で指定する,ユーザ定義属性を格納する外部の“.favmap”ファイルの
仕様を規定する。ここでは,“.favmap”ファイルを参照する側の“.fav”ファイルを,“親ファイル”とい
う。
XML形式でユーザ定義属性を格納する場合,次のように記述する。
例 <?xml version="1.0" encoding="utf-8"?>
<fav version="1.1">
<user̲defined̲map>
<layer><![CDATA[……]]></layer>
32
B 9442:2019
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
<layer><![CDATA[……]]></layer>
</user̲defined̲map>
</fav>
<user̲defined̲map>には,親ファイルの<dimension.z>分の<layer>を定義する。一つの<layer>には,xy平
面1層分のユーザ定義属性のマップを記述する。一つの<layer>には,親ファイルの(value̲type)で指定した
型の属性値を,親ファイルの<dimension.x>×<dimension.y>の数に相当する分,列挙する。これらのデータ
は,親ファイルの(value̲type)に指定したデータごとに,表36に従って記述する。
表36−(value̲type)のデータごとの記述方法
(value̲type)のデータ
記述方法
byte
1セルのユーザ定義属性値は,0 〜 255の範囲で指定する。
1セルのユーザ定義属性値は,1 byte(16進文字2文字)となる。
short
1セルのユーザ定義属性値は,−32 768 〜 32 767の範囲で指定する。
1セルのユーザ定義属性値は,2 byte(16進文字4文字)となる。
ushort
1セルのユーザ定義属性値は,0 〜 65 535の範囲で指定する。
1セルのユーザ定義属性値は,2 byte(16進文字4文字)となる。
int
1セルのユーザ定義属性値は,−2 147 483 648 〜 2 147 483 647の範囲で指定する。
1セルのユーザ定義属性値は,4 byte(16進文字8文字)となる。
uint
1セルのユーザ定義属性値は,0 〜 4 294 967 295の範囲で指定する。
1セルのユーザ定義属性値は,4 byte(16進文字8文字)となる。
float
1セルのユーザ定義属性値は,±10-37〜 ±1038の範囲で指定する。
1セルのユーザ定義属性値は,4 byte(16進文字8文字)となる。
double
1セルのユーザ定義属性値は,±10-307〜 ±10308の範囲で指定する。
1セルのユーザ定義属性値は,8 byte(16進文字16文字)となる。
親ファイルの<voxel̲map>でボクセルが存在しないことを表す“0”を指定した場合でも,
<user̲defined̲map>へ属性情報を指定する。属性情報が,不要な場合は“0”を指定する。
“.favmapx”ファイルは,親ファイルと次の関係性を保たなければならない。
・ 親ファイルの<voxel̲map>の<layer>数と,<user̲defined̲map>の<layer>数とが等しい。
・ 親ファイルの<voxel̲map>の<layer>に列挙するデータ数と,<user̲defined̲map>の<layer>に列挙するデ
ータ数とが等しい(データ数が親ファイルの <dimension.x>×<dimension.y> となる。)。
<user̲defined̲map>に,複数の<layer>を定義する。
< user̲defined̲map>がもつ要素の仕様を,表37に示す。
表37−<user̲defined̲map>がもつ要素の仕様
要素
属性
型
データ
[規定値]
説明
条件
<layer>
−
CDATA
ユーザ定義属
性を列挙した
文字列
[−]
親ファイルの<grid>各セルの属性情報
を,親ファイルの(value̲type)に指定した
フォーマットで列挙する。親ファイルの
<user̲defined̲map>の(compression)に
none以外を指定した場合,<layer>のデ
ータは,指定の圧縮方法で圧縮して格納
される。
−
33
B 9442:2019
8.3.5.3
ユーザ定義属性ファイル−バイナリ形式(.favmapファイル)
<user̲defined̲map>の<reference>で指定する,ユーザ定義属性を格納する外部の“.favmap”ファイルの
仕様を規定する。ここでは,“.favmap”ファイルを参照する側の“.fav”ファイルを,“親ファイル”とい
う。
バイナリ形式でユーザ定義属性を格納する場合,親ファイルの(value̲type)に指定したデータごとに,表
36に従ってデータを記述する。データは,バイナリファイルの先頭から次のように属性情報を格納する。
a) 親ファイルの<grid>の地面に近い層,すなわち,高さ方向の一番低い層から格納する。親ファイルの
<grid>の<dimension.x>1列分の属性情報を,バイナリファイルの先頭から順に格納する。属性情報が
ない場合は,“0”を格納する。
b) そのまま続けて次の<dimension.x>1列分の属性情報を格納する。
c) b)を親ファイルの<grid>の<dimension.y>分,続けて格納する。親ファイルの <dimension.x>×
<dimension.y>分を格納した時点で,xy平面1層分のユーザ定義属性となる。
d) そのまま続けて次の層のb)及びc)を繰り返す。親ファイルの <dimension.x>×<dimension.y>×
<dimension.z> 分を格納した時点で,親ファイルの<grid>全体分のユーザ定義属性となる。
バイナリファイル内には,データの区切り及び<layer>の区切りを表す情報は含まず,全てのデータは,
ユーザ定義属性を表す。
“.favmap”ファイルのサイズは,次の式による。
サイズ(byte)=親ファイルの <dimension.x>×<dimension.y>
×<dimension.z>×(value̲type)で示す型のbyte数
34
B 9442:2019
附属書A
(参考)
FAVフォーマットの一覧表
A.1 要素及び属性の一覧表
この規格の本文で規定するFAVフォーマットの全ての要素及び属性を,利便性のために一覧表にまとめ
て,表A.1に示す。
表A.1−全要素及び属性一覧表
要素
(左列に行くほど親階層,右列に行くほど
子階層を表す)
属性
型
データ
[規定値]
説明
条件
<fav>
−
−
−
FAVフォーマットのルート
要素。<metadata>,<palette>,
<voxel>及び<object>を定義
する。
必須
(version) String
FAVフォー
マットのバ
ージョン番
号
[−]
FAVファイルが従っている
フォーマットのバージョン
番号を指定する。
必須
<fav>/
<mate
rial>/<
object
>/<use
r̲defi
ned̲m
ap>
<metadata>
−
−
−
−
<metadata>には,<id>,
<title>,<author>,<license>
及び<note>を定義する。
−
<id>
−
String
親要素の
ID
[−]
<metadata>を定義する親要素
を一意に示すIDを指定す
る。
必須
<title>
−
CDATA
親要素の名
前
[−]
<metadata>を定義する親要素
を表す名前を指定する。
必須
<author
>
−
CDATA
親要素の作
者
[−]
<metadata>を定義する親要素
の作者情報を指定する。
必須
<license>
−
CDATA
親要素のラ
イセンス情
報
[−]
<metadata>を定義する親要素
のライセンス情報を指定す
る。
必須
<note>
−
CDATA
親要素に関
するメモ
[−]
<metadata>を定義する親要素
に関するメモを指定する。
−
35
B 9442:2019
表A.1−全要素及び属性一覧表(続き)
要素
(左列に行くほど親階層,右列に行くほど
子階層を表す)
属性
型
データ
[規定値]
説明
条件
<fav>
<palett
e>
−
−
−
−
<palette>には,<geometry>及
び<material>を定義する。
必須
<geom
etry>
−
−
−
−
<geometry>には,<shape>及
び<scale>を定義する。
複数
定義可
(id)
Positive
Integer
幾何情報の
ID
[1〜a)]
<geometry>を一意に示すた
めのIDを設定する。他の
<geometry>の(id)と重複して
はならない。
必須
(name)
String
定義する幾
何情報の名
称
[−]
<geometry>の名前を設定す
る。他の<geometry>の(name)
と重複しないほうがよい。
−
<shape>
−
String
cube
/
sphere
/
user̲define
d
[cube]
ボクセルの形状を指定する。
user̲definedを指定した場合,
<reference>を追加で指定し
なければならない。
−
<reference>
−
CDATA
ボクセルの
形状を定義
するSTLフ
ァイルパス
[−]
ボクセルの形状を定義する
外部のSTLファイルまでの
相対パスを指定する。
−
<scale>
<x>
−
Double
x方向の倍
率
[1.0]
<grid>のセルを基準として,
<shape>のx方向の倍率を指
定する。負の値を設定した場
合,反転する。“0”を指定し
てはならない。
−
<y>
−
Double
y方向の倍
率
[1.0]
<grid>のセルを基準として,
<shape>のy方向の倍率を指
定する。負の値を設定した場
合,反転する。“0”を指定し
てはならない。
−
<z>
−
Double
z方向の倍
率
[1.0]
<grid>のセルを基準として,
<shape>のz方向の倍率を指
定する。負の値を設定した場
合,反転する。“0”を指定し
てはならない。
−
36
B 9442:2019
表A.1−全要素及び属性一覧表(続き)
要素
(左列に行くほど親階層,右列に行くほど
子階層を表す)
属性
型
データ
[規定値]
説明
条件
<fav>
<palett
e>
<mate
rial>
−
−
−
−
<material>
に
は
,
<material̲name>
,
<product̲info>及び/又は
<standard̲name>のいずれか
一つ以上を定義する。
<metadata>を定義してもよ
い。
複数
定義可
(id)
Positive
Integer
材料情報の
ID
[1〜a)]
<material>を一意に示すため
のIDを設定する。他の
<material>の(id)と重複して
はならない。
必須
(name)
String
定義する材
料情報の名
称
[−]
<material>の名前を設定す
る。他の<material>の(name)
と重複しないほうがよい。
−
<materi
al̲nam
e>
−
−
CDATA
材料の名前
情報
[−]
何の材料を使用するかを判
別できる名称を指定する。
−
<produc
t̲info>
−
−
−
−
<product̲info>
に
は
,
<manufacturer>
,
<product̲name>又は<url>を
定義してもよい。
複数
定義可
<manuf
acturer>
−
CDATA
材料メーカ
名
[−]
材料のメーカ名を指定する。
−
<produc
t̲name
>
−
CDATA
材料の製品
名
[−]
材料を表すメーカ指定の製
品名,製品コードなどを指定
する。
−
<url>
−
CDATA
材料に関す
るweb上の
情
報
の
URL
[−]
材料に関するweb上の情報
へのリンクをURLで指定す
る。
−
<standa
rd̲nam
e>
−
−
CDATA
材料の規格
情報
[−]
材料を規格で規定している
名前に従って指定する。次の
形に従って記述する。
[規格種類 規格番号 材料
名]
−
37
B 9442:2019
表A.1−全要素及び属性一覧表(続き)
要素
(左列に行くほど親階層,右列に行くほど
子階層を表す)
属性
型
データ
[規定値]
説明
条件
<fav>
<voxel
>
−
−
−
−
<voxel>
に
は
,
<geometry̲info>
及
び
<material̲info>を記述する
か,又は<reference>だけを定
義する。<display>及び
<application̲note>を定義して
もよい。
必須
複数
定義可
(id)
Positive
Integer
ボクセルの
ID
[1〜a)]
<voxel>を一意に示すための
IDを1以上の整数で設定す
る。他の<voxel>の(id)と重複
してはならない。
必須
(name)
String
定義するボ
クセルの名
称
[−]
<voxel>の名前を設定する。
他の<voxel>の(name)と重複
しないほうがよい。
−
<geometry̲info>
−
−
−
−
−
−
<id>
−
Positive
Integer
定義済みの
幾何情報の
ID
[−]
<geometry>を参照するため
のIDを指定する。<geometry>
に設定済みの(id)を指定しな
ければならない。
必須
<material̲info>
−
−
−
−
−
複数
定義可
<id>
−
non
Negative
Integer
定義済みの
材料情報の
ID
[−]
<material>を参照するための
IDを指定する。<material>に
設定済みの(id),又は“0”を
指定する。
必須
<ratio>
−
Double
複数の材料
の複合割合
[−]
<material>を使用する割合を
指定する。他の<material>の
割合との合計で1.0になるよ
うに指定する。0以下を指定
してはならない。
−
38
B 9442:2019
表A.1−全要素及び属性一覧表(続き)
要素
(左列に行くほど親階層,右列に行くほど
子階層を表す)
属性
型
データ
[規定値]
説明
条件
<fav>
<voxel
>
<display>
<r>
−
non
Negative
Integer
ボクセル表
示色の赤
(R)成分
[−]
<voxel>の色情報を表す赤成
分を指定する。0未満又は256
以上の値を指定してはなら
ない。
−
<g>
−
non
Negative
Integer
ボクセル表
示色の緑
(G)成分
[−]
<voxel>の色情報を表す緑成
分を指定する。0未満又は256
以上の値を指定してはなら
ない。
−
<b>
−
non
Negative
Integer
ボクセル表
示色の青
(B)成分
[−]
<voxel>の色情報を表す青成
分を指定する。0未満又は256
以上の値を指定してはなら
ない。
−
<a>
−
non
Negative
Integer
ボクセル表
示色の透明
度
[−]
<voxel>の色情報を表す透明
度を指定する。0未満又は256
以上の値を指定してはなら
ない。
−
<application̲note
>
−
−
CDATA
ボクセルに
格納する任
意のプロパ
ティ情報
[−]
<voxel>に格納する任意のプ
ロパティを指定する。複数の
<application̲note>の中から必
要なデータを判別し抽出で
きるような,手がかりとなる
記述を添えておくことが望
ましい。
−
<reference>
−
−
CDATA
1ボクセル
として扱う
ボクセル集
合を定義す
るFAVフ
ァイルパス
[−]
1ボクセルとして扱う外部の
FAVファイルまでの相対パ
スを指定する。
−
<object
>
−
−
−
−
<object>には,<grid>及び
<structure>を記述しなければ
ならない。<metadata>を定義
してもよい。
必須
複数
定義可
(id)
Positive
Integer
オブジェク
トのID
[1〜a)]
<object>を一意に示すための
IDを設定する。他の<object>
の(id)と重複してはならな
い。
必須
(name)
String
定義するオ
ブジェクト
の名称
[−]
<object>の名前を設定する。
他の<object>の(name)と重複
しないほうがよい。
−
39
B 9442:2019
表A.1−全要素及び属性一覧表(続き)
要素
(左列に行くほど親階層,右列に行くほど
子階層を表す)
属性
型
データ
[規定値]
説明
条件
<fav>
<object
>
<grid>
−
−
−
−
<grid>には,<origin>,<unit>
及び<dimension>を定義する。
−
<origin>
<x>
−
Double
x方向の原
点までの距
離
[0.0]
グローバル座標空間の原点
から<grid>の原点までのx方
向のオフセット値を指定す
る。
−
<y>
−
Double
y方向の原
点までの距
離
[0.0]
グローバル座標空間の原点
から<grid>の原点までのy方
向のオフセット値を指定す
る。
−
<z>
−
Double
z方向の原
点までの距
離
[0.0]
グローバル座標空間の原点
から<grid>の原点までのz方
向のオフセット値を指定す
る。
−
<unit>
<x>
−
Double
x方向のセ
ルサイズ
[1.0]
<grid>のセル一つ分のx方向
の大きさを指定する。0以下
を指定してはならない。
−
<y>
−
Double
y方向のセ
ルサイズ
[1.0]
<grid>のセル一つ分のy方向
の大きさを指定する。0以下
を指定してはならない。
−
<z>
−
Double
z方向のセ
ルサイズ
[1.0]
<grid>のセル一つ分のz方向
の大きさを指定する。0以下
を指定してはならない。
−
<dimen
sion>
<x>
−
Positive
Integer
x方向のセ
ル数
[−]
<grid>のx方向にボクセルを
並べることができる個数を
指定する。
必須
<y>
−
Positive
Integer
y方向のセ
ル数
[−]
<grid>のy方向にボクセルを
並べることができる個数を
指定する。
必須
<z>
−
Positive
Integer
z方向のセ
ル数
[−]
<grid>のz方向にボクセルを
並べることができる個数を
指定する。
必須
<struct
ure>
−
−
−
−
<structure>
に
は
,
<voxel̲map>,<color̲map>及
び<link̲map>を定義する。
<user̲defined̲map>を定義し
てもよい。
必須
40
B 9442:2019
表A.1−全要素及び属性一覧表(続き)
要素
(左列に行くほど親階層,右列に行くほど
子階層を表す)
属性
型
データ
[規定値]
説明
条件
<fav>
<objec
t>
<struct
ure>
<voxel̲
map>
−
−
−
−
<voxel̲map>には,<layer>を
定義する。
−
(bit̲per
̲voxel)
Positive
Integer
4 / 8 / 16
[−]
ボクセル1個を表現するbit
数を4,8又は16のいずれか
で指定する(それぞれ16進
文字列1文字 ,2文字又は4
文字)。
必須
(compre
ssion)
String
none
/
base64
/
zlib
/
runlength
[none]
<layer>データの圧縮方法を
none(圧縮無し),base64,zlib
又はrunlengthのいずれかで
指定する。
−
<layer>
−
CDATA
ボクセルの
IDを列挙
した文字列
[−]
<voxel>
の
(id)
を
(bit̲per̲voxel)で指定したフ
ォーマットで列挙する。
<dimension.x>
×
<dimension.y>分の(id)を1行
に連結して記述する。
<voxel̲map>の(compression)
にnone以外を指定した場合,
<layer>のデータは,指定の圧
縮方法で圧縮して格納され
る。
一つ
以上
<color̲
map>
−
−
−
−
<color̲map>には,<layer>を
定義する。
−
(color̲
mode)
String
GrayScale /
GrayScale1
6 / RGB /
RGBA
/
CMYK
[−]
ボクセルに定義する色情報
フォーマットを,GrayScale,
GrayScale16,RGB ,RGBA
又はCMYKのいずれかで指
定する。
必須
(compre
ssion)
String
none
/
base64
/
zlib
/
runlength
[none]
<layer>データの圧縮方法を
none(圧縮無し),base64,zlib
又はrunlengthのいずれかで
指定する。
−
<layer>
−
CDATA
3Dモデル
の色情報を
表す16進
文字列
[−]
<voxel̲map>に列挙したボク
セルの色情報を,
(color̲mode)に指定したフォ
ーマットで列挙する。
<color̲map>の(compression)
にnone以外を指定した場合,
<layer>のデータは,指定の圧
縮方法で圧縮して格納され
る。
一つ
以上
41
B 9442:2019
表A.1−全要素及び属性一覧表(続き)
要素
(左列に行くほど親階層,右列に行くほど
子階層を表す)
属性
型
データ
[規定値]
説明
条件
<fav>
<objec
t>
<struct
ure>
<link̲
map>
−
−
−
−
<link̲map>には,<layer>を定
義する。
−
(bit̲per
̲link)
Positive
Integer
4 / 8 / 16
[−]
リンク情報1個を表現する
bit数を4,8又は16のいず
れかで指定する(それぞれ16
進文字列1文字,2文字又は
4文字)。
必須
(neighb
ors)
Positive
Integer
6 / 18 / 26
[−]
対象ボクセルの周囲をどの
近傍までリンク情報を保持
するかを6,18又は26のい
ずれかで指定する。
必須
(compre
ssion)
String
none
/
base64
/
zlib
/
runlength
[none]
<layer>データの圧縮方法を
none(圧縮無し),base64,zlib
又はrunlengthのいずれかで
指定する。
−
<layer>
−
CDATA
3Dモデル
のリンク情
報を表す
16進文字
列
[−]
<voxel̲map>に列挙したボク
セルのリンク情報を,
(neighbors)に指定したフォー
マットで,図10の順番に列
挙する。<link̲map>の
(compression)にnone以外を
指定した場合,<layer>のデー
タは,指定の圧縮方法で圧縮
して格納される。
一つ
以上
<user̲
defined
̲map>
−
−
−
−
<user̲defined̲map>には,
<reference>を定義する。
<metadata>を定義してもよ
い。
複数
定義可
(value̲
type)
String
byte / short /
ushort / int /
uint / float /
double
[byte]
外部ファイルに格納してい
るユーザ定義属性の,ボクセ
ル1個分の属性値の型を指定
する。
必須
(compre
ssion)
String
none
/
base64
/
zlib
/
runlength
[none]
外部ファイルに格納してい
る<layer>データの圧縮方法
をnone(圧縮無し),base64,
zlib又はrunlengthのいずれか
で指定する(XML形式の
“.favmapx”ファイルのとき
だけ有効)。
−
<refere
nce>
−
CDATA
ユーザ定義
属性を格納
する外部フ
ァイルパス
[−]
ユーザ定義属性を格納して
いる外部の“.favmap”又は
“.favmapx”ファイルまでの
相対パスを文字列で指定す
る。
必須
注a) 最初の規定値は,“1”。それ以降の規定値は,1ずつ加算する。
42
B 9442:2019
附属書B
(参考)
構造<structure>の各要素の説明
B.1
3Dモデルデータの例
この附属書では,FAVフォーマットで定義可能な図B.1のような3Dモデルデータを例に説明する。
図B.1−FAVフォーマットで定義可能な3Dモデルデータの例
B.2
ボクセル配置<voxel̲map>
図B.1の3Dモデルデータの1層目を記述した<voxel̲map>は,次のようになる(<voxel̲map>のセルの
塗り潰しは,可視性を考慮したものであり,データとしての意味はない。)。
a) <grid>の<dimension.x>1列分の各位置におけるボクセルの有無を,<voxel>の(id)で列挙する。ボクセル
がない場合は,“0”を記述する(図B.2参照)。
( <dimension.x> = 7 )
図B.2−<dimension.x>1列分の<voxel̲map>
b) <grid>の<dimension.x>分列挙した<voxel̲map>を,<dimension.y>分列挙する(図B.3参照)。
x
y
x
y
z
x
z
z
y
43
B 9442:2019
( <dimension.x> = 7, <dimension.y> = 7 )
図B.3−<dimension.x>×<dimension.y>1層分の<voxel̲map>
c) <grid>の<dimension.x>×<dimension.y>分の<voxel̲map>を1行に連結したものが,1層目の<layer>のデ
ータとなる(図B.4参照)。
<layer>0101000000000001010000…020200000002020202</layer>
図B.4−1層分の<voxel̲map>を1列に連結した<layer>のデータ
d) <grid>の<dimension.x>×<dimension.y>を1行で列挙した1層分の<layer>を,<dimension.z>分定義する
ことによって,3Dモデルデータ全体の形状を定義する(図B.5参照)。
図B.5−3Dモデルデータ全体の<voxel̲map>
<layer>0101000000000001010000…020200000002020202</layer>
…
<layer>0000000101010100000001010101000000…000000</layer>
…
( <dimension.z> = 7 )
44
B 9442:2019
B.3
カラー配置<color̲map>
3Dモデルデータの1層目を記述した<color̲map>は,次のようになる(セルの塗り潰しは,可視性を考
慮したものであり,データとしての意味はない。)。
a) <grid>の<dimension.x>1列分の各位置におけるボクセルの色情報を,(color̲mode)に指定したフォーマ
ットで指定する。ボクセルユニットが存在しないことを示す0が指定されている場合,省略する(図
B.6参照)。
図B.6−<dimension.x>1列分の<color̲map>
b) <grid>の<dimension.x>分列挙した<color̲map>を,<dimension.y>分指定する。<dimension.x>×
<dimension.y>分のカラーマップを1行に連結したものが,1層分の<layer>のデータとなる(図B.7参
照)。
1層分の<layer>に存在する21個のボクセルに定義された<color̲map>のデータ例
<layer>8300258100277600329100176400457c002d5e004a5c004c5000595600523300753700713000782f007a31007718
00900f00991f00891c008c1300960c009c</layer>
図B.7−<dimension.x>×<dimension.y>1層分の<color̲map>
c) <dimension.x>×<dimension.y>分の<color̲map>を1行に連結した1層分の<layer>を,<dimension.z>分
指定することによって,3Dモデルデータ全体の色情報を定義する。
B.4
リンク配置<link̲map>
図B.1の3Dモデルデータのうち,特定の箇所のボクセルに対して定義するリンクデータは,次のよう
になる。
a) (neighbors)に6を指定したときに,x軸方向,y軸方向及びz軸方向のリンク情報をそれぞれ100,200
以下は,0のため省略する。
<dimension.x>1列分の<color̲map>は,830025810027となる。
45
B 9442:2019
及び255とした場合,図B.8のvoxel1及びvoxel2が示す箇所のリンク情報は,次のように記述する。
図B.8−近傍のフォーマットの記述順序
b) a)のように定義するボクセル一つ分のリンク情報を,<dimension.x>×<dimension.y>分列挙することで,
1層分のリンク情報のマップを定義する。それを1行に連結したものが,1層分の<layer>のデータと
なる。<layer>を<dimension.z>分定義することによって,3Dモデルデータ全体のリンク情報を定義す
る(図B.9参照)。
layer1に存在する21個のボクセルに定義された<link̲map>のデータ例
<layer>00000064c8ff00000000c8ff00000064c8ff00000000c8ff00c80064c8ff00c80000c8ff00c8006400ff00c80064c8ff00006400c
8ff00c8006400ff00c86464c8ff00006400c8ff00c8006400ff00c86464c8ff00006464c8ff00006464c8ff00006400c8ff00c8006400ff0
0c8646400ff00c8646400ff00c8640000ff</layer>
図B.9−<dimension.x>×<dimension.y>1層分の<link̲map>
46
B 9442:2019
附属書C
(参考)
FAVフォーマットのXMLの例
C.1 XMLの例
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>
47
B 9442:2019
<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>
48
B 9442:2019
</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[01010000000000010100000000000101000000000001010100000000
000101010000000000010101010100000001010101]]></layer>
<layer><![CDATA[01010000000000010100000000000101000000000001010100000000
000101010000000000010101010100000001010101]]></layer>
<layer><![CDATA[01010000000000010100000000000101010000000000010101000000
000101010100000000010101010100000000010101]]></layer>
<layer><![CDATA[01010100000000010101000000000001010100000000010101010000
000001010101010000000101010100000000010101]]></layer>
<layer><![CDATA[00010101000000000101010000000001010101000000000101010101
000001010101010000000001010100000000000000]]></layer>
49
B 9442:2019
<layer><![CDATA[00010101010100000001010101010000010101010100000001010101
000000000101010000000000000100000000000000]]></layer>
<layer><![CDATA[00000001010101000000010101010000000101010100000000010101
000000000000000000000000000000000000000000]]></layer>
</voxel̲map>
<color̲map color̲mode="RGB" compression="none" >
<layer><![CDATA[8300258100277600329100176400457c002d5e004a5c004c500059560052
3300753700713000782f007a3100771800900f00991f00891c008c130096
0c009c]]></layer>
<layer><![CDATA[8200269700117400348e001a6300466800405b004e59005055005355005
34000684200663b006d2c007c2400842d007a1700911f00891e008b14009
4100098]]></layer>
<layer><![CDATA[8900209a000e8500237f002a8100277b002d6c003c7700315800515a004e
5300554900604200673d006b390070380070270081230086300079270081
19008f19008f]]></layer>
<layer><![CDATA[9300159800109b000e8100278000288100277f0029720036700039750033
6e003b6f003a58005159004f3e006a4100684100674100673d006b2d007c
2200862000892c007c2100881f0089]]></layer>
<layer><![CDATA[99000f9700119a000e9200169200168a001e7500337300347000386b003d
72003562004759004f6300465b004e6100475d004b55005342006639006f
4300662a007e270081]]></layer>
<layer><![CDATA[9000189000188a001e9700129600128f001988001f8c001c7b002d7a002e
8700218600237700316f00396d003c5c004c6f003a6d003c5800505a004e
5300554f005939006f]]></layer>
</color̲map>
<link̲map bit̲per̲link="8" neighbors="6" compression="none">
<layer><![CDATA[00000064c8ff00000000c8ff00000064c8ff00000000c8ff00c80064c8ff
00c80000c8ff00c8006400ff00c80064c8ff00006400c8ff00c8006400ff
00c86464c8ff00006400c8ff00c8006400ff00c86464c8ff00006464c8ff
00006464c8ff00006400c8ff00c8006400ff00c8646400ff00c8646400ff
00c8640000ff]]></layer>
<layer><![CDATA[00000064c8ff00000000c8ff00000064c8ff00000000c8ff00c80064c8ff
00c80000c8ff00c80064000000c80064c8ff00006400c8ff00c8006400ff
00c86464c8ff00006400c8ff00c8006400ff00c86464c8ff00006464c8ff
00006464c8ff00006400c8ff00c80064000000c8646400ff00c8646400ff
00c8640000ff]]></layer>
<layer><![CDATA[ff000064c8ffff000000c8ffff000064c8ffff000000c8ffffc800640000
ffc80064c8ff00006400c8ffffc80064c8ffffc86464c8ff00006400c8ff
ffc800640000ffc86464c8ffffc86464c8ff00006400c8ffffc800640000
ffc8646400ffffc86464c8ffff006464c8ffff006400c8ffffc8006400ff
50
B 9442:2019
ffc8646400ffffc8640000ff]]></layer>
<layer><![CDATA[ff000064c800ff000064c8ff00006400c8ffff0000640000ff000064c8ff
00006400c8ffffc80064c8ffffc86464c8ff00006400c8ffffc800640000
ffc86464c8ffffc86464c8ff00006400c8ffffc8006400ffffc86464c8ff
ffc86464c8ff00006464c8ff00006400c8ffffc800640000ffc86464c8ff
ffc86464c8ffffc86400c8ffffc800640000ffc864640000ffc864000000]]></layer>
<layer><![CDATA[ff000064c8ffff006464c8ff00006400c8ffff000064c800ff006464c8ff
00006400c8ffffc800640000ffc86464c8ffffc86464c8ff00006400c8ff
ffc80064c800ffc86464c8ffffc86464c8ff00006464c8ff00006400c8ff
ffc800640000ffc864640000ffc86464c8ffffc86464c8ffffc86400c8ff
ffc800640000ffc864640000ffc8640000ff]]></layer>
<layer><![CDATA[ff0000640000ff006464c800ff006464c8ff00006464c8ff00006400c8ff
ff000064c800ff006464c8ff00006464c8ff00006464c8ff00006400c8ff
ffc800640000ffc86464c8ffffc86464c8ff00c86464c8ff00c86400c8ff
ffc800640000ffc86464c8ffffc86464c8ffffc86400c8ffffc800640000
ffc864640000ffc86400c800ffc800000000]]></layer>
<layer><![CDATA[ff000064c800ff006464c800ff006464c80000006400c800ff000064c800
ff006464c800ff006464c800ff006400c800ffc800640000ffc86464c800
ffc86464c800ffc86400c800ffc800640000ffc864640000ffc864000000]]></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>