2015年4月14日火曜日

un-industrial(非産業化)へ引っ越します

東京メイカー@あッ3Dプリンタ屋だッ!!さんのコミュニティBLOGサイトであるUn-industrial (非産業化)のアカウントをいただきましたので、ノウハウ系の投稿はそちらへ引越しいたします。
ここのブログ自体は残しますが、少ない更新がさらに少なくなってしまうと思いますが、よろしくお願いいたします。

2015年4月12日日曜日

エクセルで始める123d design 3Dモデリング 鉄道模型編

123D designにももちろん2D用のドロー機能はついているのだが、3次元空間に2次元の図を描くのはなかなか難しい作業である。また、123D designにはstl以外に他のソフトにデータを受け渡す機能が無いので、設計データを流用しにくいという問題がある。幸い123DにはImport SVGという機能により外部ドローデータを読み込む機能がついている。ドロー系ソフトの定番と言えばillustratorではあるが、会社員のホビーユースで使うには月額2160円は敷居が高すぎるという問題がある。Inkscapeというフリードローソフトを使えばインポート用のSVGデータの作成は可能である。Inkscapeを覚えれば良い話ではあるのだが、会社員の定番ドロー系ソフトで自宅PCにもインストール率が高いソフトと言えばエクセルがあるじゃんということで、エクセルを使った3Dモデリング用ドローデータの作成方法についてまとめることにする。
ま、ぶっちゃけ邪道ですが、使い慣れたドローツールで123D Designが苦手な自由曲面(っぽい)モデリングができますよってことで参考にしてください。

・用意するもの
パソコン Windows Win7 32/64bit版以降(123D designの動作環境に依存) Macの場合は10.7以降だそうです。
エクセル 個人的には2003までしか持ってないというのもあり2003で説明していますが、2007以降でもおそらく問題なく使えます。ドローソフトとしての使い勝手は2003が最高だと思っていますが。(以前のバージョンを使いなれていた人がパソコンの前で途方に暮れてしまう2007とか、多少改善されたがデフォルトで必須ツールの矢印アイコンやオブジェクトのアライメントメニューを隠してしまった2010とかマイクロソフトは他のオフィスソフトを使ってもらうためにわざとエクセルの使い勝手を落としてるとしか思えなかったりします)
Inkscape 0.91
2015年1月にリリースされたばかりの新版です。バージョンが1未満なのはフリーだからという理由からでしょう。illustratorとほぼ互換機能を持っているそうなので、使いこなせばエクセルは用済みとは思いますが。
https://inkscape.org/ja/
の”初めての方”への中の”使ってみてください”からダウンロードできます。自分の環境用のインストーラーをダウンロードしてインストールください。

123D design
このブログ記事を読む方には説明不要なので割愛します。

モデリング用資料
作りたいものの資料を用意します。鉄道車両なら3面図があれば便利です。現物や模型が手元にある場合はそちらも参考にします、今回は初代0系新幹線である0系21型車両をモデリングします。
丁度手元に新幹線イラスト名鑑(鉄道ファン2014年11月号付録)と国産鉄道第一号付録の0系21型車両があったのでそれを使います。あとノギスがあると便利。
最終的にこのモデリングデータを作るまでを解説します。

