C#ATIA

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

確実に点を手に入れる

あぁ、他人のパワーコピー定義のファイルを見ていてちょっと感動しました。

GSDのワイヤーフレームツールバーに"極値"コマンドありますよね?

気にしてなかったけど、"ワイヤーフレーム"なんですね。
"極値"コマンドは指定した要素の指定した方向の最大や最小となる
要素を作ってくれます。

具体的な例を出すとXY平面上にスケッチで四角を描き、押し出します。
このボディに対してX方向の最大の極値はオレンジ色の面です。

そうなんです。アイコンを見ると点が出来そうに見えるのですが、
今回の場合は面が出来ます。極面?

面に対角線を引き、極値の方向にした場合は、線になります。
極線?ごくせん??ヤンクミ!?

直方体の対角に線を作製し極値の方向で指定すると、点になります。
極点?・・・良いボケ浮かばず。

この様に、対象となる要素の形状や方向によって、出来上がるものが
面・線・点と一定しないのが極値コマンドです。
もちろん"オプションの方向"をそれなりに指定しておけば、確実に
点を得ることは出来ます。

もし、これがパワーコピーで行う場合、"オプションの方向"分の何かを
指定させるのは個人的には嫌ですね・・・面倒。
又、マクロでも都合の良い"オプションの方向"が見つかれば良いのですが、
その為には、恐らく外積2回と要らない要素を作成する必要がありそうな
気もしています。


そこで感動した方法をご紹介。
"ナレッジ"ツールバーの中の"式"をクリックします。

"新規パラメータを追加:タイプ" で "点" を選択し、新たなパラメータを作成します。

新たに作成したパラメータを選択状態にして"式を追加"をクリックします。

式エディターが表示されるので、辞書を"点コンストラクタ"で一覧の"centerofgravity"を
ダブルクリック。

ネーミングからして重心でしょうね。

入力する部分に出来た"()"の間にカーソルがあるので、その位置で目的の要素を
ダブルクリック。

要素の名前そのもので、"すべての一覧"に表示されているパラメータではない事に
ご注意を。

何と!パラメータにも関わらず、画面上では点が出来上がっているではありませんか!

極値で得られるものは平面・直線・点の何れかですが、重心は要素上に有る為、
問題ないはずですね。これで確実に点が手に入ります。

パラメータと式を利用すれば点のみならず、これらの要素も作れると思います。
(作った事は無いのですが)

正直なところ、通常のモデリングでは態々このような方法で作る必要はなく、
恐らく一番の使い道はパワーコピーやUDFじゃないでしょうか?

実はこれもかなり以前から知っていたのですが、覚えた当時も"フーン。で?"ぐらいに
しか思っていなかった上、使い道もあまり思い付きませんでした。
CATIA V5の式の奥深さは半端じゃないです。

元ネタはこちら。
CATIA BOUNDING BOX - DASSAULT: CATIA products - Eng-Tips