2017年12月9日土曜日

クレーンに挑戦!(5)

規格外の時のふるまい

クレーンの先端を自由に移動できるのはいいのですが、可動範囲を超えて移動してしまったとき、ユーザーに分かりやすくエラーを表示したいところです。エラーになったときは大きく✖を表示するようにしてみましょう。
今回のポイントは☑に対する式の設定方法です。
エラーは×でお知らせ
エラーになったときは「定格総荷重」の値が0になるので、このとき×を表示するようにします。

バツ印の作成


  1. 管理タブ>オブジェクトスタイル
  2. 「クレーン_エラー」というサブカテゴリを作成しOK。
    サブカテゴリを作成
  3. 平面図>参照レベルのビューを開く。
  4. 作成タブ>モデルパネル>立体文字
  5. 文字を編集ダイアログボックスで「×」を入力しOK
    ×
  6. 中央に配置する。
  7. 配置した立体文字を選択する。
  8. プロパティウィンドゥ>タイプを編集 でタイプを下の図のように編集します。
    お好みのフォントを指定する
    • 文字サイズは関連付けボタンをクリックして、「長さ」のパラメータに関連付けておきます。
      長さと関連付ける
  9. インスタンスパラメータを下の図のように設定します。
    • 水平位置合わせを[中心]
    • サブカテゴリを[クレーン_エラー]
    • マテリアルを関連付けボタンを押し、[マテリアルエラー表示]というタイプパラメータを作成して関連付ける。
    • 表示の関連付けボタンを押し、「エラー表示」というインスタンスパラメータを作成して関連付ける。
      ×印の表示をパラメータ化する
  10. プロパティパネル>ファミリタイプでマテリアルと仕上げのマテリアルエラー表示パラメータの値セルで[…]をクリックして、マテリアル編集ダイアログボックスを開く。
  11. [クレーンエラー]というマテリアルを作成し、任意の外観を設定しOK。
    クレーンエラーマテリアル・任意の外観を設定する
  12. OKを1回押して、ファミリタイプダイアログボックスに戻る。

×印の表示非表示の制御


