3MF を PLY に変換 — ミリメートル単位で測る

3MF を PLY にすると、造形用のパッケージが、測定用のメッシュに変わります。単位はミリメートルに解決され、頂点数はそのまま渡るので、MeshLab が返す体積や距離の数字を、単位の心配なしに信じられます。変換はブラウザーの中で行われ、アップロードはありません。

  • 処理される場所 ブラウザーの中です。ファイルがアップロードされることはありません。
  • 作り直し PLYは3MFとは仕組みが違います。非可逆コーデックのような段階的な劣化ではありません。PLYが表現できるものは忠実に再現され、対応するものがないものはまったく残りません。
  • ファイルサイズの上限 1ファイルあたり100MBまで。無料、アカウント不要です。
  • 知っておきたいこと 形状だけです。材質・色・テクスチャ・アニメーションは引き継がれず、同じモデルを複数回配置していた場合は、それぞれの位置に焼き付けられた別々のコピーとして返ってきます。

一度に100ファイルまで。フォーマットが混ざっていても構いません。

造形ではなく、確認のための変換です

壁の厚さは本当に 1.6 mm あるか。この部品にはどれだけの材料が要るか。サプライヤーから届いた 3MF は、承認した形状と一致しているか。スキャンし直した完成部品は、モデルからどれだけずれたか。こうした問いはスライサーでは答えられません。

MeshLab、CloudCompare、trimesh はどれも PLY を説明なしに扱える形式として前提にしています。ですからこの変換は納品の一歩ではなく、測定の一歩です。見た目ではなく、数字の正しさを問う場面のための変換です。

このサイトで唯一、単位付きで届く PLY

PLY 自体は単位を記録しません。STL も OBJ も glTF も同じです。あるスキャナーはミリメートルで、別のスキャナーはメートルで出しますし、モデリングソフトの作者が何を思っていたかは分かりません。ですから普通の PLY で計算した体積は、単位を別途確認しなければ意味を持ちません。

3MF は例外です。仕様がモデル要素に単位の宣言——マイクロメートルからメートルまで——を義務付けているからです。読み込み側はそれを解決し、インチなら 25.4 倍、メートルなら 1000 倍してミリメートルに揃えます。ですから出てくる PLY は、元がどの単位で書かれていても常にミリメートルで、MeshLab の体積表示はそのまま立方ミリメートルとして読めます。

頂点数は 3MF のまま渡ります

STL は三角形ごとに独立した頂点を 3 つ持つので、読み込み時に溶接しないと非現実的なファイルになります。3MF はすでに索引付き頂点リストを持っているので、溶接も再採番も行われません。位置も三角形の並びも、ファイルが持っていたとおりに渡ります。

これは比較にとって重要な性質です。元が 48,212 個の頂点を持つと言えば、PLY のヘッダーも 48,212 と言い、差があればそれは変換の副作用ではなく本物の差です。ただし作成ソフトが残した重複頂点もそのまま残るので、きれいなメッシュを前提にするアルゴリズムを使う前に、許容誤差を指定して結合したほうがよい場合があります。

配置は焼き込まれ、座標はプレートを表します

3MF は「何であるか」と「どこに置くか」を分けて持ちます。メッシュはリソース部に、配置は変換行列としてビルド部にあります。PLY には配置を表す仕組みがないので、読み込み側はその変換をあらかじめ頂点へ適用します。

結果、PLY の座標はプレート座標であり、部品自身の座標ではありません。256 mm のベッドの奥に置かれた部品は原点から遠く離れた場所に位置し、境界ボックスは正しくても位置そのものは部品の説明にはなりません。体積や厚さの計測には影響しませんが、スキャンとの位置合わせや、同じ部品を書き出した 2 つのファイルの比較では、先に重心へ平行移動してから始めないと、100 mm 単位のずれから位置合わせをやり直す羽目になります。

プレート上のすべてが 1 つの面に合流します

PLY が持てるのは 1 つの頂点リストと 1 つの面リストだけです。3MF が名前の付いた 3 つの物体を持っていても、あるいは 1 つの物体を 5 回配置していても、頂点リストは連結され、面の番号はそれに合わせてずれ、結果は 1 つの面になります。

形状はそのままですが、識別は失われます。名前も、物体の境界も、物体ごとの付随情報も残りません。連結成分の解析——MeshLab の Split in Connected Components や trimesh の split() ——で個々の部品には戻せますが、合流したファイルで計算した体積はプレート全体の合計であり、「この部品にどれだけの材料が要るか」への答えにはなりません。部品ごとの数字が要るなら、スライサーで他の物体を削除してから 1 つずつ変換してください。

部品を組み合わせた構成体も、変換を適用したまま届きます

3MF の物体は、メッシュそのものではなく、他の物体を参照する `<components>` の一覧——それぞれ独自の変換行列を持つ——として定義されることがあります。読み込み側はその参照を再帰的にたどり、変換を上へ掛け合わせるので、2 段下にネストした部品も、ファイルが指示する場所に届きます。

以前はそうなっていませんでした。メッシュ要素だけをたどっていた時代は、ビルド項目が幾何形状を持たない物体を指していると、モデルは空になり、代わりに部品オブジェクトが原点に配置を無視して書き出されていました。2 部品の組み立てが原点で重なった 2 つの部品として出てくる、という壊れ方です。今は三角形が 1 つも見つからない 3MF に対しては「No triangle geometry was found in this 3MF」というメッセージが返り、自己参照する部品連鎖はスタックオーバーフローに落ちる前に打ち切られます。

