子ルール

子ルールは、デザイン内の子を定義する特別なルールです。子ルールが評価されるときは、1 つまたは複数の子パーツがインスタンス化されます。子ルールはデータ タイプ指定を必要としません。[数量]指定(任意指定)に応じて、タイプ パーツまたは一覧タイプになります。

構文

Child <name> As <DesignNameExpression> [, <Quantity = Expression>]
   <ParameterAssignmentList>
End Child

子ルールが評価されるときは、デザイン名の式と数量の式のみが評価されます。パラメータ割り当ての式は、パラメータが要求されるまでは評価されません。パラメータ割り当ての一覧はステートメント ブロックではなく、フロー制御ステートメントを記述することはできません。

注: 子のルールでない非パラメータ、または識別子に割り当てることも、エラーではありません。

次の例では、子ルールの構文を示しています。

注: 子ルール内でローカル変数を宣言することはできません。

デザイン名の式

デザイン名の式は有効なデザインの名前を返す必要があります。最も単純な式では、コロン + 識別子(:SquareTube など)を使用して名前を返します。デザイン名をより複雑な式で指定することもできます。この式は子が存在する前に評価されるため、パラメータ割り当てと異なり子の中の要素を参照することはできません。

数量式

任意指定の整数値である[数量]は、存在する場合、[数量]の式が 1 と評価されても、ルールが の一覧であることを示します(「子の一覧」を参照)。[数量]の指定がない場合、子ルールはタイプ パーツです。

子ルールのパラメータ

パラメータ値を変更することでパーツを修正できます。設定の異なるパーツがさらに 2 つ必要な場合は、2 つの個別の子ルールが書き出されます。以下で、Support および crossMember の子は :SquareTube デザインのインスタンスです。異なる値が cut2 および長さパラメータのそれぞれの子に指定されます。

Child Support As :SquareTube
   size = tubingSize
   cut1 = 0
   cut2 = 1
   length = height - footThickness
End Child
Child crossMember As :SquareTube
   size = tubingSize
   cut1 = 0
   cut2 = 0
   length = width - (tubingSize * 2)
End Child

サポートされるフラグ

子ルールでサポートされる唯一のフラグは Fixed です。Fixed フラグは、ルールを動的に上書きできないことを示します。同じ名前の動的ルールを追加しようとすると、エラーが生成されます。