前回、レターパックプラスを成型した時の容積が最大で4585cm^3になることを示したのですが、実際にそれを確かめてみたくなりました。そこで、封筒を膨らませるシミュレーションを作ってCGを描いてみます。結果はこうなりました。
この形、3Dプリンタで造ってみたい……。
で、積分するとこれの体積は大体4803cm^3になって、4585cm^3より多めです。Wikipediaに載っている近似式の元論文を入手できていないので、式がどの程度正確さを持つのかわからずその誤差が出ている可能性がありますが、むしろ私のシミュレーションの甘さに起因していると思います。いずれにせよ、4.5リットルぐらいは入りそうですね。前回も書いたように、送る場合は4kgの制限があるので内容物が限られますが。
以下はシミュレーション方法の覚え書きなので、興味ある方のみお読み下さい。
- 封筒を4mmメッシュで85×62に分割し、格子点の動きをMathematicaでシミュレートする。
- 各格子点は前後左右と斜めの計8点とバネで繋がっているとする。(前後左右だけだと菱形に変形できるので紙としては不自然)
- 紙の法線方向に弱い空気圧がかかっているとする。
- 初めはちゃんとした運動方程式を立てて微分方程式として解いてみたが、メモリが足らず断念。
- 釣り合い状態さえ求まれば良いので、格子点の速度が力に比例するとしてオイラー法で逐次積分するプログラムにした。運動方程式を無視したが、強いダンパが効いているような状況とも解釈できる。
- 本来封筒は伸び縮みしないはずなので、バネ係数を空気圧に比べてかなり大きくする必要がある。
- だがその場合、タイムステップを小さくしないと発散してしまう。そのため計算に一晩かかった。陰的な解法を使えば解決すると思うが、面倒くさい。
平板状態から始めます。
少し膨らんできました。
最終的にはこうなります。
シミュレーションが甘く、少しデコボコしているため、平滑化しました。具体的には、初期状態の格子点(x,y)が(x’,y’,z’)に移動するとして、この関係をx,yの13次式にフィッティングします。
それで、滑らかな形が得られました。テクスチャを張り付けて完成です。
最近のコメント