[定格総荷重]パラメータの値が0のときに、×印の表示のチェックボックスがONになればいいので式を使ってこれを制御します。
エラー表示の□(チェックボックス)を式で制御する

  1. プロパティパネル>ファミリタイプでファミリタイプダイアログボックスを表示します。
  2. エラー表示の式に =定格総荷重=0 と入力します。
    ifは必要ない
    • チェックボックスの制御にはつい「=if(…」としたくなりますが、この場合ifは不要です。
    • 定格総荷重=0が正しければ結果としてTRUE(チェックボックスON)、正しくない(定格総荷重が0ではない)ときはFALSE(チェックボックスがOFF)の値が設定されます。
  3. OKを押します。
    ×印を中心に配置
  4. ファイルを保存します。

使ってみる

プロジェクトにロードして使ってみましょう。クレーンの先端をドラッグするとエラー表示がついたり消えたりするのが確認できればOKです。
ここまで完成したファミリはこちらからダウンロードできます。



2017年12月2日土曜日

クレーンに挑戦!(4)

回転するファミリをつくる

クレーンの本体を追加します。クレーンの本体はブームに対して自由に回転できる必要があります。回転を制御するには参照面ではなく参照線を使うと確実です。

サブカテゴリを作成

車体用のサブカテゴリを作成します。
(1) [管理]タブ > [設定]パネル > [オブジェクトスタイル]
(2) 「クレーン_車体」というサブカテゴリを作成して、適切に色を設定します。

参照線を作成

(1) [作成]タブ > [基準面]パネル > 参照線 で図のように参照線を作成し、参照面から参照線の端部に平行寸法を作成します。
参照線と寸法
(2) 参照線を選択し、アクティブになった寸法値を両方0にします。
寸法で位置合わせ
(3) 寸法を選択して、かぎアイコンをクリックしてロックします。
寸法0でロック

(4) 参照線と、水平な参照面(重なっているので、TABキーで確実に選択する)に角度寸法を作成する。
(5) 作成した角度寸法を選択し、[寸法にラベルを付ける]パネル > [パラメータを作成]
(6) パラメータプロパティダイアログボックスで名前を「水平回転角」とし、インスタンスパラメータを選択して[OK]
インスタンスパラメータを追加
[プロパティ] > [ファミリタイプ]で水平回転角の値を変更して、参照線が参照面の交点を中心に回転することを確認します。
角度を変えても参照線の端部が参照面の交点から離れない

クレーン本体を簡略化した立方体で作成します。このとき大切なのは、この立方体を作成する「作業面」です。

作業面を指定する

3Dビューを表示して参照線を選択してみましょう。参照線に羽が生えたように面が4面くっついているのがわかります。実はこれは参照面なのです。
参照面である以上、これらの面は作業面として指定できるはずです。しかしながらこのままの状態では作業面として使えません。参照面を一工夫します。
(1) 参照線を選択
(2) プロパティパレットで、[参照]プロパティを[強参照]にします。
強参照にかえることがポイント
(3) [作成]タブ > [作業面]パネル > [セット]
(4) [作業面]ダイアログボックスで[面を選択]でOK
(5) 参照線の上にカーソルを合わせてTABキーを何回か押して、参照線に平行な水平の作業面を選択
参照線の参照面を作業面に指定
このように、参照線を強参照にすることで、参照線が持っている参照面を作業面として指定することができるようになります。何か要素を作成する直前にこのテクニックで作業面を指定しましょう。

フォームの作成

詳細な本体を作成したい場合は、別のファミリとして作成して、挿入すればいいのですが、今回は非常に簡略な本体を立方体で作成してみます。
(1) 平面ビューを表示
(2) [フォーム]パネル > [押し出し]

重要!!!!

ここで再度、作業面の指定が必要になります。これから作成する押し出しフォームのの作業面として、上の手順に従って作業面を指定してください。

(3) 下の図のようにスケッチし、パラメータ[車体全長]を作成します。また既存のパラメータ[アウトリガ張出]を幅として指定します。
押し出しのスケッチ
(4) [モード]パネル > [✔(編集モードを終了)]をクリック
(5) プロパティパレットで、押し出し終端の関連付けボタンをクリックし「ブーム基準高さ」に関連付けます。
高さの関連付け
(6) さらにマテリアルの関連付けボタンをクリックし、「マテリアル_車体」というプロパティを作成して関連付けます。
マテリアルの関連付け
(7) サブカテゴリを「クレーン_車体」
以上でファミリの作成は終了です。
水平回転角の値を0にして保存します。
車体がとりついたクレーン
プロジェクトにロードして振る舞いをチェックしてみましょう。
ここまでのクレーンのモデルはこちらからダウンロードできます。

プロジェクトでの振る舞い

プロジェクトにロードし、今までと同じ手順でクレーンを配置します。水平回転角度パラメータをいろいろな値に変更してみてください。
回転するファミリの作成方法がお分かりいただけましたでしょうか?クレーンの本体をもう少し「らしい」形にしたい場合は、別ファミリとしてボディを作成して、クレーンファミリにロードすればいいです。ロードしたファミリを配置するとき、上の手順に従って作業面を指定してから配置してください。

次回は企画に外れた設定をしたときに警告が表示されるようにしてみましょう。

2017年11月25日土曜日

クレーンに挑戦!(3)

アウトリガの幅に応じた荷重

前回はルックアップテーブルの特定の列を参照する式を作成しました。

定格総荷重 = size_lookup("RK130LOAD", "荷重47", 0, 判別キー)

この"荷重47"とは、「アウトリガの張り出しが4.7mのとき」という意味で、アウトリガの張り出しが変われば、定格総荷重も変わります。ルックアップテーブルにほかの張り出しの荷重を下の図のように追記してみます。(編集済みのCSVファイルはこちらからダウンロードできます。

  • 4.3m---荷重43##OTHER##
  • 3.5m---荷重35##OTHER##
  • 2.5m---荷重25##OTHER##

以下のようにCSVファイルを編集し保存します。
荷重43,荷重35,荷重2.5の列を追加

ファミリを編集する

アウトリガ張出し×ブーム長さの組み合わせでタイプを作成します。ファミリを開いてまずはアウトリガの張り出し長さを保持するタイプパラメータを追加し、ルックアップテーブルを更新しましょう。

  1. 作成タブ>プロパティパネル>ファミリタイプ
  2. ファミリタイプダイアログボックスで次の操作をします。
    • 新しいパラメータボタンをクリックし、パラメータプロパティダイアログボックスで次の操作をします。
      • 名前を「アウトリガ張出
      • パラメータタイプを「長さ」
      • パラメータグループを「寸法」
      • 「タイプ」を選択
      • OK
    • もう一度新しいパラメータボタンをクリックし、パラメータプロパティダイアログボックスで次の操作をします。
      • 名前を「ルックアップテーブル
      • パラメータタイプを「文字」
      • パラメータグループを「文字」
      • 「タイプ」を選択
      • OK
    • タイプでブーム5.3mを選択、名前変更をクリックし「ブーム5.3m×アウトリガ4.7m」としOK
    • ルックアップテーブルの値に「荷重47
    • アウトリガ張出の値に「4700
    • これを繰り返して、すべてのブーム長さとアウトリガ張出の組み合わせたタイプを作成する。
  3. [ルックアップテーブルを管理]をクリックし、ルックアップテーブルを管理ダイアログボックスで次の操作をします。
    • RK130LOADを選択し[削除]
    • [削除を続行]
    • [読み込み]をクリックし、編集しなおしたRK130LOAD.csvを選択し開く
    • OK
  4. 定格総荷重の式で、"荷重47"ルックアップテーブルに変更(""は必要ない)
    size_lookup("RK130LOAD", ルックアップテーブル, 0, 判別キー)
  5. タイプを変更して適用ボタンを押し、定格総荷重の値が変わることを確認する。
  6. OK
  7. 保存
このように、列名はパラメータ化することができます。同様にルックアップテーブル名もパラメータ化することができます。この場合は複数のルックアップテーブルを読み込んでおく必要があります。

使ってみよう

ここまで編集した2017形式のRK130ファミリはこちらからダウンロードできます。これをプロジェクトにロードして、配置してみます。

  1. 平面ビューを開く
  2. 建築タブ>構築パネル>コンポーネント
  3. モードパネル>ファミリをロード で ダウンロードしたRK130_003.rfaを開く
  4. 配置パネル>作業面に配置
  5. タイプセレクタで「ブーム5.3m×アウトリガ2.5m」を選択
  6. 2点を3000mmの間隔でクリックして配置
  7. 3Dビューを開く
  8. 配置したクレーンを選択
プロパティウィンドゥに表示されている定格総荷重が5.9tであることを確認します。
定格総荷重は5.9t
次にワイヤの先端をドラッグして、距離を5000mmに変更します。
定格荷重は0となる
定格総荷重は0となり、揚重不可であることがわかります。そこでタイプセレクタで「ブーム23.8m×アウトリガ4.7m」に変更します。
定格総荷重3.2t
定格総荷重が3.2tとなります。
ルックアップテーブルには複数の列を作成して、様々な値を返すことができます。

次回はせっかくアウトリガの張出しをパラメータとして設定したので、このアウトリガをモデルに表示して、自由に回転できるようにしてみます。

お願い

私自身はクレーンのふるまいについてそんなに詳しいわけではありませんし、仮設計画の経験が豊富なわけではありません。改善すべき点や、盛り込むべき機能にお気づきの点があればぜひコメントをお願いいたします。



2017年11月18日土曜日

クレーンに挑戦!(2)

定格総荷重を表示するには

今回のテーマは「定格総荷重の表示」です。コベルコRK-130のカタログをみると、

  • アウトリガの張り出し
  • ブームの長さ
  • 作業半径
の三つの条件で、定格総荷重の値が決まるようです。こういったある値に対して、決まった値を取り出すには「ルックアップテーブル」を使うとよいでしょう。聞きなれない言葉ですが、実はRevitMEPがリリースされた当初から存在している機能なんです。条件が一つだとさらにやりやすいのですが今回は複数あるので、ちょっと工夫が必要です。

検索キーを作成する

エクセルのルックアップとは異なり、検索できるのは数字だけという制約があります。そこで、検索条件としてブームの長さと作業半径を8桁の数字として編成します。
作業半径はインスタンスパラメータ「長さ」です。ドラッグすれは自由に変更できるので、表にあるような0.5m刻みにする必要があります。そこで以下のような「形式判別」用のパラメータをファミリに追加します。

ファミリパラメータ追加

ファミリを開いて、次のパラメータを追加して式を設定します。

  • パラメータ名:判別キー(長さ、インスタンス)
  • 式:=ブーム長さ * 100 + 5*roundup(作業半径/500)
    判別キー

ブームの長さに100をかけて、上4ケタを作り、作業半径(mm)を500(mm)で除して5をかけて下4桁を作ります。これで数値による検索キーができました。

ルックアップテーブル

ルックアップテーブルはcsv形式のファイルで、エクセルで編集します。
サンプルCSVファイルはこちらからダウンロードできます。

形式

1行目:列タイトル (列名#パラメータタイプ#単位)
2行目以降:値
1列目:メモ(プログラム的には無視されます。自由に書いてよい)
2列名:検索キーの値
3列目以降:検索する値
ルックアップテーブル
A1セルは必ず空欄です。
B1, C1…は列の説明が入りますが、その形式は
  列名##パラメータタイプ##単位
です。パラメータタイプはもともとMEPで複数の配管サイズを一つの呼び称で決定するために作られた機能なので使えるタイプは以下の種類に決まっています。

  • 整数(NUMBER)
  • 実数(OTHER)
  • 長さ(LENGTH)
  • 面積(AREA)
  • 容積(VOLUME)
  • 角度(ANGLE)

今回のように荷重のように重さの値は検索できないので、代わりに実数(OTHER)を使用します。
ルックアップ関数はB列の値を検索して、C列以降で関数で指定した列の値を取り出します。B列の列名は何でもいいです。パラメータタイプと単位だけは正しく指定します。

検索例

ブーム長さ9mで作業半径3mの場合、判別キーは「900030」となるので、荷重47の列を指定した場合、返される値は「6」となります。

パラメータとlookup式の作成

ファミリを開いて、定格総荷重を示すパラメータを作成し式を設定します。式の書式は
=size_lookup("CSVファイル名","検索列名",見つからないときの値,検索キーパラメータ)
です。

  1. プロパティパネル>ファミリタイプ
  2. ファミリタイプダイアログボックスで[ルックアップテーブルを管理]をクリック。
  3. [読み込み]を押して、ダウンロードしたCSVファイル(RK130LOAD.csv)を選択してOK
    ルックアップテーブルを読み込む
  4. OK
  5. [新しいパラメータ]をクリック。
  6. パラメータプロパティダイアログボックスで次の操作をします。
    • 名前に「定格総荷重」
    • パラメータタイプ「実数」
    • パラメータグループ「データ」
    • インスタンスを選択
    • OK
  7. 定格総荷重パラメータの式に次の式を設定
  8. 定格総荷重パラメータにルックアップ式を追加
    • size_lookup("RK130LOAD", "荷重47", 0, 判別キー)
    • 値が反映されることを確認
  9. OK

使ってみよう

それでは実際に使ってみましょう。
  1. プロジェクトを新規に作成して、ファミリをロードします。
  2. 配置パネル>作業面に配置を選択、2点をクリックして配置します。
  3. プロパティパネルに定格総荷重が表示されることを確認します。
    ワイヤ先端をドラッグし、定格総荷重の変化を確認する
配置したらワイヤの先端をドラッグしたり、タイプを変えてブームの長さを変更したりしてみてください。定格総荷重の値が変化します。

次回はアウトリガの張り出しを変えてみます。

何かクレーンのファミリで気を付けなればならないことなど、ご意見やご提案がありましたら、遠慮なくコメントに投稿してください。

2017年11月11日土曜日

クレーンに挑戦!(1)

クレーンのファミリの要件

「クレーンのファミリを作れないか?」というお話をいただきました。条件は

  1. 吊上げフックの先端を目的揚重ポイントにドラッグできる
  2. 定格総荷重のプロパティを表示できる
という、なかなか難しい注文です。プログラム(.net API)を用いれば容易に可能ですが、ファミリだけで作るとなるとなかなか難しそうですね。まずは、骨組みとなる部分
  • ブーム
  • ワイヤ
  • 回転半径
のみをもつ、最も基本的な形状のファミリを作成してみます。
まずはモデル線分だけでクレーンを表現する
プロパティには下の図のように、ブームの長さや作業半径に応じて定格総荷重を表示します。
プロパティウィンドゥに定格総荷重を表示

お願い

私自身はクレーンについてはあまり知識がないのですが、カタログのデータを頼りに作ってみます。専門家の方でもし、気が付いたところがあれば、ぜひコメントを記入してください。一緒に作っていただければ幸いです。

ドラッグで位置決めするには

配置ポイントを回転しながらドラッグして位置を決めれるファミリは
  • 線基準
  • アダプティブ
のどちらかになります。今回は線基準で作ります。

作ってみよう!

サブカテゴリ

では手順を追って作り方を説明します。まずはサブカテゴリを定義します。カテゴリは一般モデルのままでも構いませんが、クレーンの断面が表示されても仕方ないと思うので、今回は常に見え掛が表示されるように「特殊設備」を使ってみます。
  1. ファイル>新規作成>ファミリ
  2. 一般モデル(メートル単位)、線基準面.rftを選択
  3. プロパティタブ>ファミリカテゴリとパラメータ で [特殊設備] を選択しOK。
  4. 管理タブ>設定パネル>オブジェクトスタイルで[新規作成]をクリックして次のサブカテゴリを作成します。
    • クレーン_ブーム:3:黒:実線
    • クレーン_ワイヤ:2:青:1点破線
    • クレーン_回転半径:1:赤:破線
      サブカテゴリの作成ー断面がグレーになっていることに注目してください。
  5. OK
  6. 名前を付けて保存します。(ここではコベルコRK130とします。)

ブーム

クレーンを配置するときは、平面図上でクレーン設置レベルにおいて
  1. ブームの回転基点
  2. ブームの先端
の順番でクリックするはずです。この1-2間の距離が、「長さ(既定値)」パラメータとなります。では、作成を始めましょう。
  1. プロジェクトブラウザで立面図>正面をダブルクリックして開く。
  2. 下の図のように参照面を作成する。①にブーム基準面、②にブーム最高高さ面という名前を付ける。
  3. 参照レベルに重なっている参照面と①の参照面で寸法を作成して選択。
  4. 寸法にラベルを付けるパネル>パラメータを作成 で「ブーム基準高さ」というタイプパラメータを作成する。
    • 接地面とブームの取り付け高さまでの距離は、重機の機種ごとに決まっていると思うので、タイプパラメータとしました。
  5. 同様に①と②の間に寸法を作成し、「ブーム高さ」というインスタンスパラメータを作成。
    正面ビューで参照面とパラメータを作成
  6. プロパティパネル>ファミリタイプ で以下の操作をします。
    1. タイプパラメータ「ブーム長さ」(パラメータタイプ:長さ)を追加する。
    2. インスタンスパラメータ「作業半径」(パラメータタイプ:長さ)を追加し、式を「=長さ」とする。
    3. インスタンスパラメータ「ブーム最高高さ」(パラメータタイプ:長さ)を追加し、式を「=ブーム基準高さ + ブーム高さ」とする。
    4. ブーム高さの式を「=sqrt(ブーム長さ ^ 2 - 作業半径 ^ 2)」とする。
    5. OK

モデルの作成

モデル、といっても今回はまず「骨組み」として、モデル線分を作成するだけですから簡単です。
  1. 作成タブ>モデルパネル>モデル線分
  2. サブカテゴリパネル>クレーン_ブーム
  3. 下の図の①-②とクリック
  4. サブカテゴリパネル>クレーン_ワイヤ
  5. 下の図の②-③とクリック
    モデル線分を作成
これでクレーンのブームとワイヤは完成です。

作業半径

作業半径は立体で作成してみます。
  1. プロジェクトブラウザ>平面図>参照レベル
  2. 作成タブ>フォームパネル>押し出し
  3. 描画パネル>円 で適当に円をかく。
  4. 選択パネル>修正 で作成した円を選択し、プロパティ[中心マークを表示]を✔。
    中心マークを表示
  5. 修正パネル>位置合わせ を使って中心に位置合わせし、ロックする。
    参照面に円の中心を位置合わせしてロック
  6. 選択パネル>修正 で作成した円を選択し、半径を表示した仮寸法のアイコンをクリックして、実寸法とする。
  7. 作成された寸法を選択し、寸法にラベルを付けるパネル で ラベルリストから「作業半径」を選択する。
    半径にラベルをつける
  8. モードパネル>✔(編集モードを終了)
  9. 作成されたフォームを選択し、サブカテゴリをクレーン_回転半径とする。
  10. プロジェクトブラウザ>立面図>正面を表示
  11. 作成されたフォームを選択し、上端をドラッグし、ブーム最高高さ面にロックする。
    上端をドラッグして参照面にロック
  12. フォームを選択し、プロパティ表示の関連付けボタンをクリック。
  13. インスタンスパラメータ「作業半径表示」を作成して関連付ける。
  14. フォームを選択し、プロパティでマテリアルの関連付けボタンをクリック。
  15. タイプパラメータ「マテリアル作業半径」を作成して、関連付ける。
  16. プロパティパネル>ファミリタイプ で 「マテリアル作業半径」の値に、下記のような半透明なマテリアルを作成して割り当てる。

タイプの作成

ブームの長さに応じたタイプを作成します。RK130の場合ブームは
  • 5.3m
  • 9.0m
  • 12.7m
  • 16.4m
  • 20.1m
  • 23.8m
です。
  1. プロパティパネル>ファミリタイプ
  2. ①のボタンを押して、「ブーム5.3m」という名前のタイプを作成し、プロパティブーム長さ(②)を5300とする。
    タイプを作成
  3. 同様に上記の長さでタイプを作成しOK。
  4. 上書き保存する。

使ってみる

これで第一段階は完成です。プロジェクトにロードして動作を確認してみましょう。2点をクリックして配置します。3Dビューで確認してください。
配置したRK130
次に、3Dビューでワイヤの先端をドラッグして、移動します。
タイプを変更してみます。半径を保ったまま、高さが変更されます。
まずまずの動きです。インスタンスプロパティの表示も問題ないようです。
インスタンスプロパティ
ここまでのファミリのファイルはここからダウンロードできます。ぜひいろいろとご意見をいただきたいです。
次回は定格総荷重の表示にトライしてみましょう。