tips012
エラーと作法②
— null が混ざった時
Sets ▸ List ▸ Null Item / Sets ▸ Tree ▸ Clean Tree
null(ヌル)は「中身が無い」ことを表す値。
データが取れなかった場所に、中身の無い項目として残る。
null を出して見る
- List Item の i にリストの範囲を超えた番号を渡し、W(Wrap・折り返し)に
Falseをつなぐ。
円は3本(番号は0, 1, 2)なので、1, 2, 3と渡すと3の分が範囲外になる - 出てきたリストを Null Item の I につなぐと、どの項目が null かが N に True / False で並ぶ
z = 0 / 20 / 40 の3本で、半径はどれも 30。クリックで拡大。null はこう見える
| Panel の表示 | <null>。他の項目より薄い灰色で出る |
|---|---|
| Null Item の N | False, False, True。null の項目だけ True |
| リストの長さ | 3 のまま。null も1項目として数える |
| List Item のメッセージ | オレンジの警告 Supplied index too high. |
下流に流す
- null の混ざったリストを Loft の C につなぐ
- 途中に Clean Tree を挟む。T(いちばん下の入力)にリストを入れ、その T 出力を Loft に渡す
- List Item の i を
0, 1, 2に直す
z = 0 / 20 / 40)。数値は Area が返した面積。クリックで拡大。① そのまま Loft につなぐ
Result① null のまま
| Loft の色 | オレンジ |
|---|---|
| メッセージ | Null profile curve was removed |
| 面が張られた範囲 | z = 20 から 40 |
| 面積 | 3769.911231 |
null の断面だけが外され、残りの2本(1 番の z = 20 と 2 番の z = 40)で面が張られる。
エラーにはならず、欠けた形がそのまま下流へ流れる。
② Clean Tree で null を除く
Result② null を除いた
| Loft の色 | 白 |
|---|---|
| メッセージ | なし |
| 面が張られた範囲 | z = 20 から 40 |
| 面積 | 3769.911231 |
警告は消えるが、面積まで含めて①と完全に同じ。
③ 番号を 0, 1, 2 に直す
Result③ 番号を直した
| Loft の色 | 白 |
|---|---|
| メッセージ | なし |
| 面が張られた範囲 | z = 0 から 40 |
| 面積 | 7539.822462 |
直すのは null ではない
| null を除く(②) | 警告は消える。形は変わらない |
|---|---|
| null が出た場所を直す(③) | 形が戻る。この例なら List Item の i |
null は結果ではなく、上流で何かが取れなかった跡。
null が出やすいところ
- List Item でリストの範囲を超えた番号を渡したとき(W が
Falseのとき) - 長さのちがうリストを Flip Matrix でそろえたとき。足りない分が null で埋まるが、警告は出ない
注意
W(Wrap)は既定が True。そのままだと範囲を超えた番号は先頭に折り返すので、null も警告も出ないまま別の項目が返る(この例なら 3 番のかわりに z = 0 の1本目)。
Clean Tree の上3つの入力は何を落とすかの切り替えで、N(Remove Nulls)と X(Remove Invalid)が True、E(Remove Empty)が False が既定。