・ドローデータの作成
エクセルを開いて資料の画像ファイルを貼り付けます。
3面図や模型の写真の場合スケールを3Dプリントするときの実寸や実寸の2倍などの
倍率にしておくと便利です。(注意点:エクセルはWYSYWIG(死語ですかね…)ではないので、2Dプリント時は設定したスケールが保持されているとは限りません。3Dプリント物に貼るシールなどを印刷したいときはInkscapeやワード経由で印刷することをお勧めします。)
貼り付けた正面図を元に断面形状を多角形ツールなどオートシェイプメニューから描画していきます。図は必ず閉じてください。一番制御点の多い断面を先に作成して他の断面は先に作成した図をコピーして点を動かして作成すると3D化の際の意図しない結合を防ぐことが出来ます。断面全体をトレースしていますが、実際にモデリング時に残るのは片側半分なので、しっかり描くのは半分で反対側はラフでもかまいません。
次に描いた断面を側面図に並べていきます。断面図の中心線が側面図の対応位置に来るように並べます。断面図の補間だけではうまくモデリングできなさそうなところは上面図や側面図をトレースしておきます。今回はスカートの前面部と運転席部分を別にモデリングしました。モデリング時の位置合わせのための側面外形図もトレースしておくと便利です。
断面図を並べ終わったら、コピーして別な場所に貼り付けます。図形が重なっていると123D designに流し込んだときに重なった部分でパーツが分割されてしまうので、重ならないように縦方向に動かします。このとき横方向には動かさないでください。せっかく合わせた側面位置が変わってしまいます。他必要なパーツも一箇所に重ならないように並べなおします。ドアの窓だけドアと重なったままですが、これは流し込んでから作業したほうが楽なのでこのままにしておきました。

・SVG化
ドローデータの作成が終わったらinkscapeに貼り付けます。エクセルから必要な図だけコピーしておきます。
inkscapeを起動すると真ん中に四角い枠が表示されたウインドウが出てきます。四角い枠が印刷スペースになります。ペーストすると選択された状態で枠外に貼り付けられますので、枠内に移動させます。ファイルメニューから保存を選びInkscape SVG(*.svg)で名前をつけて保存します。
・123D designへの読み込み
123D designを起動します。左上のメニューからInport SVG As Solidを選択します。
保存したSVGを読み込むとドローデータを押し出した柱とドローデータ(123D designではスケッチと呼ぶ)が挿入されます。
柱の高さが高すぎて作業しにくいので、柱を薄くします。
挿入された全オブジェクトを選択状態にしてTransform→scaleを選びます。ScaleをNon UniformにしてZ:のみ0.01等小さな値を入力します。オブジェクト全体が薄い板に変わります。
・断面をそろえる
別にソリッド挿入しないで、スケッチだけで作業してもいいじゃんって思うのですが、なぜか上記の方法で流し込んだスケッチは一体化されていて、相対位置を変更できない不要物なので消去します。影のようにZ=0平面に張り付いたスケッチをどれか一個だけ選択してデリートしてください。するとスケッチは全部消えてしまいます。ソリッド化されたエクセル上で重ならないようにずらした断面を123D design上で再度位置あわせします。断面図をそろえたら断面図を全選択して縦方向に90度回転させます。次に断面図を一つづつ選択して、横方向に90°回転させます。きれいに作ったモデリングする側の方向を間違えないように注意ください。
 次に側面図のトレースを並べた断面の中心に来るように移動させます。
Loftによる補間
さて、長い前置きが終わってようやく自由曲面が苦手な123D designで自由曲面(っぽい)モデルを作る本題に入ります。あらかじめ先頭の断面オブジェクトのみコピーして2つ重なった状態にしてください。Constract→Loftを選択して、先頭の断面内側→二枚目の断面先頭側の順に選択します。
うまくいくと先頭部の断面と二枚目の断面が補間されます。エラーが出る場合がありますが、補間オブジェクトが作成されていれば成功です。二枚目の板は不要なので選択し削除します。先頭の板は作成したオブジェクトと一体化してしまっているため、combine→subtractよりTarget Solidに補間したオブジェクト、Sorth Solidにさきほどコピーしておいた先頭のオブジェクトの残っているほうを選択します。123D designのいいところは重なったオブジェクトでもマウスを動かすことで、任意のオブジェクトを選択可能なところですね。うまくいくと先頭の板も消えてくれます。

うまくいったら、Loft機能で作成した補間オブジェクトの後ろ側と3枚目の前側を補間します。繰り返して最後尾まで補間します。
同様の方法でスカート前面をつくりました。スカート後部は前面部より薄いので、削り落とします。あらかじめ断面図からトレースしておいたスカートの無い部分を本体の下側に持ってきて本体より幅広にしておき、コピーして2つ重ねます。

