C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA(最近はPMillマクロとFusion360APIが多い)

閉空間球充填問題2

こちらの続きです。
閉空間球充填問題 - C#ATIA


問題を出しておいて答えがわかっていない無責任ぶりを少しでも
解消しようとn=6を正月辺りから取り組んでいます。


合成数だとイメージしやすいですね。6=2X3 なので。
イメージ出来る球体の配置は2種類ぐらい思いつくのですが、
まずこちら。
f:id:kandennti:20200107154253p:plain
XY平面な対角の位置に2個配置し、その上に90度回転させて
3段積みます。 でもこの配置だと
f:id:kandennti:20200107154309p:plain
半径25が限界だと直ぐにわかります。駄目ですね。


"それならば" っと平面的に3個並べて2段にしてみます。
f:id:kandennti:20200107154323p:plain
ところが、斜めから見てみると
f:id:kandennti:20200107154332p:plain
上の段と下の段で隙間があるんです。つまりもっと大きい球体が
入る余地があるんですよね。この時点で半径は25.4333095です。

但し余地があると言っても、既に3個は平面的な配置でのMAXなので
f:id:kandennti:20200107154343p:plain
半径を大きくした分、黄色は赤に寄って行きます。
当然赤は2面に接した状態のため、上に逃げるしかないのですが、
幸い上に逃げるためのスペースがあります。
問題はこの配置をどんなスケッチを描けば良いのか?と言うことに
なってしまい、困惑しまくりました。


悩んで悩んで、結果的に半径を少しづつ大きくしながら、
ピタゴラスの定理を利用したパラメータ作って、式を使って・・・
チマチマと人力ブルートフォースアタック的な方法で
作った結果、これぐらい持ち上がりました。
f:id:kandennti:20200107154352p:plain

スマートなスケッチが描けなかった・・・。せめてこちらに記載した
被駆動寸法値が利用出来るのであれば楽なのに。(CATIAは利用出来ます)
解決済み: 被駆動寸法値の利用 - Autodesk Community


進めながらちょっと感じたのは、こちらの正多面体の頂点数であれば、
配置のイメージが出来るかな?
正多面体 - Wikipedia
n^3とn^3+(n-1)^3以外だと、n=12(正二十面体)とn=20(正十二面体)が
楽なのかな? さらに中心に1個配置した13,21も楽なのかな?