複雑なファサードでありがちなこと #4 数値の揺らぎ
この記事は2021AECアドカレの12/17向けです。
一応シリーズものの一部でもあるのでその他の記事もぜひ。
今年一年は手動でのモデルの間違いや形状の不備に苦戦しました。
気持ちを新たにしたところで事態は何も改善しないので、問題を分析しつつ対策について考えて今年の振り返りとしようと思います。
計算誤差
BIMとかCADってデジタルですよね。
デジタルであるということは二進数(0と1)で表現されているということです。
普段使っている分数や小数を二進数に置き換えることで桁落ちや桁あふれ、情報落ちといったことが発生します。
実験です。
何かしらのCADで正確に1000角の矩形を描いてから原点からなるべく遠く離れたところに移動してみましょう。
画像はAutoCADの場合ですが面積が1,000,000ではないことがおわかりいただけただろうか…?
おそらく、位置を示す座標の絶対値に対して相対的に小さい辺長であるがゆえに計算誤差が出ています。
色々試したくなりますが、あまり内部的な処理を分析してしまうと色々差し障るので深入りは避けます。
こういった現象はCADでは避けられないもので、ぴったり1,000,000と出るような面積計算をさせたければトリックが必要でしょう。
(AutoCADならば寸法線とフィールドを使って計算させるなど)
各種のCADソフトにはそれなりに補正機能があったり、そもそも長さはmmで押さえるけど面積は平米だったりするのでこの面積問題だけでいえば普段は気になりません。
しかし、コンピュータの中にある幾何学には総じてこの計算誤差の問題が潜んでいます。
解析解と数値解
ふだん意識している人はあまりいないかもしれませんが、CADで作図する際に使うコマンドには解析的に解を出しているものと数値的に解を出しているものとがあるようです。
ここでいう解析解と数値解というのは
解析解:問題を代数的に表現して方程式を解いて求めた厳密な答え
数値解:問題を代数的に表現せずに条件から絞り込んで出した近似的な答え
という程度の意味合いです(数値解析の本職の人たちから怒られるかもしれませんがブログなので許して)。
例えば、二つの円の交点を求めるとき、円の方程式を連立して解くことで座標を求めるのが解析解
円を何らかの表現手法(NURBSだとかBezierだとか)で表現して曲線上を走査して共通の座標があるか検査するのが数値解です。
Grasshopperでも、 mathematical/physicalという識別があります。
どちらかというとこの2つは精度というよりも図形をどう認識するかの使い分けが多い気もしますが、BrepBrepの交線とBrepPlaneの交線では似たような計算をしても微妙に結果が違います。
数値解で作図された図形は一定の近似が行われている以上、元の図形から少しずつ離れていくので工程を重ねていくと最初のインプットの図形との間に乖離が生じることを想定するべきでしょう。
四角い建物であれば、通り芯からの追い出しによって作図することで解析的に定義できるわけですが、曲面をデザインの基準面として追いかけていくとどこかのタイミングで数値解に頼った作図が不可避となる場合があり、その結果、小さいものではあっても意図した数値と厳密に一致しないという部分も出てきます。
最初にあげた計算誤差を含めCADを開発しているソフトウェア会社の賢い方々がキャリブレーション(補正)の工夫を凝らしていても、無限に精度を求めることはできません。
人間のミス
さて、話をややこしくするのは人間の技能の差です。
誰しも初めてCADを触ったときは、意図せずスナップさせておかしな位置にオブジェクトを吹き飛ばしてしまった甘酸っぱい記憶があると思います。人は成長したといってもなお人なので、程度の違いはあれマウスを握りモデリングする限り何かしらのミスをします。
習熟度が上がってくるにつれて間違いが減るので、いつの日にか完全無欠なモデルができると期待してしまいます。しかし、吹きすさぶ設計変更の嵐や増大した労務負荷の重力で水平線のRが地球の半径からずれてしまう日にも我々はマウスを握らなくてはなりません。
そう、なんらかのタイミングで人為による誤りがモデルには含まれています。
間違いのないモデリングをしろというのは希望ではあっても指示にはなりえません。人類は誤りを犯さないようには進化していないので、我々は誤りがある前提のマネジメントを考えるべきではないでしょうか。
対策
1. 研鑽
仕様上不可避なもの以外を減らすよう、技術の向上も当然やるべきです。
完ぺきではないが有効な対策はあります。
2. SLA(サービス水準の合意)を結ぶ
どのような水準で精度確保するのかという合意を関係者間で結び、事前に水準未達時の対応を決めておくことで、無限精度を追求する無限修正の悪夢を見なくて済むかもしれません。建築図は特記仕様書などで製作時の精度管理を定めますがモデリングがバーチャルな建設行為だとするならば似たような思想が必要ではないでしょうか。
モデル精度のSLAは今後個人的に探究したいテーマの一つです。
いま頭にある項目。
- 単位と確保する精度の基準(mm単位で小数点以下四捨五入とか)
- 内外寸法を許容するものとプラス管理やマイナス管理をするものを仕訳ける
- 寸法に誤りを見つけた際の対処方法(これは発見の時期にもよる)
- 中間提出、検収時の検査箇所
これまでは良識と慣習に従ってやってきたところでもありますが、3Dモデルは完全無謬という前提で考えているお客さんと仕事をするためにも契約書の添付資料として整備する必要があるなと感じています。
一般に建材はものによりつつ0.1mm単位まで、建築図は1mm単位という認識ですがモデルにどのような精度を求めるべきでしょうか。
3. 検査ジオメトリ
特に守らなくてはいけない寸法に関しては検査ジオメトリを作成し、確保されるべき数値が守られるようにすべきでしょう。たとえば最高高さの制限や壁面後退線を作成し干渉チェックを行うなどです。
逆に確実に交差線が出るかという検査もあります。
目地寸法などの存在しないものの寸法確保は鬼門で、無いものを測るというトンチのようなことになりがちなので、普段はモデリングしないシールをモデリングするというのも冗談ではないこともあります(目地とは寸法調整の調整シロではないのか、という思想的問いもありつつ…)。
検査項目を決めていくというのはSLAとも連動するマネジメント手法です。
この記事を書くことで自分自身のなかでも数値誤差とモデリング間違いを複合的にとらえた数値の揺らぎについてなんとなく整理がついたので、来年の仕事に活かしていこうと思います。
Merry Christmas.