C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

MinimumBox パワーコピー

こちらでコメント頂きました。
今更ながら、ボディからMinimumBoxを作成する(Sketch&Pad) - C#ATIA
長すぎて止まる理由がわからないのですが、折角なのでこれとほぼ同等の
パワーコピーを作ってみました。

基本的に同じ考え方です。


多くのCADでのそうなのですが、2つの要素の最短距離を測る機能は
あるのですが今回のよう、要素間の最大距離を測定するのは
なかなか困難です。(CATIAでは測定出来ます)

そこで遠くに平面を作成し、平面と要素の最短距離を測定することで
最大距離を取得しようと言うのが、ここなさんのアイデアです。
言葉だけではわかりにくいので図で示すと
f:id:kandennti:20191114122821p:plain
原点から赤いラインの最大距離を得るためには、緑の距離で遠くに
平面を作成し、平面から赤いラインまでの最短距離(紫)を測定し、
緑の距離から紫を引けば、良いわけです。

それをXYZの各+-方向に作ります。
f:id:kandennti:20191114122831p:plain
後で使いまわす為、遠い平面の距離はパラメータで作成し、
各平面では式にして設定しておきます。
(画像の都合上150mmですが、実際はもっと大きい数値です)

続いて、先程の平面群と目的のボディとの最短距離をパラメータで
取得しておきます。
f:id:kandennti:20191114122842p:plain

パラメータにする理由はのちに記載しておきますが、パラメータでも
2要素間のこの辺使うと可能です。
f:id:kandennti:20191114122853p:plain

次にスケッチです。四角を描き、拘束を付けるのですが
最初の平面と先程の距離のパラメータを利用します。
f:id:kandennti:20191114122902p:plain

最後にパッドです。こちらも先程までのスケッチ、平面、
距離のパラメータを利用します。
f:id:kandennti:20191114122911p:plain

お好みですが「どうせ中身は見ないのだから」と言う事であれば
グループを作成しておいても良いと思います。
f:id:kandennti:20191114122922p:plain
Treeが伸びないので邪魔にならないです。



ここまでの操作を普通に作成してしまうと、パワーコピーにし
インスタンスを作成する時に非常に多くの要素を指定する必要が
あるはずです。 そこで幾つかのコツを・・・。

・最初に作成する平面は、オフセット平面を作成しないで
 「方程式」で作成します。
f:id:kandennti:20191114122932p:plain
 まぁ普通使わないです。パワーコピーのために存在しているような
 気さえしてます。
 スケッチのサポートも、この方程式で作ります。

インスタンス作成後、関連するものがあちこちに散らばるのが
 非常に嫌な為、パラメータや式全てを最後に形状セット内に
 突っ込みます。(D&Dで)
f:id:kandennti:20191114122942p:plain
 「ボディ内に形状セットが存在するの禁止」論とかありますが
 無視です。(ハイブリッドデザインの場合、入れられないかも)

・パラメータで式を利用して最短距離を取得していますが、
 「2要素間を測定」を使ってしまうと、「測定」にぶら下がってしまい
 形状セット内に突っ込めない為です。
 (パラーコピーの際も不都合かも)
f:id:kandennti:20191114122954p:plain


上手に作成できれば、目的のボディと向きを決める座標系の
二つの入力だけで利用出来るパワーコピーが作れます。
f:id:kandennti:20191114123003p:plain

入力される要素が確定している場合(今回の場合はボディ1個)は、
マクロよりパワーコピーの方が作成も簡単ですし、実行後も
使い勝手が良いように感じます。

今回のファイルはGrabCADにUpしました。
Free CAD Designs, Files & 3D Models | The GrabCAD Community Library