株式会社データ・デザイン Markforged|カーボン/金属対応3Dプリンタ

Markforged

お知らせ&コラム

MENU

NEWS & COLUMN お知らせ&コラム

コラム 2021.08.11 更新

3Dプリンタに最適な3Dデータ(STL)とは?

3Dプリンタに最適な3Dデータ(STL)とは?

3Dプリントしたパーツに、滑らかな曲線のはずなのに段差があったり、多面的であったりしたことはありませんか?
あるいは、一昔前のポリゴンCGのような3Dプリントパーツを見たことがあるかもしれません。その原因は主にパーツの造形に使用されたSTLファイル(メッシュデータ)の解像度が粗いからかもしれません。
そこで、高強度パーツが造形可能なMarkforged(マークフォージド)社製3Dプリンタで最高の造形物を製作するために、高品質のSTLを作成して素晴らしい3Dプリントパーツを作るためのガイドを作成しました。

このガイドでは、STLファイルと3Dプリントについて、以下の点を説明します。

  • STLファイルとは?
  • なぜSTLファイルが重要なのか
  • 最適ではないSTLを特定する
  • STLパラメータの定義
  • 弦公差
  • 角度公差/角度偏差/正規分布(ガウス分布)
  • メッシュ品質とファイルサイズの関係 Markforged社の推奨事項
  • 主要CADソフトウェアのSTLエクスポート設定、…etc


Markforgedの金属3Dプリンタ”Metal X”をご存じの方は、見たことがある画像かもしれません。実はこのモデルは、急いでSTLをエクスポートしてしまい、多面的なモデルになっております。Sinterで焼結した後に、気づいてしまったものである。

STLファイルとは?

STLファイルフォーマットは、1980年代後半に3Dプリントのために作成されたオリジナルの拡張子でありSTereoLithographyに由来しております。
Markforged社のスライスソフトウェア”Eiger”のような3Dプリンタ専用のソフトに3Dデータをインポートする為の事実上の3Dプリント業界の標準となっております。
3Dプリンタを使用したことがある方、または3Dプリンタ用に何かをデザインしたことがある方は、ほぼ確実にSTLファイルをご存じだと思いますが、すべてのSTLが同じではないことをご存知でしたか?
実は、機能要件を満たす3DモデルをCADで設計しても、そのCADモデルからSTLファイルに変換した際に問題が起こってしまい、規格外の造形品ができてしまうことがあるのです。

STLファイルは、3Dモデルの連続した表面を三角形のメッシュを集合させ構成したものです。より正確に説明をすると、STLファイルは、3次元座標と法線ベクトルを含んでいます。これらの座標はそれぞれ、三角形の頂点(コーナーポイント)で構成されており、法線方向は三角形の3つの頂点を結んだ時に生成される平面に対して垂直になっております。

STLファイルの三角メッシュは、この画像のように、3つの頂点と法線ベクトルのセットで表現されます。STLファイルには数十万から数百万以上の三角形が含まれており、三角形の数に比例してファイルサイズが大きくなります。

ASCII(テキストベース)のSTLファイルでは、各三角形は以下の形式で表現され、法線ベクトルnは(ni nj nk)、各頂点vは3次元座標(vx vy vz)で表現されます。


facet normal ni nj nk →法線ベクトル
outer loop
vertex v1x v1y v1z →頂点の3次元座標(x,y,z)
vertex v2x v2y v2z →頂点の3次元座標(x,y,z)
vertex v3x v3y v3z →頂点の3次元座標(x,y,z)
endloop
endfacet


これらの三角形(数百万個あるのが一般的)を組み合わせることで、3次元形状を表現できるメッシュが形成されます。

