「RepetierのLay Flatがダメだったので三角関数」の別解。
オブジェクトを床に降ろして置くコマンドはきっと存在すると今でも思っている。
思っているが、コマンドは見つからないし、思いつくのは当座の回避方法ばかりだ。
一応覚え書き。
そもそも、こんなものを作りたい。
サイズが大きいこととオーバーハングの問題があるので、下のように3分割する。
端の2つはいいのだが、真ん中がちゃんと床に置けない。
Slic3rのLay Flatという機能を使っても下のように微妙に浮いてしまう。
本来なら円のはずの1層目が円にならない。
ここまでが前回と共通の問題の再確認だ。
前回は2点の座方から三角関数で傾きを計算して角度を補正した。
今日、ふと思ったのは、物理エンジンを使って床に置けばいいんじゃなかろうかということだ。
そこでRigid Bodyの出番だ。
あまりにもデタラメな向きだと床に落ち着くまでの演算に時間がかかるので、目的のオブジェクトをそこそこの位置に手動で回転させておく。
その下に新たに平面を1つ用意する。
上のオブジェクトは以下のようにRigid Bodyの設定をする。
というか、初期値からひとつも変更していないが…。
平面は下のように設定する。
こちらは、TypeをPassiveに変更する。
適当なフレーム数にしてシミュレーションをスタートさせる。
オブジェクトが落ちてきて床の上に置かれる。
これを通常通りにエクスポートしてスライサーに読み込ませてスライスする。
今度はぴったりと床に置いた状態でスライスされるので1層目は円になる。
ちなみに、上からオブジェクトが降ってきて床によっこらしょと置かれるのを見るのが邪魔くさいなら、下のSpeedの値を大きくすればいい。
オブジェクトがスタッと床に置かれる。