関係式で直線パターンの数を変化させる
今回はやろうと思ってできていなかった
直線パターンのフレキシブルな変更の話題です。
「直線パターン(フィーチャー)って使いづらい!」
と思ったことはありませんか?
あれば、ぜひ読んでみてください。
私は使いづらいと思ってました。
なぜって、とりあえず
・決まったスペースに決まった数を入れようと思ったら、間隔を手計算しないといけないうえ、ぴったり収まらない
それから
・コンフィギュレーションでインスタンス数を変えられない
つまり私がやりたかったことは、例を挙げて言うと、
いろんなパターンのヒートシンクを(簡単に)作る
です。つまり、
・ヒートシンクのサイズを変える。
・フィンの数を変える。
・フィンの厚みを変える。
などのパターンをいろいろ作って、コンフィギュレーションでわけて、シミュレーションにかたっぱしから放り込みたい、とこういうわけなんです。
たとえばこんなモデル

この状態では厚み2mmのフィンが30個あります。
普通の直線パターンでは、たとえばこのヒートシンクのサイズを広げると端っこがあまってしまいますし、狭めると30個乗らなくなります。
それに、違うコンフィギュレーションを作ってフィンの数を変える(たとえば、フィン25個のコンフィギュレーションを作る)ことができません。
これは関係式で解決します。
ツール→関係式 にあるやつですね。
今回は二つのグローバル変数とひとつの式
IntFinPatNum: フィンの数
DimBaseLength: ヒートシンクのサイズ(直線パターン方向)
DimFinPitch: フィンのピッチ(上記2変数と厚みより計算)
"DimFinPitch"=("DimBaseLength"-"D1@スケッチ2")/("IntFinPatNum"-1)
(D1@スケッチ2は厚みの寸法)
を設定しました。

これで準備OK
ターゲットの直線パターンをフィーチャーマネージャーデザインツリーでダブルクリックすると、画面内にインスタンス数がちっちゃく出てくるので、さらにそこをダブルクリックすると、修正というダイアログボックスが出てきます。
そこで下向き三角を押すと関係式が追加できるようになりますので、

関係式の追加画面で、さっき作ったフィンの数のグローバル変数IntFinPatNumを指定します。

同様にベースの押し出し長さにはDimBaseLengthを指定し、フィンピッチもDimFinPitchを指定してできあがり。これで、
・ヒートシンクのサイズを変更したいときはDimBaseLengthを、
・フィンの数を変えたいときにはIntFinPatNumを
変更すれば自由自在にヒートシンクを変更することができるようになりました。

しかし!
これではまだ、コンフィギュレーションでわけていろいろな本数のヒートシンクを作ったり、設計テーブルを使って簡単にコンフィギュレーションを増やしたりすることはできません。
なぜなら、グローバル変数はコンフィギュレーション別に変更したり、設計テーブルに入れたりすることができないからです。
では、どうしましょうか?
ちょっと長くなったので、それはまた次の機会に。
直線パターンのフレキシブルな変更の話題です。
「直線パターン(フィーチャー)って使いづらい!」
と思ったことはありませんか?
あれば、ぜひ読んでみてください。
私は使いづらいと思ってました。
なぜって、とりあえず
・決まったスペースに決まった数を入れようと思ったら、間隔を手計算しないといけないうえ、ぴったり収まらない
それから
・コンフィギュレーションでインスタンス数を変えられない
つまり私がやりたかったことは、例を挙げて言うと、
いろんなパターンのヒートシンクを(簡単に)作る
です。つまり、
・ヒートシンクのサイズを変える。
・フィンの数を変える。
・フィンの厚みを変える。
などのパターンをいろいろ作って、コンフィギュレーションでわけて、シミュレーションにかたっぱしから放り込みたい、とこういうわけなんです。
たとえばこんなモデル

この状態では厚み2mmのフィンが30個あります。
普通の直線パターンでは、たとえばこのヒートシンクのサイズを広げると端っこがあまってしまいますし、狭めると30個乗らなくなります。
それに、違うコンフィギュレーションを作ってフィンの数を変える(たとえば、フィン25個のコンフィギュレーションを作る)ことができません。
これは関係式で解決します。
ツール→関係式 にあるやつですね。
今回は二つのグローバル変数とひとつの式
IntFinPatNum: フィンの数
DimBaseLength: ヒートシンクのサイズ(直線パターン方向)
DimFinPitch: フィンのピッチ(上記2変数と厚みより計算)
"DimFinPitch"=("DimBaseLength"-"D1@スケッチ2")/("IntFinPatNum"-1)
(D1@スケッチ2は厚みの寸法)
を設定しました。

これで準備OK
ターゲットの直線パターンをフィーチャーマネージャーデザインツリーでダブルクリックすると、画面内にインスタンス数がちっちゃく出てくるので、さらにそこをダブルクリックすると、修正というダイアログボックスが出てきます。
そこで下向き三角を押すと関係式が追加できるようになりますので、

関係式の追加画面で、さっき作ったフィンの数のグローバル変数IntFinPatNumを指定します。

同様にベースの押し出し長さにはDimBaseLengthを指定し、フィンピッチもDimFinPitchを指定してできあがり。これで、
・ヒートシンクのサイズを変更したいときはDimBaseLengthを、
・フィンの数を変えたいときにはIntFinPatNumを
変更すれば自由自在にヒートシンクを変更することができるようになりました。

しかし!
これではまだ、コンフィギュレーションでわけていろいろな本数のヒートシンクを作ったり、設計テーブルを使って簡単にコンフィギュレーションを増やしたりすることはできません。
なぜなら、グローバル変数はコンフィギュレーション別に変更したり、設計テーブルに入れたりすることができないからです。
では、どうしましょうか?
ちょっと長くなったので、それはまた次の機会に。