Markforged社のEigerソフトウェアに読み込まれたSTLファイル。なお、このSTLは意図的に三角形の解像度を低くして作成されているため、モデルには大きな面がはっきりと見られる。

 
3Dプリント用のSTLは、三角形の辺が規則正しく整列されており、穴がないことが重要です。(これは、マニホールドSTLまたは、ギャップのないSTLと呼ばれます。)
しかし、STLファイル自体は、単に座標と法線ベクトルのテキストデータであり、STLファイルの仕様には、このようなマニホールドの条件は要求されません。
特に、3Dスキャナーから取り込んだSTLファイルは、三角形のメッシュが不規則な大きさで、不完全な面が含まれている事が多く、そのまま3Dプリンタで造形するのは困難で、スライス時にエラーが発生する事もあります。
3Dプリンタ用のSTLは、一般的に、エクスポート機能が充実しているCADソフトで生成します。お使いのCADソフトの「STLエクスポートオプション」をネットで検索すれば、詳しい設定方法を知ることが出来るはずです。

STLの重要性

三角形自体は平面の2D形状です。STLファイルはその三角形メッシュを立体的に配置し、立方体や多角形などを平面の三角形のみで表現し、3Dモデルを作っております。
この際、メッシュの三角形がモデルの最小形状よりも小さくないと、そのディティールは表現できません。
製造業で使われる部品の多くは、穴/フィレット/ラジアス/回転、あるいは、より複雑な曲線や有機的な形状など、少なくともいくつかの曲面があります。このような曲面(非平面)の特徴やサーフェスは、三角形のメッシュで再現されます。これらの詳細はCADソフトのSTL出力設定に基づいて、さまざまなレベルの精度で変換することができます。

異なるSTL解像度で出力された球体。球体の左側が低解像度で、右側が高解像度で出力されております。よく見ると、右側の球体の輪郭は、左側に比べて滑らかな曲線になっていることがわかる。これは、表面に凹凸のない滑らかな3Dプリントを作成するための重要なポイントである。

STLファイルをもう一度作り直す必要がありますか?

3Dプリンタで造形をした、ワークの品質やスライスソフトの処理速度に満足しているのであれば、おめでとうございます! うまくいっているものを変更する必要はありません。
しかし、問題を抱えているとしたら以下の2つのいずれかでしょう。

  1. 低解像度STL
    滑らかなカーブのはずなのに多面的になっており、ガタガタしている。
  2. 高解像度すぎるSTL
    見栄えのいいデータですが、お使いのプリンタの性能を考えるとオーバースペックになっていませんか?ソフトウェアでの処理の速度に満足していますか?

 
STLデータがこれほど普及している理由の一つは、そのシンプルさにあります。
その為、ほとんどのCADソフトやデザインソフトの出力フォーマットにSTLファイルがサポートされております。STLファイルをエクスポートした後の編集やスライス処理も容易で、ほぼすべての3Dプリンタで造形が可能です。しかし、STLの主な欠点の1つは、そのシンプルさでもあります。STLには、設計された単位系(ミリメートル、インチ、フィートなど)に関する情報は一切含まれておらず、STLファイルの解像度や、作成された元のモデルをどれだけ正確に表しているかを判断することは出来ません。
ユーザーが直面する最も一般的な問題は、低解像度のSTLファイルです。
下図のノズルのようにCADでは、滑らかな曲面ですが、STL出力する際に低解像度になってしまい、実際の造形物にも表れてしまいました。


この低解像度問題は、Markforged社の専用ソフトウェア「Eiger」を使用して簡単に確認することができます。Eigerでは、モデルの上にマウスを移動させると、面が青くハイライトされ、その面に平行な面もすべてハイライトされます。マウスで曲面をポイントしたときに、モデルに面やフラットスポットが表示されている場合は、STLファイルの解像度を上げる必要があるでしょう。ハイライトされた面が比較的スムーズな色のグラデーションで「ぼんやり」と見える場合、STLの解像度は造形をするにあたって十分であると考えられます。


左図が低解像度のメッシュデータで、右図が適切な解像度のメッシュデータです。
Markforged社の専用ソフトウェア「Eiger」でメッシュデータの品質を確認する事が可能です。

逆に、解像度が高すぎるSTLファイルは、Eigerが効率的に処理できないほどになり、スライス処理が遅くなることがあります。STLファイルの解像度に制限はなく、三角形の辺の長さがナノメートル以下のメッシュデータを作成することも可能です(人間の髪の毛は約75,000ナノメートルです)。これは、3Dプリンタが表現できる解像度よりもはるかに高いため、高解像度のSTLは時間を浪費するだけです。