PLY はテキストで、密な 3MF は大きなファイルになります

ヘッダーは常に `format ascii 1.0` です。バイナリで書く選択肢はなく、すべての座標が 10 進の文字として、すべての面が 3 から始まる行として書かれます。多くの形式解説——このサイトの他のページも含め——が PLY をバイナリ形式として説明しますが、それは仕様の話であって、ここから出てくるファイルの話ではありません。

サイズの差は大きく、圧縮された float32 の座標が 4 バイトなのに対し、テキストで書けば 10 から 15 文字になります。3MF は圧縮された XML なので、数メガバイトのパッケージが数倍のサイズの PLY に展開されるのは珍しくありません。それでもどんなソフトでも読めますし、`head -20` でヘッダーを覗けます。詰めたバイナリが必要なら、MeshLab や trimesh で読み込み直して保存すればバイナリ PLY になります。

MeshLab と CloudCompare で分かること

MeshLab の Compute Geometric Measures は表面積、体積、境界ボックス、重心を一度に返し、Topological Measures は連結成分数や境界エッジ、非多様体エッジを報告します。前者が「どれだけの材料か」に、後者が「これは本当に閉じた立体か」に答えます。Distance from Reference Mesh は 2 つのメッシュを頂点ごとに比較し、誤差を色分けした地図にします。

CloudCompare は片方がスキャンデータのときに向いています。cloud-to-mesh distance はスキャン点群と変換した PLY を比較し、符号付き距離をヒストグラムとして返します。印刷した部品がある面で 0.3 mm 小さいことを示す標準的な方法です。どちらの数字もミリメートルで返るのは、3MF がそう宣言していたからで、それがこの変換をわざわざ行う理由です。

3MF パッケージが展開される場所

このブラウザーのタブの中です。アーカイブの展開もモデル XML の解析も、ページ上で動く JavaScript が行い、フェッチする WebAssembly モジュールも、アップロードも、登録も、1 日の上限もありません。ネットワークタブを開いて変換すれば、それを確認できます。

造形ファイルはしばしば他人の知的財産——顧客の部品、サプライヤーの形状、秘密保持契約の下にある構成部品——です。ここで扱う品質保証という用事は、まさにそれが当てはまる場面です。ファイルを一切送らない変換であれば、誰かに断りを入れる必要すらありません。

3MF を PLY に変換する手順

  1. お手元の 3MF ファイル をこのページに落とすか、押してファイルを選んでください。
  2. 変換先に PLY を選びます。変換はブラウザーの中で行われ、ファイルはアップロードされません。
  3. できあがった PLY ファイル をダウンロードします。

3MF と PLY——何が変わるか

3MFとPLYの比較
3MFPLY
正式名称3D Manufacturing FormatPolygon File Format
拡張子.3mf.ply
メディアタイプmodel/3mfmodel/ply
最初の公開20151994
発行元3MF ConsortiumStanford University
仕様3MF Core Specification
ライセンスオープン標準オープン標準
現在の位置づけ現行現行
ブラウザで開けるか対応なし対応なし
代わりに検討される形式STL, OBJOBJ, STL

結果を開く

開くプログラムが重なりません。3MF はPrusaSlicer、Cura、Microsoft 3D Builderで、PLY はMeshLab、Blender、CloudCompareで開きます。結果を渡す相手には後者のどれかが要ります。

どちらの形式が何のためのものか

2 つは狙っている用途が違います。3MF は3D プリント、PLY はスキャンとプログラム間のデータ受け渡しです。ここは考える価値があります。一方が存在する理由が、そのままもう一方が使いにくい理由になっていることが多いからです。

3MF は 3MF Consortium の形式です(2015 年に登場)。 3MF Core Specification で規定されています。ファイルが、それを書いた道具より長く生きなければならないなら、この一点には値打ちがあります。

PLY は Stanford University の形式で、1994 年から使われています。MeshLab、Blender、CloudCompareがこの形式を読めます。

PLY は 1994 年、3MF は 2015 年に登場しました。人に渡すならたいてい古いほうが安全で、新しいほうは同じ仕事をより少ないバイト数で片づけます。

3MF から PLY:よくある質問

3MF ファイル はどこかにアップロードされますか。

いいえ。この変換は完全にブラウザーの中で行われるので、ファイルが端末から出ることはありません。ご自分で確かめられます。開発者ツールのネットワークタブを開いて、何か変換してみてください。ページそのものと、このサービスの費用をまかなっている分析・広告のリクエストは見えますが、あなたのファイルを運んでいるリクエストはひとつもありません。

3MF から PLY への変換は無料ですか。

はい。アカウントも透かしもなく、消費される 1 日の割り当てもありません。お使いの機械の上で動くので、何度でも戻ってきていただけます。ブラウザーが扱えるのは 100 MB までのファイルで、一度に 100 本です。

3MF を PLY に変換すると品質は落ちますか。

3MF と PLY は、内容の表し方が根本から違います。ですからこの変換は複製ではなく再構築です。誠実ではありますが、1 バイトも同じというわけではありません。 形状だけです。材質・色・テクスチャ・アニメーションは引き継がれず、同じモデルを複数回配置していた場合は、それぞれの位置に焼き付けられた別々のコピーとして返ってきます。

できあがった PLY ファイル を開くのに、何かインストールが必要ですか。

変換には要りません。すでに開いているブラウザーの中で行われます。そのあと結果を開くには、お使いの端末がふだん Polygon File Format を表示するのに使っているソフトが必要です。

これらのフォーマットについて