3次元図形処理技術解説 第13回 CADの「データ精度」とは?

技術ディビジョン・プロフェッショナルコンサルタント 宮木 邦宏

 

さて、これまでの本講座では、曲面理論の違いによる3次元CADデータの互換性について解説してきました。近年ではNURBSが主流となったことで、ひと頃よりは3次元モデルの変換率も高くなりました。しかし、まだまだ問題が多いのも事実です。
曲面理論の違いのほかにも、変換率に影響を与える因子はさまざまに存在します。今回以降数回にわたって、それらについて解説していきます。 今回のテーマはCADの「データ精度」です。

 

■よく言われるCADの「データ精度」って何?

 

3Dモデルにおいて「精度がいい」とはどういうことでしょうか?
「データ精度」という言葉を額面通り取れば、「数値の確かさ」、あるいは理論値との誤差を生じないような、「計算処理の確かさ」、ということになるかと思 います。つまり、形状の交点や接点における、理論値との離れ量が誤差であり、その誤差の少なさが「精度」ということになります。

コンピュータ上では、数値を表現する場合に、必ず有効桁数を持っています。単精度であれば浮動小数点7桁、倍精度では15桁といった具合です。計算の方法についても同様で、有効桁数7桁で行う単精度計算と、15桁で行う倍精度計算があります。
単精度表現は、たとえば1mを超える形状においては、「123.4567」のように有効桁が小数点4桁目までとなります。NC工作機械の分解能である 0.001mmを下回っていますので、一見問題がないように見えますが、このレベルでは精度の高いモデルとは言えません。この場合に信用できる数値は、せ いぜい小数点2桁目までと言って良いでしょう。
近くに安い電卓があったら、円周率(3.141592653)の自乗と平方根を交互に計算し、どれだけ元の値がずれてくるかを確認してみてください。これだけで単精度表現・単精度計算の累積誤差の影響がどれだけ大きいかを実感できると思います。
1セットの計算をしただけで、末桁は変わってしまいます。数回行うとさらにその上の桁に影響を与え始めます。
このような計算の繰返しは、CADでは当たり前に起こることなので、累積誤差の影響が少ない倍精度データ表現、倍精度計算は不可欠であると言えます。

 

■本来の意味の「データ精度」は、ほぼ全ての3DCADは合格
以上説明した「データ精度」は、十分に注意しなければならないポイントであることは間違いありません。しかし実際には、単精度表現、単精度計算をしている機械系3DCADは、もはや存在していません。
まだまだコンピュータのパフォーマンスが低かった15年くらい前までは、データ保持、ないしは計算が単精度の3DCADが意外と多くありました。特に当時 のソリッドモデラのいくつかは単精度計算であったため、モデルから加工パスを生成し加工したときに、まったく期待した形状精度が得らませんでした。こう いったCADがあったが故に、「データ精度」が問題になったのは事実です。
しかし、コンピュータパフォーマンスが劇的に向上した現在では、建築向けを除き単精度表現、単精度計算の3DCADはなくなりましたので、本来の意味の「データ精度」の問題は既に解決している、と断言できます。
それでは、現在も用いられているCADの「データ精度」という言葉は、一体何を指しているのでしょうか?

 

■現在も用いられているCADの「データ精度」という言葉の正体は?
ほとんどの場合、それは「モデリングトレランス」のことを指しています。モデリングトレランスとは、3次元CADにおいて、収束計算実行の際に用いる許容 値です。たとえばモデルのエッジ部分に付加するフィレット面の断面は、理論上はどこで切っても円弧になり、隣り合う面に接します。しかし、それを保証する ために無限に計算を繰り返していくのはナンセンスですし、精度を上げることで計算時間も長くなり、データ量も増加します。従い実用上問題がないレベルまで 断面の数を少なくしてその間を補間し、隣り合う面との接線性の計算も、角度誤差が0.5度程度までを許容範囲として収束計算させるようにします。
「モデリングトレランス」の値は、一般には距離は0.001mmから0.01mm、角度は0.5°程度になっていることが多く、ソリッドモデラでは、この許容値内で「閉じている」と見なせる状態であればソリッドモデルと認識し、集合演算を行うことができます。

 

