Blender を用いた stl ファイル作成に関する Tips
メモ
- STL ファイルを 3D プリンタ用 G-code に変換
- STL ファイルを CNC フライス盤用 G-code に変換
- STL ファイルにはスケール情報が含まれておらず、単位は任意
- →おのれディケイドォォォォォ!
貴様のせいでSI単位系までもが破壊されてしまった!
- →おのれディケイドォォォォォ!
stl ファイルのエクスポートとインポート
Blender において初期設定のままモデルを stl として出力した場合、Cura で開くと 1 unit = 1mm となっていました。
この stl を FreeCAD でインポートした場合も 1unit = 1mm でした。
また、初期設定では Blender のビューポート上では 1unit = 1m で表示されます(最初に表示されるキューブは 1 辺 2 unit の立方体)。
表示単位の変更や出力時の倍率設定が様々可能ではあるものの、単位系で「なし」を選択するのが単位変換に伴うバグやエラーの混入を避ける意味でも分かり易いかも(個人の感想です)。
STL出力の手順。
エクスポートしたいモデルを選んでから、ファイル > エクスポート > Stl(.stl)
「選択物のみ」にチェックを入れ「STLをエクスポート」
参考文献
Cura 向け Blender 連携プラグイン
3Dプリンタ用スライサーソフトウェア Cura 向けの Blender 連携用プラグイン。
おまけ:初期キューブを ASCII STL 形式で出力したファイルの中身
untitled.stl
solid Exported from Blender-2.83.8
facet normal 0.000000 0.000000 1.000000
outer loop
vertex 1.000000 1.000000 1.000000
vertex -1.000000 1.000000 1.000000
vertex -1.000000 -1.000000 1.000000
endloop
endfacet
facet normal 0.000000 0.000000 1.000000
outer loop
vertex 1.000000 1.000000 1.000000
vertex -1.000000 -1.000000 1.000000
vertex 1.000000 -1.000000 1.000000
endloop
endfacet
facet normal 0.000000 -1.000000 0.000000
outer loop
vertex 1.000000 -1.000000 -1.000000
vertex 1.000000 -1.000000 1.000000
vertex -1.000000 -1.000000 1.000000
endloop
endfacet
facet normal 0.000000 -1.000000 0.000000
outer loop
vertex 1.000000 -1.000000 -1.000000
vertex -1.000000 -1.000000 1.000000
vertex -1.000000 -1.000000 -1.000000
endloop
endfacet
facet normal -1.000000 0.000000 0.000000
outer loop
vertex -1.000000 -1.000000 -1.000000
vertex -1.000000 -1.000000 1.000000
vertex -1.000000 1.000000 1.000000
endloop
endfacet
facet normal -1.000000 0.000000 0.000000
outer loop
vertex -1.000000 -1.000000 -1.000000
vertex -1.000000 1.000000 1.000000
vertex -1.000000 1.000000 -1.000000
endloop
endfacet
facet normal 0.000000 0.000000 -1.000000
outer loop
vertex -1.000000 1.000000 -1.000000
vertex 1.000000 1.000000 -1.000000
vertex 1.000000 -1.000000 -1.000000
endloop
endfacet
facet normal 0.000000 0.000000 -1.000000
outer loop
vertex -1.000000 1.000000 -1.000000
vertex 1.000000 -1.000000 -1.000000
vertex -1.000000 -1.000000 -1.000000
endloop
endfacet
facet normal 1.000000 0.000000 0.000000
outer loop
vertex 1.000000 1.000000 -1.000000
vertex 1.000000 1.000000 1.000000
vertex 1.000000 -1.000000 1.000000
endloop
endfacet
facet normal 1.000000 0.000000 0.000000
outer loop
vertex 1.000000 1.000000 -1.000000
vertex 1.000000 -1.000000 1.000000
vertex 1.000000 -1.000000 -1.000000
endloop
endfacet
facet normal 0.000000 1.000000 0.000000
outer loop
vertex -1.000000 1.000000 -1.000000
vertex -1.000000 1.000000 1.000000
vertex 1.000000 1.000000 1.000000
endloop
endfacet
facet normal 0.000000 1.000000 0.000000
outer loop
vertex -1.000000 1.000000 -1.000000
vertex 1.000000 1.000000 1.000000
vertex 1.000000 1.000000 -1.000000
endloop
endfacet
endsolid Exported from Blender-2.83.8
STL files contain no scale information, and the units are arbitrary.[7]
- fabbers.com Historical resource on 3D printing, The StL Format: Standard Data Format for Fabbers, reprinted from Marshall Burns, Automated Fabrication, The StL Format | fabbers.com stating, “The object represented must be located in the all-positive octant. In other words, all vertex coordinates must be positive-definite (nonnegative and nonzero) numbers. The StL file does not contain any scale information; the coordinates are in arbitrary units.”
※ STL (file format) - Wikipedia より引用
STLファイルにはスケール情報が含まれておらず、単位は任意です。[7]
- fabbers.com 3D印刷に関する歴史的資料、StL形式:Fabbersの標準データ形式、Marshall Burnsから転載、自動製造、The StL Format | fabbers.com つまり、「すべての頂点座標は正定値(非負および非ゼロ)の数値である必要があります。StLファイルにはスケール情報は含まれていません。座標は任意の単位です。」(Google 翻訳)
単位は任意……OTL
よって、STL ファイルを取り扱う場合、ソフトウェア毎の単位換算設定に注意を払う必要があります。