combine→subtractで、ボディをTarget Solidに削り落とす部分をSorth Solid指定します。同様に前面スカート部分にも同じ処理をします。
運転席は上下方向のLoft補間で作成しました。運転席上の丸みだけはこの方法では
作れずフィレット機能なども使用しています。先頭の団子っ鼻は球の変形でつくりました。
・窓の作成
新幹線の窓やドアはボディーと同一表面になるように作られているので、実際には段差は無いのでそのままでもいいのですが(窓は抜いてしまうという手もありますが、過去の経験から窓を抜くと出力が非常に面倒なことになるので止めました。この辺は使う3Dプリンタやプリントサービスで使い分けてください。)3Dプリント後の色塗りの場所がわかりにくくなるので、プリント時にサポートが作成されない程度に少し凹みをつけます。ドアの窓をコピーして一枚はドアから浮かせます。一枚はドアがくりぬかれて別オブジェクトになっているのでCombine→Mergeで一体化させておきます。ドローデータ作成時に断面を重ねなかったのはこの操作を断面オブジェクトでやると非常に面倒なことになるためです。ドアと窓を垂直に立てて厚みを増やします。

ドアと窓をボディーにめり込ませます。めり込む量は凹ます量より多めにします。ドアと窓を一体のオブジェクトにするため、ボディには接しないが、全てのドアとまどとは重なるようなオブジェクトを作成して、Combine→Mergeで一体化させますMergeの時はTargetとSorth の区別は要らないので、順番に全ての一体化したいオブジェクトを選択していきます。
ボディ、一体化したドアと窓の両方ともコピーして二つ重ね合わせてからCombine→intersectでボディとドアと窓の重なった部分を作ってからcombine→subtractで、ボディをTarget Solidにドアと窓をSorth Solid指定し、ボディをくりぬきます。

これでボディの形状に沿って窓とドアがくりぬかれた状態になるので、必要分ドアと窓を選択してへこませます。ドアの窓も同様に凹ませました。先にやってしまったので説明してませんでしたが、前部ライト部分も同様に凹ませています。
っと重要なことを忘れてましたがここまでの過程でオブジェクトのスケールを実出力サイズに合わせます。123D designの仕様と思われますが、ドローデータ作成の過程でスケールをあわせても123Dに貼り付けた時点でスケールが変わってしまいます。出力寸法を考慮した作業はスケール合わせの後に実施してください。スケール合わせ用に10mm角の正方形なども一緒に読み込んでおくとスケール合わせの参考になります。

参考:
私の使っているcube2だと出力ファイルは専用ソフトからしか作成できず、サポートは有りか無しの二択になります。サポート有りでも垂直面から0.6mmまでなら凹ませてもサポートが形成されないので、サポートをつけたくない場所の限界凹みは0.6mm、逆に最小ピッチが0.2mmなのでそれ以下だと凹ませても反映されない場合があるので、凹みを考慮する場合は0.4mmか0.6mmの二択としています。
次に今まで無視していた造形した側と反対側の側面を消し去ります。モデリングしたものより大きな立方体を作成して、造形した側の反対側をすっぽり覆い中心線に合うように重ね合わせます。

combine→subtractで、ボディをTarget Solidに立方体をSorth Solid指定し、ボディを半分にします。
ボディ以外にも半分にしたいオブジェクトがある場合はあらかじめボディと一体化しておくか、必要分消去用立方体をコピーしておきます。うまくいくとボディーが一刀両断され片側が消滅した状態になります。

Pattern→Mirrorを選びます。

Solidに一刀両断されたオブジェクトとドア部分をmirror Planeに切られた断面を指定します。
左右対称のモデルができあがりました。
3Dプリントするためには中をくりぬいて肉厚を決めたりする作業が残っていますが、ボディのモデリングはこれでひとまず完成です。