■「モデリングトレランス」=モデル精度?
では、「モデリングトレランス」=「モデル精度」でしょうか?
前述の通り、そもそも「モデリングトレランス」は、形状誤差そのものを指しているものではありません。
下図左のような自由曲面を含むソリッドモデル表現は、許容値なしに計算するのは難しそうですが、右の幾何形状モデルならば、計算誤差程度しかない状態でモデル表現できそうだと感じるでしょう。

読者諸兄が使っている3DCADで、右図のような幾何形状モデルを作成してみて、エッジ端点や断面などの数値を測定してみていただければ、形状誤差は10 のマイナス8乗mmか、それ以下しかないことが容易に検証できます。幾何形状の場合には収束計算をするまでもなく、ある計算ロジックの中で精度よく答えを 求めることができますから、「モデリングトレランス」ほど大きな形状誤差が生じることはありません。それに、幾何形状モデルを作成するときに用いる2D平 面上のスケッチは、倍精度データ表現、倍精度計算である限り、10のマイナス8乗~10乗mm程度の誤差しかない、高い形状精度で表現されますから、それ を元にして作成したソリッド形状に、大きな形状誤差が含まれるはずがないのです。
「モデリングトレランス」はあくまで、自由曲面間でのエッジ計算や、フィレット面生成のような場合に生じる隙間、あるいは理論的な曲線や曲面上の理論点か らの離れ量の許容値であり、意図せずに生じた、計算上の「誤差」ではありません。ですから、この許容値の大小を問題にするなら、「モデル精度」ではなく、 正しくは「モデル再現性」と表現すべきであると言えます。

 

■「モデリングトレランス」により発生するデータ授受上の問題とは
モデリングトレランスは実用的にCADを利用するのに不可欠なのですが、その大きさにより、モデルの再現性には大きな影響を与えます。また、異機種CAD 間でデータ授受を行う場合、各CADのモデリングトレランスのデフォルト値がまちまちであると、データを受け取ったCADで、ソリッドモデル表現ができな くなる、いう問題が発生します。
受け取った側でモデリングトレランスを緩くして、ソリッドモデルとして認識することができる機能を備えているCADもありますが、応急処置ならともかくも、本来的にはこのような対処はお奨めできません。
・いちど緩めたモデリングトレランスを再び厳しくすることはできない
・ソリッドモデルとして認識する際の面の縫合処理において、トレランス内でエッジを「同じ」と見なす際に、形状を変化させてしまうことがある
というのが主な理由です。

 

そこそこ大きな問題に発展することがあります。
実際に、下図のようなモデル上に微少な段差があるモデルに対して、ソリッドモデルにならないことを理由にその段差よりも大きなモデリングトレランスを与え たところ、この段差がなくなってしまい、XY平面に平行な平面が、微妙に傾いた面になってしまうという現象に遭遇したことがあります。

この現象は、システムが段差部の上下エッジを同じと見なしたことで、上面は1面でできていると解釈し、自動的にエッジの平均値を取って面を張り直した結果 発生したようなのですが、これを見逃して作業を進めてしまい、加工の段になってその問題に気づき、大きな手戻りになりました。
このような問題を避けるためには、元々のモデルを作成する段階から、製品の精度要求に合った適正なモデリングトレランスを用いてモデル構築を行っていくこ とが必要になります。特に開発工程中に異機種の3DCADを用いる場合、データ変換時のエラーや、意図しない形状の変化を避けるためにも、「モデリングト レランス」を絶対にはずしてはいけないポイントとして認識していただきたいと思います。

 

次回は「幾何形状モデルのデータ変換の落とし穴」について解説します。

 

(第13回おわり)

 

パブリシティ・イベント