ラベル 式 の投稿を表示しています。 すべての投稿を表示
ラベル 式 の投稿を表示しています。 すべての投稿を表示

2020年6月28日日曜日

配列複写を含むファミリ

配列複写をパラメータ化する

たとえばグレーチングのように、長さに応じてフォームの数が変わるようなファミリを作ってみます。
長さが変わっても一定ピッチで割り付けるファミリ
キーとなるのは配列複製です。

作り方

外枠

どのカテゴリでも構わないのですが、今回は造作工事カテゴリとして作成してみます。まずは外枠を組み立てます。以下のように参照面と寸法・ラベルを作成して、フォームを作成してください。今回の主題ではないのでこの辺りは省略させていただきます。
平面:押し出しで外枠を作成

正面

{3D}

ネストファミリの作成とロード

配列複製する要素はできればその部分だけをファミリにして、外枠のファミリにネストして作ることをお勧めします。こちらも詳細は省略しますが、次の図のような立方体のファミリを作成し、上記の枠のファミリにロードします。

そして、幅を厚さ、奥行を奥行、高さを高さに関連付けます。
パラメータを関連付け

パラメータの準備

配列複写を行うためにまずパラメータを用意します。
間隔は芯-芯の距離です。
  1. 作成タブ>プロパティパネル>ファミリタイプ
  2. 新しいパラメータボタンを押して、パラメータを追加します。いずれもタイプパラメータとします。
    • 本数:整数
    • 間隔数:整数
    • 間隔:長さ
      パラメータを追加
  3. 次の図のようになります。
    順不同です。自由に並べ替えてください。

  4. もう一度新規作成ボタンをおして、「希望ピッチ」という長さのパラメータを追加し値を100とします。
    希望ピッチ=100

  5. 次に各パラメータの「式」に式を設定します。
    • 本数:間隔数-1
    • 間隔数:(幅 + 厚さ) / 希望ピッチ
    • 間隔:(幅 + 厚さ) / 間隔数

配列複製

次に参照面とフォームを作成して、パラメータを割り当てます。
  1. 右側の枠の中心に参照面を配置し、寸法を使って均等にロックします。
    枠の中心に参照面を作成
  2. 適当に参照面を1本作製し、1で作成した参照面との間に寸法を作成、「間隔」を割り当てます。
  3. ロードしたネストファミリを配置し、2の参照面と、水平の中央の参照面にロックします。
    ネストファミリを配置して参照面にロック
  4. 配置したネストファミリと、1で作成した参照面を選択して、修正パネル>配列複製
    • このとき参照面も一緒に配列複製することが重要です。
  5. 適当に2点をクリックして、複製を作成
    参照面との間に寸法を作成し、パラメータ「間隔」を割り当て
  6. 複製された参照面との間に寸法を作成して「間隔」パラメータを割り当て
  7. 複製されたフォームを選択すると、わかりにくいが青い字で「2」という数字が表示される。この時表示される寸法線(下線)を選択する。
  8. オプションバーで「本数」を選択
    オプションバーでパラメータを選択
  9. 下の図のようになります。

幅や希望ピッチの値を変更して破綻がないかどうか入念にチェックしてください。
例:幅2000 奥行400 希望ピッチ100
例:幅1000 奥行1000 希望ピッチ50

注意

配列複製する対象はこの例のようにネストして作成することをお勧めします。フォームを直接配列複製してももちろんかまわないのですが、コントロールが難しいのと、なによりパフォーマンスがかなり低下します。

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年5月27日土曜日

条件式を使ったファミリ

条件式 IF

前回のファミリを引き続き題材にします。下の図を見てみると、面取距離(A)の値は取りうる値に制限があることがわかります。0より大きくないといけないし、またX、Yの値の半分より小さくないと押し出しフォームを作ることができません。
前回の面取りファミリ
まとめますと
  • 条件1: 面取距離>0
  • 条件2: 面取距離<0.5*X かつ  面取距離<0.5*Y
面取距離=面取長*sin(45°)ですから、二つの条件は
  • 条件1:面取長*sin(45°)>0
  • 条件2:面取長*sin(45°)<0.5*X かつ 面取長*sin(45°)<0.5*Y
となります。この二つの条件をすべて満たしたとき、Aの値を受け入れるようにしてみましょう。
条件式は if 文を使います。書式は

if(条件式, TRUEの場合の値, FALSEの場合の値)


となります。条件式は数字の判断が使えますが、文字列の判断は使えません。

入力用のパラメータを追加

ファミリを開いて、面取りの長さを入力するためのパラメータを追加します。

  1. 作成タブ>プロパティパネル>ファミリタイプ
  2. 新しいタイプ ボタンをクリック
  3. 名前を「面取長」とし、パラメータタイプを「長さ」、パラメータグループを「寸法」としOK
    パラメータ「面取長」を追加

条件を追加

条件1と条件2を評価するためのパラメータを追加します。

  1. 作成タブ>プロパティパネル>ファミリタイプ
  2. 新しいタイプボタンをクリック
  3. 名前を「条件1」としてパラメータタイプを「はい/いいえ」、パラメータグループを「その他」
  4. 同様に、「条件2」を追加
  5. 条件1の式を「面取長 * sin(45) > 0」
  6. 条件2の式を「and(面取長 * sin(45°) < 0.5 * X, 面取長 * sin(45°) < 0.5 * Y)」
    条件1と条件2を追加して式を設定する
    条件2の式は「面取長 * sin(45°) < 0.5 * X」, 「面取長 * sin(45°) < 0.5 * Y」の両方の式が満たされていればTRUE(☑)、そうでなければFALSE(□)を返します。

Lの値を制御する

Lの値をifを使った計算式で制御します。
  1. Lの計算式に「if(and(条件1, 条件2), 面取長, 0.1 * X)」と入力

これは 条件1と条件2がどちらもTRUEならば、面取長にLの値を、そうでなければXの0.1倍の値をLに設定する という意味です。なお、どちらかがTRUEの場合はandではなくorを使います。
Lの式を設定するとグレーになる

面取長の値をいろいろ変えて適用ボタンをおしてみてください。あまり大きな値を入力するとX*0.1の値になります。
安全なファミリ

これで安全な値しか入力できないようになります。