3Dプリンタ用に作成するSTLは、色々な制限があるように思えますが、STLを作成する際にいくつかの条件に従えば、優れた造形品を簡単に作ることができます。
CADソフトでSTLを出力する際の設定は、造形品の品質、寸法精度、表面仕上げに劇的な影響を与えるため、これらのパラメータを理解することは非常に重要です。

STL出力のパラメータ

CADソフトウェアからSTLをエクスポートする際には、パーツの形状を定義するいくつかのパラメータがあります。一般的にCADソフトウェアはサイズの小さいSTLファイルを生成する為にパラメータを最適化して、可能な限り低解像度のメッシュを作成しようとする為、出力の際に設定をするパラメータは、デフォルトの数値よりも高解像度になるような設定にする必要があります。これらの出力のパラメータ設定をする時のイメージは、低解像度から高解像度に「上方修正」するようなイメージを持つといいと思います。


右図が低解像度のメッシュデータで、左図が適切な解像度のメッシュデータで造形されたものです。

一般的に、最近のCADソフトでは、少なくとも2つの出力パラメータを設定できるようになっています。1つは「弦公差」です。コードの許容差(またはコードの偏差)とも呼ばれ、もう1つは角度寸法に関するもので、「角度公差」(または角度の許容値)と呼ばれます。3Dモデルに応じて、これらの設定のうち1つがSTLデータを生成する上での絶対的な数値とみなされます。これらの制限パラメータは通常、3Dモデルの形状に応じて変化します。ここでは、これらのパラメータと、それがSTL生成にどのような影響を与えるかを考え、主要CADソフトでどのように設定をするのかをご説明します。

弦公差(Chordal Tolerance)
STLの全体的な寸法精度を制御するための設定が、「弦公差」です。CADソフトによっては、単純に「公差」や「偏差」と表記されている場合もあります。
3Dモデルの表面と、生成されるSTLの最も近い三角形の面との法線(垂直)方向の最大偏差距離の事を言います。(下図参照)

文字だけでは少し分かりにくいと思いますが、上図の矢印間の距離が弦公差となり、小さければ小さいほど、より多くの三角形を生成し、高解像度のSTLが作成されますが、ファイルサイズも大きくなります。

角度公差(Angular Tolerance)
角度公差は、メッシュ内の隣接する2つの三角形の辺の最大角度を定義します。
例えば、丸い球を角度公差45°で設定する(弦公差は考えないものとする)と、八角形のSTLが出来上がります。




角度公差を小さいパラメータにすると、より球に近づきます。


角度公差は弦公差よりも、より精密なパラメータであると考えることができます。角度許容差が効果を発揮する例としては、フィレットのような小さな曲面で、その半径が弦公差と同程度の大きさの場合が挙げられます。角度公差を設定しないと、これらの小さなフィレットは平らな面になったり、フィレットの半径が弦公差と全く同じ数値の場合、次の図のように面取りになってしまう事もあります。


設定した角度公差のパラメータが大きすぎると、3Dモデルのディティールが完全に破壊されてしまう可能性があります。極端な例(左図)では、フィレットの半径が、弦公差と同じだと、STLは、フィレットを単純に平面に変えてしまうことがわかります。角度公差をより小さな値に設定することで(右図)、メッシュ生成を制御するパラメータとなり、より正確なSTLを作成することができます。

角度公差の値を十分に小さく設定する事で、小さな半径を持つ、より鋭い曲率のディティールを表現する為、三角形の数が増えて結果的に滑らかなSTLを作成する事が出来ます。
これは、弦公差の許容範囲を超えて、STLに影響を与えます。

角度公差は通常、〇〇度で定義され、値が小さければ小さいほど高解像度のモデルが完成します。しかし、一部のCADソフトでは、角度公差を0~1の値で設定するものもあります。これは、そのCADソフト独自の制御パラメータで、値が大きいほど、解像度が高くなります。
また、CADソフトによっては、「弦公差」や「角度公差」以外に、三角形の辺の長さやその他設定が出来る場合があります。一般的にこういった設定は、「弦公差」と「角度公差」で制御しきれない場合に使用される為、特別な理由がない限りデフォルト値のままにしておくことをお勧めします。

