条件式 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 文を使います。書式は
if(条件式, TRUEの場合の値, FALSEの場合の値)
となります。条件式は数字の判断が使えますが、文字列の判断は使えません。
入力用のパラメータを追加
ファミリを開いて、面取りの長さを入力するためのパラメータを追加します。条件を追加
条件1と条件2を評価するためのパラメータを追加します。- 作成タブ>プロパティパネル>ファミリタイプ
- 新しいタイプボタンをクリック
- 名前を「条件1」としてパラメータタイプを「はい/いいえ」、パラメータグループを「その他」
- 同様に、「条件2」を追加
- 条件1の式を「面取長 * sin(45) > 0」
- 条件2の式を「and(面取長 * sin(45°) < 0.5 * X, 面取長 * sin(45°) < 0.5 * Y)」
条件1と条件2を追加して式を設定する
Lの値を制御する
Lの値をifを使った計算式で制御します。
- Lの計算式に「if(and(条件1, 条件2), 面取長, 0.1 * X)」と入力
これは 条件1と条件2がどちらもTRUEならば、面取長にLの値を、そうでなければXの0.1倍の値をLに設定する という意味です。なお、どちらかがTRUEの場合はandではなくorを使います。
Lの式を設定するとグレーになる |
面取長の値をいろいろ変えて適用ボタンをおしてみてください。あまり大きな値を入力するとX*0.1の値になります。
安全なファミリ |
これで安全な値しか入力できないようになります。