Yahoo!知恵袋に「Jw-cadで使える3Dプリンターが知りたい」という質問がありました。
先に結論を言うと、
安価な熱融解式3Dプリンターで扱えるデータはG-codeと呼ばれる機械の制御コードなのでモデルデータそのものではありません。
そのG-codeは3Dモデルデータを「スライサー」と呼ばれるソフトに取り込むことで生成されます。
ですので、Jw-cadで生成された2Dモデルデータを直接3Dプリンターに放り込んでも機械が認識出来ないのでなんにも起こりません。
(3Dプリンターの種類によってはSTLやOBJ形式のデータを放り込めば勝手にスライサーでG-codeを生成して動いてくれるものもあるようです。が、STLやOBJはやはり3Dモデルデータです)
そして、Jw-cadは「2DCAD」ですのでそのままでは3Dデータは作成出来ません。
つまり3Dプリンターでは扱えません。
では、何故扱えないのでしょうか?
↓こちらは2Dの長方形画像です
このモデルを構成するのにデータとして利用される点は、2つの四角形の角だけです。
これに高さという数字を持たせて、立体視することで
↓四角柱の状態になります。
一見「立体が出来てるじゃん?」と思いますよね?
そうです。「見た目的に」はこれは立体ですが、3Dプリンターで扱うモデルにするには情報が圧倒的に足りなさすぎるのです。
2DCADの場合はあくまで「平面」のデータであり、平面データに「厚み」を擬似的に付加してあるだけです。
例えば、紙に書いた「図」には感覚的に「紙」という「厚さ」があるように思いますが、実際「図」自体に「厚み」はありませんよね?
「平面」データには「厚み」の他に「表」や「裏」といった概念がありません。
どういうことでしょうか?
実際に3Dモデリングツールによるモデルの作成方法を見てみましょう。
↓下の図はワイヤーフレームというモデル形成方法です。3Dプリンターで使われるSTLファイルはこのワイヤーフレーム形状のデータです。
このモデルの情報は3D空間の中の「横(X)、奥(Y)、縦(Z)」の3点の座標で定義されています。
↓データとしては青丸印の座標が記録されています。
では、ここから線を除くとどうなるでしょう?
↓四角柱の手前の面のみオレンジにしています。
非常に解りにくい図になりましたね。
ここに下図↓のように線を加えると「面」が浮かび上がります。
2Dのデータであれば表裏の関係は無いのでこれでおしまいです。
では、3Dで面の表裏はどのように定義するでしょうか?
答えは、「点を結ぶ線の向き」です。
↓のように「半時計回り」に線を結んだ時に「表」になるよう定義すると
↓全く同じ点を反対方向に結ぶとそれは「裏」になります。
↓ワイヤーフレームを用いる3Dモデリングツールでは手前が表、奥の面は裏にと、箱の中が裏を、外を表が向くように定義する事で「物体」として形成しています。
3Dモデルでは昔から「ポリゴン」というモデル方法がよく使われています。
これは上記の説明の四角の面を三角の面で定義したものです。
「四角」より「三角」にすることで複雑な物体の面を形成することが出来るので都合が良いのです。
例えば、四角を三角で表すと
↓のように表す事が出来ます。
三角形2つで綺麗な四角形が出来ますね。
逆に四角形では綺麗な三角形は作れません。
↓多角形ではどうでしょうか?
↓可能です!
「三角形の座標」こそが「データ」ですので、
↓三角形の数を少なくすることでデータ量を少なくする事も可能になります。
↓複雑な形状も三角形で表すことが出来ます。
多角形の面を100個、200個と増やす事で円に近くなります。
気をつけるべき所はワイヤーフレームで表す円はデータとすべき点の数を増やす事で滑らかになりますが真円にはなりません。
話を戻しますがつまり、
2DCADで3Dモデル用データが作れないのは3Dモデルツールのような3D空間における「3D座標」そのものがデータとして無いのと面の「表」「裏」が定義出来ないからです。
3Dプリンター用のデータを作るソフト、「スライサー」で扱えるSTL形式のファイルは『「閉じた面」を物体として扱う』ので必ず表と裏の定義が必用になるのです。
僕は3DCADは「FreeCAD」
FreeCAD: オープンソース パラメトリック 3D CAD モデラー
3Dモデルツールは「Blender」
を愛用しています。
直感的な操作が出来る3DCADであれば「SkechUP」もオススメです。FreeCADに比べるとやや限定的な機能ですが直感的で解りやすいです。
僕は日曜大工の設計にはSkechUPを利用しています。おかげで必用な材料を無駄無く選定できています。
3D modeling for everyone | SketchUp
使った事はありませんが3DCAD「Fusion360」等も好評です。
CAD/CAM/CAE が統合されたまったく新しい 3D ツール| Fusion 360
FreeCADは製造業などでも広く利用される「ソリッドモデル」とよばれる「面」を扱います。面に厚みを持たせたり回転させたりといった形成方法です。面を回転させて得られる物体の断面形状は「真円」です。
生成されたデータは工作機械の精度次第ではどこまでも「完全」を目指せます。
かなり精密な造形が可能ですが、球体など丸みのあるモデルをSTL形式へエクスポートした場合、球体ソリッドデータから頑張って(?)メッシュの生成をすることになるので作成される点の数によっては球体の面があまり綺麗で無くなる。という欠点があります。
逆に直線的なモデルは全く問題無いように思えます。
直感的に伸ばしたり縮めたりといった操作は難しく、数値を利用した「固いデータ」の生成に向きます。
用途としては製造業でSTEPファイル等に代表される工作機械の「中間データ」と呼ばれるデータの生成で、3Dプリンターのみならず金型形成などミリングマシン用のデータ生成に使われます。
Blenderは球面には元からメッシュ状の物体を扱うためSTLにしても綺麗なメッシュをそのままエクスポート出来ますが、CADとは違い正確な位置決めにやや難があります。
例えばメッシュは「点群」として扱われますが、ブーリアン演算などでその点群が重なった部分の処理がうまく行かない場合があり、その場合0.01mm等わざと点をズラしたりと、結果あまり精確でないモデルになります。
ただし3Dプリンターの精度を加味すると0.01mmの精度はそもそも出ませんからそれでも問題ありません。
最初から「メッシュデータ」を扱いますので、「真円」を求めるような精密な工業製品等への応用は難しいものとなります。いかに工作機械の精度が良くても元のデータは点群ですので限界があります。
但し、メッシュですので伸ばしたり縮めたりと直感的なデータ生成が可能になり、あまり高精度を求められない家庭用3Dプリンター用のSTLファイルの生成には適しています。
↓ Blenderの使い方は過去にまとめたことがあります。
僕の経験上、3Dモデリングツールと3DCADはどちらも3Dデータを扱いますが最初のデータ性質が全く異なるものですので、お互いにデータを「インポート」「エクスポート」する手段は無くは無いですが、たとえ出来たとしても結局は「作り直した方が綺麗で早い」という結論に達します。
これは「Jw-cadから3Dデータを作りたい」という最初の質問の旨にも同じことが言えそうです。
2DCADのデータを引き継ぎたいのであれば3DCADの方が簡単だと思います。
是非3DCADを覚えましょう!
↓3Dプリンターの選び方もまとめています。