メッシュ品質とファイルサイズの関係 -推奨値-

高解像度のSTLメッシュは、より滑らかで正確なモデルを作成することができるため、CADソフトの出力設定を最大にして、それで完了と思うかもしれません。しかし、STL出力の解像度を上げると、STLファイルのサイズが大きくなり、STLファイルの生成、Eigerへのアップロード、そして実際にSTLをスライスして3Dプリンタへ送信する際に、ソフトウェアの処理時間が長くなるのが一般的です。STLファイルの解像度が3Dプリンタの機械精度をはるかに超えてしまうことがあります。つまり、何も考えず高解像度出力をしてしまうと、実際に造形されたパーツに反映されない、無駄な工数コストを支払うことになるのです。

そこで我々が提案するベストプラクティス(推奨値)は、Markforgedの機能要件を満たす高品質な解像度と、Eigerで迅速に処理できるファイルサイズのバランスを考慮して、STLの出力設定をすることです。
※あくまでも、Markforged社製3Dプリンタに対するベストプラクティスです。
 お使いの3Dプリンタのスペックや方式によって異なりますので、ご了承下さい。

◆Markforged社製3Dプリンタ ベストプラクティス

  • バイナリSTLフォーマットであること(ASCIIよりもファイルサイズが小さい為)
  • 弦公差・偏差0.1mm(0.004インチ)
  • 角度公差/偏差 1度
  • 三角形の最小辺の長さ 0.1mm

ファイルサイズが20MBを超える場合は、STLファイルサイズが20MB以下になるまで、弦公差と角度公差の値を増やしてファイルサイズを縮小することを強くお勧めします。ファイルサイズが大きいと、STLをスライスする際の計算速度が大幅に低下するためです。この設定でもモデルが多面的な場合、もう少し公差を下げてみて下さい。
ただし、ファイルサイズを20MB以下にすることを強くお勧めします。場合によっては、計算がタイムアウトしてしまい、スライスをする事が出来ません。

各CADソフトのSTL出力設定

下記リストにお使いのCADが記載されていない場合は、各ベンダーにお問い合わせください。また、使用されているバージョンによってパラメータが異なる場合がございますので、ご了承ください。
※あくまでも、Markforged社製3Dプリンタに対するベストプラクティスです。
 お使いの3Dプリンタのスペックや方式によって異なりますので、ご了承下さい。

◆Creo (PTC)
Creo特有の「角度制御」は最大角度偏差を度単位で調整するものではなく、角度公差を単位なしで設定するものです。「角度制御」の値は、0.0から1.0の範囲で設定できます。
詳しくはこちらをご覧ください。

  • STL形式→バイナリ
  • コードハイト(弦公差)→0.1mm [0.004 in]
  • 角度制御→0.25
  • エッジの最大長さ→デフォルト
  • アスペクト比→デフォルト
    その他設定もデフォルトです。

◆Fusion 360 (Autodesk)

  • STL形式→バイナリ
  • サーフェスの偏差(弦公差)→0.1mm [0.004 in]
  • 法線の偏差(角度公差)→1度
  • エッジの最大長さ→デフォルト
  • 縦横比→デフォルト
    その他設定もデフォルトです。

◆NX (Siemens)

  • STL形式→バイナリ
  • 弦公差→0.1mm [0.004 in]
  • 角度公差→1度
  • エッジの最大長さ→デフォルト
    その他設定もデフォルトです。

◆Onshape (PTC)

  • STL形式→バイナリ
  • 弦公差→0.1mm [0.004 in]
  • 角度の偏差(角度公差)→1度
  • 最大ファセット幅→0.1mm [0.004 in]
    その他設定もデフォルトです。

◆SOLIDWORKS (ダッソーシステムズ)

  • STL形式→バイナリ
  • 偏差(弦公差)→0.1mm [0.004 in]
  • 角度(角度公差)→1度
  • 解像度→カスタム
  • 最大ファセットサイズ→チェックを外しておく
    その他設定もデフォルトです。


CONTACT 問い合わせ