2018年6月10日日曜日

窓ファミリ作成チュートリアル(7)~ルックアップテーブル

ルックアップテーブルとは?

ルックアップテーブルとはある値に対して、対応する値を抽出するための仕組みです。これはエクセルのLookup関数と考え方は同じです。
もともとMEPのファミリのために使われていた機能で、例えばエルボのファミリを作る場合を考えるとわかりやすいです。下の図はあるメーカーのエルボのカタログです。
呼び径ごとにD,t,H,Zの値が決まっている
呼び径に対して、各箇所の値が決まっています。このような「値のセットを代表値で取り出す」ということができます。

水切も1㎜刻みでサイズがあるわけではなく、ある程度の値で製品が決まっているので、ルックアップテーブルを使って形状を変更してみます。(YKKAPの水切を参考にさせていただきました。)

前回作成した水切の断面は次のようになっています。
水切の各部パラメータ
これに対し、各部の値は次のように決まっています。
奥行に対して値が決まる
見付とシールは同じ値なので、奥行の値に対して高さを変更するルックアップテーブルを作成してみましょう。

まずは水切をロード

練習用ファイルをここからダウンロードしてください。
from Google Drive
from A360 Drive

ダウンロードして解凍すると次のファイルがあります。

  • RC納り枠-7完成.rfa
  • RC納り枠-額縁まで.rfa
  • 水切.rfa
  • 水切.csv


この中の RC納り枠-額縁まで.rfa を開きます。
  1. [挿入]タブ>[ライブラリからロード]パネル>[ファミリをロード]で、「水切.rfa」をロードします。
  2. プロジェクトブラウザで[ファミリ]>[窓]>[水切]>[水切]をダブルクリック。
  3. タイププロパティダイアログボックスで「幅」の関連付けボタンを押して、「水切幅」というパラメータを作成。
    水切の「幅」を「水切幅」に関連付ける
  4. 同様に「高さ」を「水切高さ」に、「奥行」を「水切奥行」に関連付ける。
  5. [作成]タブ>[プロパティ]パネル>[ファミリタイプ]でファミリタイプダイアログボックスを開き、次のパラメータに式を設定する。
    • 水切幅=幅 + 2 * 枠見付左右
  6. 新たに「水切必要奥行」という長さのパラメータを作成し、式を「外壁から枠面+20」に設定
    式の設定
  7. [平面図]>[参照レベル]ビューを開き、[作成]>[コンポーネント]で、[水切]を選択して壁の上側に少し離して配置する。
  8. 位置合わせで水切の中心を中心に、と枠の先端と水切の参照面(下の図参照)を合わせてロックする。
    10mm飲み込んだところでロックする。40
  9. [断面図]>[断面図 1]を表示して、水切の上端を枠の下端の参照面にロックする。

式とルックアップテーブル

水切奥行は式で決める

水切必要奥行の値の値は必ず整数(上の表の「奥行」の値)です。また水切奥行の値が

  • 35mm以下は35
  • 50mm以下は50
  • 50mmより大きい場合は、58mmから10mmピッチ
という特徴があります。これを表現するために、水切奥行の式を次のように変更します。

if(35 mm < 水切必要奥行, if(50 mm < 水切必要奥行, 10 mm * roundup((水切必要奥行 - 58 mm) / 10 mm) + 58 mm, 50 mm), 35 mm)

この中の「10 mm * roundup((水切必要奥行 - 58 mm) / 10 mm) + 58 mm」の部分でroundup関数を使うことで必ず10の倍数を58に加え、整数の値を生成するようにしています。

水切高さはルックアップテーブルで決める

この値をもとに水切高さ」の値を決定します。

エクセルを使ってルックアップテーブルを作成しましょう

  1. [ファイル]タブ>[書き出し]>[ファミリタイプ]
  2. 名前を「水切.txt」として保存し、エクセルでカンマ区切りテキストとして開く。
  3. 次の列を残してほかの列を削除
    • A列
    • 水切高さ##LENGTH##MILLIMETERS
    • 水切奥行##LENGTH##MILLIMETERS
  4. 列を入れ替える
    • B列:水切奥行##LENGTH##MILLIMETERS
    • C列:水切高さ##LENGTH##MILLIMETERS
  5. B列に上の表の奥行の値を、C列に高さの値を設定
    奥行と高さを設定
  6. カンマ区切りのCSVファイルとして保存して閉じる。このCSVファイルは練習用フォルダに入っていますので参考にしてください。
  7. [作成]タブ>[プロパティ]パネル>[ファミリタイプ]
  8. 右下の[ルックアップテーブルを読み込む]をクリック。
  9. [読み込み]をクリックし、作成した「水切.csv」を選択し開く。
  10. [OK]
  11. [水切高さ]の式を次のように設定。
    • size_lookup("水切", "水切高さ", 168 mm, 水切奥行)
  12. [OK]

size_lookupの構文について


ize_lookup("水切", "水切高さ", 168 mm, 水切奥行)


第1引数:CSVファイル名。拡張子は不要ですが、必ず""で囲む
第2引数:値として取り出す列の引数部分の文字列。必ず""で囲む。
第3引数:値が見つからないときの規定値。
第4引数:検索する列の引数部分の文字列。パラメータの名前なので""で囲まない。

第4引数はファミリのパラメータ名です。これがCSVファイルの第1行目の値と一致している必要があります。

テストしてみる
では「だき見込」の値を変更して水切が正しく設定されるかどうか確認してみます。
まず45mmにしてみます。
だき見込45mm
次に95mmにしてみます。水切奥行が138mm、水切高さが49.1mmになるはずです。
だき95mm
今回ルックアップテーブルは一つのパラメータを設定するために使いましたが、もちろん一つのテーブルで複数のパラメータの値を設定することも可能です。