(57)【要約】【課題】  ３次元ＣＡＤにおいて、計算順序やコンピュータ内での有効桁数による桁落ち等に影響されることなく、幾何計算処理を行うことができることを目的とする。【解決手段】  対象物の形状を有限個の立方体セルで分割して、この立方体セルの１つを幾何計算処理の最小単位とみなしてセル空間を構成し、ＣＡＤ装置にはセル幾何計算処理モジュール１２を設け、前記有限個の立法体セルの何れに前記対象物の幾何計算値が含まれるかを判断することによってセル空間上の幾何計算値を決定することにより、浮動小数点に基づく幾何計算処理を排除することが可能となり、計算順序や誤差の累積問題等を考慮することなく、単一または複数の対象物に関する幾何計算を精度良く行うことができるようになる。【選択図】          図１
2005174250.tif 000002
【特許請求の範囲】
【請求項１】
ＣＡＤアプリケーションを用いて対象物の幾何計算を行う幾何計算処理装置であって、
前記対象物の形状を有限個の立方体セルで分割する手段と、
前記立方体セルの１つを幾何計算処理の最小単位とみなしてセル空間を構成し、前記有限個の立方体セルの何れに前記対象物の幾何計算値が含まれるかを判断することによって前記セル空間上の幾何計算値を決定するセル幾何計算処理手段を有することを特徴とする幾何計算処理装置。
【請求項２】
前記幾何計算処理において、整数データのみの計算を対象とする整数データ計算処理手段と、
有理数が生じる計算を対象とする有理数計算処理手段とをさらに有し、
前記セル幾何計算処理手段は、前記整数データ計算処理手段または前記有理数計算処理手段で算出された値を基に、前記有限個の立方体セルの中から前記幾何計算値が含まれる特定の立方体セルを選択して前記幾何計算値を決定することを特徴とする請求項１に記載の幾何計算処理装置。
【請求項３】
前記セル幾何計算処理手段により決定される幾何計算値を基に、前記対象物の複数の幾何関係を処理するＣＡＤ機能処理手段をさらに有することを特徴とする請求項１または２に記載の幾何計算処理装置。
【請求項４】
前記対象物は金型設計により製造される製品であり、前記対象物の表面データを幾何計算の主な対象としていることを特徴とする請求項１〜３の何れか１項に記載の幾何計算処理装置。
【請求項５】
前記立方体セルのサイズは、前記対象物の大きさ、及び６４ビット整数表現可能な演算処理装置との関係から規定されることを特徴とする請求項１〜４の何れか１項に記載の幾何計算処理装置。
【請求項６】
ＣＡＤアプリケーションを用いて対象物の幾何計算を行う幾何計算処理方法であって、
前記対象物の形状を有限個の立方体セルで分割する手順と、
前記立方体セルの１つを幾何計算処理の最小単位とみなしてセル空間を構成し、前記有限個の立法体セルの何れに前記対象物の幾何計算値が含まれるかを判断することによって前記セル空間上の幾何計算値を決定するセル幾何計算処理手順を有することを特徴とする幾何計算処理方法。
【請求項７】
前記幾何計算処理において、整数データのみの計算を対象とする整数データ計算処理手順と、
有理数が生じる計算を対象とする有理数計算処理手順とをさらに有し、
前記セル幾何計算処理手順は、前記整数データ計算処理手順または前記有理数計算処理手順で算出された値を基に、前記有限個の立方体セルの中から前記幾何計算値が含まれる特定の立方体セルを選択して前記幾何計算値を決定することを特徴とする請求項６に記載の幾何計算処理方法。
【請求項８】
前記セル幾何計算処理手順により決定される幾何計算値を基に、前記対象物の複数の幾何関係を処理するＣＡＤ機能処理手順をさらに有することを特徴とする請求項６または７に記載の幾何計算処理方法。
【請求項９】
前記対象物は金型設計により製造される製品であり、前記対象物の表面データを幾何計算の主な対象としていることを特徴とする請求項６〜８の何れか１項に記載の幾何計算処理方法。
【請求項１０】
前記立方体セルのサイズは、前記対象物の大きさ、及び６４ビット整数表現可能な演算処理装置との関係から規定されることを特徴とする請求項６〜９の何れか１項に記載の幾何計算処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータで設計を支援するＣＡＤ(Computer Aided Design)技術に関するものであり、特に、立体モデルをコンピュータ内で表現する技術であるソリッドモデラに関わるものである。
【背景技術】
【０００２】
一般に、金型生産工程１１０では、その全工程に渡り経験を有する職人（技術者）の優れた技術を前提としており、長期の製作時間（１〜２ヵ月程度）を要してしまうのが現状である。図１２に従来の金型生産工程を示す。例えば、型設計は、顧客であるメーカ等の製品設計データに基づいて、熟練した型設計者により行われる。この場合、３次元ＣＡＤを利用した３次元データを利用できれば作業を効率良く行うことが可能となり得るが、金型生産に関わる全ての技術者が３次元ＣＡＤを習熟しているとは限らない。
【０００３】
このため、従来から用いられている２次元の製品図面を媒介にして、相互の技術的理解を図って製品形状を伝達する場合が多い。その際、熟練した金型設計者が製品図面を解釈または理解し、金型に必要な抜き勾配、公差、スライド機構等の設計を行い、２次元図面上において型設計を行っている。
【０００４】
また、ＮＣデータ作成工程１１１では、通常、各種工作機械（マシニングセンタ、放電加工機、ワイヤーカット、フライス盤、研削盤等）を用いて金型部品が加工／作成されるが、これらのマシンの多くはその動作が数値制御（ＮＣ：Numerical Control）され、ＮＣデータと呼ばれる動作命令群によって材料の加工を行っている。ここで、ＮＣデータとは、カッターの回転速度や送り速度等、マシンの動作を記述したプログラムである。
【０００５】
このＮＣデータ作成工程１１１においても、製品形状の各部分について適切な工具・切削条件（回転数や移動速度）を求め、材料を工具で削る経路(ＮＣパス)を作成するためには職人の技によるところが大きく、従来では、工具の選定や切削条件の決定のみならず経路の設定においても、治具との干渉、工具ホルダと金型部品の干渉等を考慮する必要があって手間のかかるものであった。また、熟練したＮＣマシン操作者の的確な判断により、別の工具が重複した経路を通るＮＣパス（無駄パス）を省いて機械加工時間を短縮し、加工済の箇所に再度切削が行われることによる加工品質の劣化を防ぐようにしていた。
【０００６】
特に、滑らかな製品形状、金型機構部分の円滑な動作を実現するために要求される精度は１μ程度である。これは製品のＣＡＤデータ自体が有する精度よりも格段に高い精度である。このような高精度の金型精度を実現するためには、熟練した技術者が時間をかけてＮＣパスデータ（以下、ＮＣデータと称する）を作成することが必須とされている。その結果として作業期間は長引くこととなり、携帯電話を例にすれば、通常６週間程度の全工程のうち、そのＮＣデータ作成のためだけに２〜３週間を要しているのが現状である。
【０００７】
また、ＮＣ加工工程１１２では、マシンに対して前工程のＮＣデータ作成工程１１１で作成したＮＣデータの入力を行う。このデータ入力は、ＲＳ−２３２Ｃケーブルやイーサネット（Ｒ）ケーブル、フロッピー（Ｒ）ディスク等を介して行われるが、通常は１回の加工において複数の加工データを使用するため、これら複数の加工データをマシンに誤りなく入力することが必要となる。データ入力ミスは即座に加工ミスにつながることから、通常は実際の加工に先立ち、空運転（ワークを取付けずにマシンを稼動すること）を行い、加工データが正確に入力されているか否かを判断するための目視確認が作業者によって行われる。
【０００８】
このように十分に注意して入力した加工データでも、実際の加工状況を正確に予測して作成されているわけではない。すなわち、実際には過大な切削抵抗による工具のたわみ等の事前に精確に予測することが困難な事象が発生し、その結果、加工することができない場合がある。そこで、工具の状態、マシンの状態、部品形状によって様々に変化する加工状況に応じて、確かな技能を備えた技術者がその都度、適切な調整を加えて修正しておくことが必要となる。このようにして、加工面の品質をもとに、送り速度、回転数、加工の音、マシンの微調整を行い、安定した加工条件を出すことができるようになると、ようやく自動運転をスタートすることができる。このため、実際の加工までにこの前処理工程が数日を要してしまう場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
前述したように、技術者の長年にわたる経験と勘を基にした微調整が適切に施こされることを前提にした従来の金型生産工程であるが、例えば、携帯電話の開発競争に見られるような製品形状の複雑化、開発サイクルの短期化により、従来のような長期の製作時間を要してしまう金型工程はもはや現実的なものではなくなってきている。かつては製品データの多くは、２．５次元と称される曲面を持たない多面体構造に関するデータを対象とするのが殆どであり、複雑なＮＣデータが要求されることは少なかった。しかしながら、製品の意匠面がユーザのニーズにあわせるために複雑化してきて、多くの自由曲面を含む製品形状を短納期で生産することが要求されるようになった。このため、ＮＣデータ作成工程１１１において要求されるＮＣデータは、従来の製品とは比較にならないほど多種多様であってそれぞれが複雑になっている。
【００１０】
この製品形状の複雑化は、技術者がＮＣデータを作成するにあたっての技術的困難さを招くだけではなく、ＮＣデータの大規模化、すなわち作成に要する時間の大幅な増加を意味している。したがって、技術者の減少傾向、及び製品形状の複雑化という問題点を抱えた状況において、職人と称されるような技術者が保有している技能に大きく依存してＮＣデータを作成するやり方は、もはや限界に達していることが明らかである。
【００１１】
そこで、近年では、金型生産工程に３次元ＣＡＤを導入して、ＣＡＤで作成した３次元データをできるだけ利用することによって作業を合理化する試みが行われるようになってきている。しかしながら、従来の３次元ＣＡＤによって幾何計算を行う場合、数学におけるユークリッド空間とデカルト座標系をコンピュータ内に想定し、さらにＣＡＤ図形を表わすための頂点やベクトルをコンピュータ内で表現するために浮動小数点データを使用していて、以下に示すような問題点を有していた。
【００１２】
（１）同一幾何要素の判定問題
従来のような浮動小数点データで座標値を表現する場合、平面と直線の交点を計算する際に、直線の長さが変ったり（直線を規定する始点または終点が異なること）、計算の順序が異なったりしてしまうと、求めた交点の座標値が何度計算しても常に完全一致するという保証がされないという問題がある。このことは、人間の感覚では同じ結果になるべきはずのものが、ＣＡＤの世界では異なる結果を生じることを意味している。そこで、この問題を解消するために誤差という考え方をＣＡＤに導入し、ある程度の微小な範囲に存在する２点であればその２点を同一視する処理が必要となる。具体的には例えば、２点間の距離が０．００１ｍｍ以下であれば同一点であると見なす処理を行うようにする。
【００１３】
（２）累積誤差の問題
前記（１）の同一幾何要素の判定において、２点間の距離が所定の微小範囲にあれば２点は同一点と見なすことを許容した場合、このような同一点の点列が複数存在したときに矛盾が発生してしまうことになる。例えば、所定の微小範囲に存在する点Ｐ１と点Ｐ２が同一であり、且つ点Ｐ２と点Ｐ３も同様に同一であるときでも、点Ｐ１と点Ｐ３との距離が前記所定の微小範囲外となって同一とは判定できなくなってしまうことがあり得る。この場合、点Ｐ１〜Ｐ３の位置を前記所定の微小範囲内で変化させ、点Ｐ１と点Ｐ３との距離が所定の微小範囲内に収まるようにして同一となるように対応することも考えられる。しかしながら、点Ｐ１〜Ｐ３が曲面上に存在するような場合には、曲面は自由に形状を変形することができない。このため、“曲面上の点である”と関係付けられている点Ｐ１〜Ｐ３は、所定の微小範囲内であってもその位置を自由に変更できず、前述したような矛盾を解消することができないという累積誤差の問題がある。
【００１４】
（３）計算順序の問題
浮動小数点データを扱うときの一般的な注意事項でもあるが、具体的には例えば、次のような問題点がある。変数Ａ、変数Ｂ、変数Ｃに対して、
（Ａ−Ｂ）＋  Ｃ      ………式（１）
（Ａ＋Ｃ）−  Ｂ      ………式（２）
の計算を行う場合、各変数が浮動小数点データ値のときは両式の計算結果が必ずしも一致しないことがある。具体的には例えば、有効桁数６桁として、変数Ａ〜変数Ｃに次のような値を代入してみる。
【００１５】
Ａ＝１０．００００
Ｂ＝９．９９９９９
Ｃ＝０．００１１１
【００１６】
前記式（１）の計算結果は、０．００００１＋０．００１１１＝０．００１１２となるが、前記式（２）の計算結果は、１０．００１１−９．９９９９９＝０．００１１１となり、２つの式に関して数学上の等号関係が成立する場合でも、コンピュータによる実際の計算結果は異なってしまう。これは、絶対値がほぼ同じ同符号の減算を行うと正規化によって有効桁数が小さくなってしまう桁落ち誤差や、絶対値が極端に相違する数値の加減算を行うと、小さい方の数値が無視されるという情報落ち誤差が起因しているからである。
実際には前記式（１）の計算結果が正確な値を示しているのだが、浮動小数点データの計算順序が適切に設定されていない場合には、処理された数値に対してケースバイケースで正しく対応する必要があるが、実際問題として現実には不可能である。
【００１７】
このように、コンピュータ内で浮動小数点データを対象にして計算処理しようとする場合、人間の理解として常識と判断されるような処理体系を構築するには、所定の誤差内で要素を同一と判断としたときの問題、及びコンピュータ内での有効桁数による桁落ち・情報落ち等の問題が発生してしまう。特に、曲面を主体とした形状を表現するソリッドモデラにおいてこれらの問題が顕著に表れ、具体的には例えば、ソリッドモデラの重要な機能である集合演算が実行エラーになるという不具合現象が発生してしまう。しかしながら、前記問題を解消するには、様々な事案の不具合をケースバイケースで対策しなければならないというのが現実であり、現在これらの問題を完全に解決した上で幾何計算処理を行っているＣＡＤシステムまたはＣＡＤ装置は開示されていない。
【００１８】
そこで、本発明は前述した問題点に鑑み、３次元ＣＡＤにおいて、本質的に同値なパラメータ値や計算順序、及びコンピュータ内での有効桁数による桁落ち等に影響されることなく、要素の幾何計算処理を行うことができる幾何計算処理システム及びその方法を提供することを目的としている。
【課題を解決するための手段】
【００１９】
本発明の幾何計算処理装置は、ＣＡＤアプリケーションを用いて対象物の幾何計算を行う幾何計算処理装置であって、前記対象物の形状を有限個の立方体セルで分割する手段と、前記立方体セルの１つを幾何計算処理の最小単位とみなしてセル空間を構成し、前記有限個の立方体セルの何れに前記対象物の幾何計算値が含まれるかを判断することによって前記セル空間上の幾何計算値を決定するセル幾何計算処理手段を有することを特徴としている。
【００２０】
また、前記幾何計算処理において、整数データのみの計算を対象とする整数データ計算処理手段と、有理数が生じる計算を対象とする有理数計算処理手段とをさらに有し、前記セル幾何計算処理手段は、前記整数データ計算処理手段または前記有理数計算処理手段で算出された値を基に、前記有限個の立方体セルの中から前記幾何計算値が含まれる特定の立方体セルを選択して前記幾何計算値を決定することを特徴としている。
【００２１】
また、前記セル幾何計算処理手段により決定される幾何計算値を基に、前記対象物の複数の幾何関係を処理するＣＡＤ機能処理手段をさらに有することを特徴としている。
【００２２】
また、前記対象物は金型設計により製造される製品であり、前記対象物の表面データを幾何計算の主な対象としていることを特徴としている。
【００２３】
また、前記立方体セルのサイズは、前記対象物の大きさ、及び６４ビット整数表現可能な演算処理装置との関係から規定されることを特徴としている。
【００２４】
本発明の幾何計算処理方法は、ＣＡＤアプリケーションを用いて対象物の幾何計算を行う幾何計算処理方法であって、前記対象物の形状を有限個の立方体セルで分割する手順と、前記立方体セルの１つを幾何計算処理の最小単位とみなしてセル空間を構成し、前記有限個の立法体セルの何れに前記対象物の幾何計算値が含まれるかを判断することによって前記セル空間上の幾何計算値を決定するセル幾何計算処理手順を有することを特徴としている。
【発明の効果】
【００２５】
本発明によれば、ＣＡＤアプリケーション上で対象物の形状を有限個の立方体セルで分割して、この立方体セルの１つを幾何計算処理の最小単位とみなしてセル空間を構成し、前記有限個の立法体セルの何れに前記対象物の幾何計算値が含まれるかを判断することによってセル空間上の幾何計算値を決定するようにしたので、浮動小数点に基づく幾何計算処理を排除することが可能となり、計算順序や誤差の累積問題等を考慮することなく、単一または複数の対象物に関する幾何計算を精度良く行うことができる。
これにより、対象物が複雑な曲面を有するような形状であっても、作成したＣＡＤデータに対して熟練技術者による大幅な修正をさらに施さなくとも、ＮＣデータの作成及び加工を行うことができるようになる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の好適な実施形態について図面を参照しながら詳細に説明する。
まず、本発明の基本的な概念となるセル空間、及びセル幾何計算について説明する。
セル空間とは、図３に示すように、微小な均一の立方体を敷き詰めたような構造をしているものである。セル空間には、縦、横、高さのそれぞれの方向に、２の２０乗個（約１００万個）以上の有限範囲内の個数の微小な立方体がびっしりと並んでいる。本実施の形態では、この微小な立方体の一辺の長さは１μｍ程度としている。
【００２７】
本実施の形態で、立方体の一辺の長さを１μｍと設定している理由は、金型部品の加工精度と、コンピュータ内で処理可能な有効桁数の範囲とが関係している。つまり、金型の製作時に加工精度を必要とする部分は、金型部品が摺合わさる部分であって、この部分の加工精度は面精度で表せば、通常１μｍ〜２μｍ程度である。一方、金型部品を加工するためのＮＣマシンは、運転時の振動や摩擦熱等からの影響を受けるので、ＮＣ加工精度には種々の要因から生じた誤差が含まれている。このため、現実的な加工精度の限界はおよそ１μｍである。したがって、加工精度の面から、セル空間における立方体の一辺の長さを１μｍと設定することとした。
【００２８】
さらに、一般に使用されるコンピュータ内で処理可能な有効桁数（６４ビット整数）との関係から、以下に示す理由があって１μｍと設定している。すなわち、ＣＡＤにおける幾何計算の基本は平面と直線の交点計算であり、これには掛算を３回実施することになる。そこで、掛算を３回実施して、６４ビット未満の桁数でオーバーフローしないようにするためには、その数値の桁数は２の２０乗以下で表現されている必要がある。一方、汎用的な金型のサイズは１ｍ立方以下であって、１ｍを２の２０乗で分割すると約１μｍになる。すなわち、１μｍサイズのセルを２の２０乗個つなげれば、約１ｍ（正確には、１．０４８５７６ｍ）のサイズになることから、セル空間における立方体の一辺の長さを１μｍと設定することとした。
【００２９】
なお、本実施の形態では、立方体の一辺の長さを１μｍ程度と設定したが、これに限定されることはなく、金型製品のサイズや計算精度等にあわせて可変に設定することも当然ながら可能である。また、本実施の形態のセルの考え方を２次元のＣＡＤ装置に適用するため、平面セルの一辺の長さを例えば１μｍとして同様に処理することも当然ながら可能である。
【００３０】
次に、図３に示すセル空間の中に、直線や平面などの幾何要素を図４のように定義する。ここで、１つの微小な立方体（以下、セルと称する）がセル空間における最小単位となるため、従来のユークリッド空間とは異なり、セル空間における直線や平面は厚みを持つものとして扱われる。つまり、図４に示すように、セル点は、１つのセルで表され、セル直線は、直線上のセル同士が上下左右の少なくとも１つのセルと面接続しながら連結して表わされる。また、２つの直線の交点は、図５に示すように、真の交点を含むセル点として定義される。同様に、２つの平面の交線は、真の交点を含むセル点が連続した直線として定義される。
【００３１】
セル空間とセル幾何計算の概念を用いて、従来のＣＡＤ装置で問題となっていた前述した３つの問題を解消することが可能であることを次に示す。
（１）同一性の判定処理について：
前述したように、幾何要素はセル空間の中にあり、そのセル空間は、縦、横、高さ方向それぞれに２の２０乗個以上の有限な領域を有しているため、幾何要素も有限のセル点の集合で構成されていることになる。このため、２つの幾何要素が同一であるかどうかは、幾何要素を構成するセル点の集合が同一であるかどうかで判定でき、従来のような要素が同一か否かを判定する際の浮動小数点誤差を考慮する必要がない。
【００３２】
（２）累積誤差について：
前記（１）に関連し、幾何要素を構成するセル点の集合が同一であって一致するか否かを判定するものであるため、従来のような浮動小数点誤差が発生してしまう問題が生じないので累積誤差について考慮する必要がない。
【００３３】
（３）計算順序について：
セル空間を２の２０乗の有限な範囲で表現することにより、コンピュータの整数計算で行うことができる。ここで、一例として、三角形と直線との交点について検証してみることにする。なお、三角形と直線との交点処理は、ＣＡＤ装置における基本的な幾何計算処理であり、この基本的な幾何計算処理を任意に組合せることによって、ＣＡＤのソリッドモデラで必要な機能を構築することができる。
【００３４】
（セル三角形とセル直線の交点計算）
ここでは、セル三角形とセル直線の交点計算を、コンピュータを用いて実現する方法について説明する。最初に、使用する幾何要素の定義とコンピュータによる実現方法について説明する。
【００３５】
セル空間内の一つのセル点を原点として、これを（０，０，０）という座標値で表し、これをセル原点ということにする。また、セル空間内の他のセルは、セル原点からの、縦、横、高さ方向の相対位置で表すことができ、この相対位置によってセル内のセル点の座標値を整数で与えることができる。これをセル座標値とよぶことにする。なお、セル空間のセル点すべてをコンピュータのメモリ内に記憶する必要はなく、本実施の形態では、実際に使用するもののみを記憶するようにしている。
【００３６】
（１）セル点の定義：
セル点は、セル空間における１つのセルであり、コンピュータ内にはセル座標値で記憶することができる。具体的なセル点の表現としては、例えば（Ｘ，Ｙ，Ｚ）であり、Ｘ，Ｙ，Ｚは、コンピュータ内での符号付整数データである。
【００３７】
（２）セル直線の定義：
セル直線は、２つのセル点の中心点（デカルト座標系で表される）を結ぶ有限直線を被覆するセル点の集合である。図６はセル直線を示し、セル直線は、両端点Ｐ１，Ｐ２のセル点のセル座標値で表わさる。具体的には、Ｐ１＝（Ｘ１，Ｙ１，Ｚ１）、Ｐ２＝（Ｘ２，Ｙ２，Ｚ２）であり、Ｘｉ，Ｙｉ，Ｚｉ（ｉ＝１，２）は符号付整数データである。
【００３８】
（３）セル三角形の定義：
セル三角形は、３つのセル点の中心点を結ぶ三角形上の点を被覆するセル点の集合である。図７に示すセル三角形は２次元表示されているが、実際は３次元的なセル点の集合である。セル三角形は、３頂点のセル点のセル座標値で表わされ、３つの頂点を表すセル点をＰ１、Ｐ２、Ｐ３とすれば、具体的にはＰ１＝（Ｘ１，Ｙ１，Ｚ１）、Ｐ２＝（Ｘ２，Ｙ２，Ｚ２）、Ｐ３＝（Ｘ３，Ｙ３，Ｚ３）であり、Ｘｉ，Ｙｉ，Ｚｉ（ｉ＝１，２，３）は符号付整数データである。
【００３９】
前述のセル点、セル直線、及びセル三角形についての定義に従って、セル三角形とセル直線の交点計算を行う。ここで、図８に示すように、セル三角形とセル直線の交点とは、セル三角形（Ｐ,Ｑ,Ｒ）のベースとなる三角形とセル直線（Ａ，Ｂ）のベースとなる直線との交点を含むセル点（Ｔ）のことを意味することになる。そして、セル三角形のセル座標値を、Ｐ＝（Ｐｘ、Ｐｙ，Ｐｚ）、Ｑ＝（Ｑｘ、Ｑｙ，Ｑｚ）、Ｒ＝（Ｒｘ、Ｒｙ，Ｒｚ）とすると、
【００４０】
【数１】
2005174250.tif 000003
と表される。
【００４１】
前記（式３）を４行目で展開すると以下の式になる。
【数２】
2005174250.tif 000004
【００４２】
前記（式４）に対して直線のパラメータ表現である、Ｘ＝（Ｂｘ−Ａｘ）ｔ＋Ａｘ、Ｙ＝（Ｂｙ−Ａｙ）ｔ＋Ａｙ、Ｚ＝（Ｂｚ−Ａｚ）ｔ＋Ａｚを代入してｔの値を求め、求めたｔ値を前記（式４）に代入すれば、セル三角形（Ｐ,Ｑ,Ｒ）とセル直線（Ａ，Ｂ）の交点を含むセル点（Ｔ）を求めることができる。この場合、変数ｔの値をそのまま厳密に計算する必要はなく、変数ｔ値を分数形式で表現したときの分子の値と分母の値とが厳密に計算できれば交点を含むセル点を判別することができる。
【００４３】
すなわち、Ｘ＝（Ｂｘ−Ａｘ）ｔ＋Ａｘの式において、ｔ＝ｔｎ／ｔｄとおけば、
Ｘ＝（Ｂｘ−Ａｘ）ｔｎ／ｔｄ＋Ａｘ、（但し（Ｂｘ−Ａｘ）,ｔｎ,ｔｄ,Ａｘは整数）
となる。さらに、（Ｂｘ−Ａｘ）ｔｎ／ｔｄの項は、Ｔｉ＋Ｔｎ／ｔｄ（但し、｜Ｔｎ｜＜ｔｄであり、Ｔｉ、Ｔｎは整数）とすることができる。
したがって、結局、Ｘ＝（Ｔｉ＋Ａｘ）＋Ｔｎ／ｔｄが導かれる。これは、セルのＸ座標値が、点ＡｘからＴｉ離れた位置にさらに１より小さな量（Ｔｎ／ｔｄ）を加算した値であることを表しており、言い換えれば、（Ｔｉ＋Ａｘ）を基準に±（Ｔｎ／ｔｄ）の範囲内にＸが存在しているということである。
【００４４】
一方、前述したように、本実施形態では座標を、一辺の長さが１（単位：μｍ）であるセル立方体を基本にしたセル空間で表現することを特徴としている。このため、任意のＸ座標値は、隣接するセルとの関係を考慮すると、セルのＸ座標（Ｔｉ＋Ａｘ）を基準に±０．５（単位：μｍ）の範囲内に存在することになる。
したがって、セル三角形（Ｐ,Ｑ,Ｒ）とセル直線（Ａ，Ｂ）の交点を含むセル点（Ｔ）を求めるには、（Ｔｎ／ｔｄ）の値と±０．５とを比較することによって、任意のＸ座標値がどのセルに存在するかを判定することができる。
【００４５】
具体的には例えば、
（Ｔｎ／ｔｄ）＜−０．５のとき、          （Ｔｉ＋Ａｘ−１）番目のセル、
−０．５≦（Ｔｎ／ｔｄ）＜０．５のとき、  （Ｔｉ＋Ａｘ）番目のセル、
０．５≦（Ｔｎ／ｔｄ）のとき、            （Ｔｉ＋Ａｘ＋１）番目のセルと判定される。同様にして、Ｙ座標値及びＺ座標値が何れのセル番号に存在しているのかを決定することができる。
また、変数ｔ値の分子と分母とは、縦、横、高さ方向、即ちＸ，Ｙ，Ｚ方向の３成分の積和で表わすことができるので、この積を厳密に計算できればよいことになる。
【００４６】
なお、交点の計算では、頂点が整合されているセル点を求めることになるので常に有限桁で表現可能であり、例えば、セル平面とセル三角形の交点計算は掛け算を３回行うことで容易に実現可能である。
【００４７】
前述したように、一般的に用いられるコンピュータで使用できる有効桁数が最も大きい数値は、６４ビット整数であるが、１０メートルの大きさを１ミクロンの精度で計算処理すると、従来の浮動小数点データで表した場合では３回の掛け算でオーバーフローしてしまう。これに対して、本実施の形態のセル幾何計算によれば、セル幾何計算上で扱う数値が２の２０乗の範囲であれば厳密な計算処理を行うことができることになる。
【００４８】
このようにして、セル空間とセル空間上の幾何学（セル幾何計算）を導入することにより、同一幾何要素の判定問題、累積誤差の問題、計算順序の問題を解決することができるとともに、セル三角形とセル直線との交点としてセル点を求める計算が、実用的なコンピュータで実現でき、これにより金型生産工程における３次元データを用いた一気通貫作業を実現できるようになる。
【００４９】
なお、セル三角形のトリミング処理では、前記の計算で求めたセル点がセル三角形の内部にあるか、境界にあるか、または外部にあるかを判定する処理が必要となる。この判定処理は、セル三角形を描画して求めることができるため、ここでも従来問題となっていた浮動小数点が原因で生じる計算誤差を排除できる。
【００５０】
＜幾何計算処理システムの全体構成＞
ここでは、前述したセル空間、及びセル幾何計算に基づいて、３次元のソリッドモデラにおける幾何計算を行う幾何計算処理装置１００（以下、ＣＡＤ装置１００と略す）について説明する。図２は、ＣＡＤ装置１００の構成を示したものである。
ＣＡＤ装置１００は、上記図２に示すように、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、キーボード（ＫＢ）２０９のキーボードコントローラ（ＫＢＣ）２０５と、表示部としてのＣＲＴディスプレイ（ＣＲＴ）２１０のＣＲＴコントローラ（ＣＲＴＣ）２０６と、ハードディスク（ＨＤ）２１１及びフレキシブルディスク（ＦＤ）２１２のディスクコントローラ（ＤＫＣ）２０７と、ネットワーク２１３との接続のためのネットワークインターフェースコントローラ（ＮＩＣ）２０８とが、システムバス２０４を介して互いに通信可能に接続された構成としている。
【００５１】
ＣＰＵ２０１は、ＲＯＭ２０２或いはＨＤ２１１に記憶されたソフトウェア、或いはＦＤ２１２より供給されるソフトウェアを実行することで、システムバス２０４に接続された各構成部を総括的に制御する。
すなわち、ＣＰＵ２０１は、所定の処理シーケンスに従った処理プログラムを、ＲＯＭ２０２、或いはＨＤ２１１、或いはＦＤ２１２から読み出して実行することで、本実施の形態での動作を実現するための制御を行う。
【００５２】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ或いはワークエリア等として機能する。
ＫＢＣ２０５は、ＫＢ２０９や図示していないポインティングデバイス等からの指示入力を制御する。
ＣＲＴＣ２０６は、ＣＲＴ２１０の表示を制御する。
ＤＫＣ２０７は、ブートプログラム、種々のアプリケーション、編集ファイル、ユーザファイル、ネットワーク管理プログラム、及び本実施の形態における所定の処理プログラム等を記憶するＨＤ２１１及びＦＤ２１２とのアクセスを制御する。
ＮＩＣ２０８は、ネットワーク２１３上の装置或いはシステムと双方向にデータをやりとりする。
【００５３】
なお、本実施の形態のＣＡＤ装置１００は、通信ネットワークを介して複数のＣＡＤ端末が相互に必要なデータを送受信してＣＡＤシステムを構築するようにしてもよい。
【００５４】
図１は、ＣＡＤ装置１００における処理モジュールの概略構成を示す図である。図１に示すように、処理モジュールの基礎部分には、整数データ計算処理モジュール１０を設け、その上に、有理数計算処理モジュール１１、セル幾何計算処理モジュール１２、及びＣＡＤ機能の処理モジュール１３が設けられている。
なお、図１に示す処理を行う際には、製品形状が有限個のセルで分割されていることを前提しており、前述したように形状が複数のセルで覆われている。
【００５５】
整数データ計算処理モジュール１０は、コンピュータハードウェアに直接依存する計算を行うモジュールである。従来のＣＡＤ装置とは異なり、本実施の形態のＣＡＤ装置１００は、コンピュータハードウェアに直接依存する計算は整数データに関する計算のみである。このため、コンピュータでの数値計算の状態を明確に把握することが可能であり、有効桁数内で正確に値の把握が可能となる。
【００５６】
有理数計算処理モジュール１１は、有理数計算を行うモジュールである。各セル点は整数で表現されているが、セル幾何計算過程で整数間の除算処理が生じた場合にはその除算結果は有理数になることがある。本モジュールはそのためのものであり、セル幾何計算における正確な幾何要素間の関係を、ＣＡＤ装置１００内で一時的に有理数で求めておく。  
【００５７】
セル幾何計算処理モジュール１２は、前述した有理数計算処理モジュール１１によって求められた有理数表現のセル位置関係を、再度、セル幾何要素に投影されるようにするためセル空間上の整数表現される位置に置き換えるモジュールである。
【００５８】
有理数で表現されたセル位置関係を整数で表現する際の処理内容について具体的に説明する。なお、説明を簡略化するため、２次元のセル空間を対象にして説明する。
各セル点は、整数の格子点に対して、−０．５≦座標値＜０．５の範囲の領域に存在しするものとして表される。図１４に示すように、整数の格子点を（Ａｘ，Ａｙ）とすると、頂点Ｐ１（Ａｘ−０．５,Ａｙ−０．５）と頂点Ｐ２（Ａｘ＋０．５,Ａｙ＋０．５）とで囲まれた矩形領域が、整数の格子点（Ａｘ，Ａｙ）が含まれるセルの範囲となる。ただし、矩形上の実線部分はセルに含まれ、点線部分はセルに含まれないものとする。
【００５９】
この場合、有理数の座標値をセル座標値（整数の座標値）に置き換えるには、当該矩形内に有理数が存在するかどうかで判断する。具体的には前述したように、有理数を分数で置き換えてＴｉ＋Ｔｎ／ｔｄ（但し、｜Ｔｎ｜＜ｔｄ）の形に変形にし、Ｔｎ／ｔｄが±０．５より大きいまたは小さいかを判断することによって、有理数が含まれるセル番号を決定することが可能となる。
【００６０】
このように、幾何要素をセル座標系に投影するために、有理数処理が生じた場合にはすべて整数に置き換えてから、最終的な幾何要素間の位置関係を求めるようにしている。なお、この処理においても、従来の計算誤差を考慮した処理を行う必要がない。
【００６１】
ＣＡＤ機能の処理モジュール１３は、意味のある形状を構成する複数の幾何要素間の関係を処理するモジュールである。個々の幾何要素間の関係については、セル幾何計算処理モジュール１２を使って計算を実施し、その結果をもとに複数要素間の関係を処理していくようにしている。このとき、この処理においても累積誤差の問題のような複数の幾何要素に関係する誤差を考慮しなくてもよいので、従来のＣＡＤ機能の処理モジュールと比較すると簡素化した構成で実現できる。
【００６２】
なお、図１に示す本実施の形態における処理モジュールの構成の理解を容易にするため、従来のＣＡＤ処理モジュール構成について簡単に説明しておく。図１３は、従来方式のＣＡＤ処理モジュールの概略構成を示したものである。コンピュータのハードウェアでの整数データ計算処理モジュール１３００、及び浮動小数点データ計算処理モジュール１３０１は、コンピュータのハードウェアで行う数値計算の部分である。ここでの計算はハードウェアの設計方法に依存するが、有効桁数として６４ビット整数を使った場合、１０進数で１９桁となる一方、倍精度浮動小数点データでは１０進数で１７桁である。
【００６３】
前記整数データ計算処理モジュール１３００での整数計算は、有効桁数を意識してプログラムを開発できるので、計算過程で異常が発生することはない。また、浮動小数点データ計算処理モジュール１３０１での浮動小数点計算では、有効桁数がオーバーフローした場合、下の桁から切り捨てられていくことになる。この場合、プログラムは浮動小数点データの桁落ちを通常は意識せずに処理を進行するので、幾何計算に及ぼす影響について、ユーザは厳密に把握することができない。
【００６４】
また、幾何計算処理モジュール１３０２は、直線、円、または平面などの幾何要素間の関係（例えば、平面と直線の交点計算など）を行うモジュールである。ここでの数値計算は、コンピュータのハードウェアを直接起動させて計算結果を得ている。また、このモジュールでは、２つの要素間の関係を判断するために前述した誤差の概念を導入している。ただし、この段階では複数要素間の関係を判断することができないので、より上位のモジュールで処理するようにしている。
【００６５】
ＣＡＤ機能の処理モジュール１３０３は、本実施の形態におけるＣＡＤ装置１００のＣＡＤ機能の処理モジュールと同等な構成または機能である。ただし、本モジュールにより、複数の幾何要素に関係する問題を解決している。
【００６６】
次に、従来の処理と、セル空間およびセル幾何計算を使用した場合の処理との比較について説明する。図１１（Ａ）〜図１１（Ｃ）は、従来の３次元ＣＡＤにより物体の形状を作成し画面に描画した一例である。図１１（Ａ）及び（Ｂ）は、それぞれ形状のシェーディング絵とワイヤーフレーム絵、図１１（Ｃ）は、図１１（Ａ）及び（Ｂ）の丸で囲った部分を拡大表示したものである。図１１（Ｃ）に示す拡大図を見ると、従来の３次元ＣＡＤによる物体の形状曲面の接続部に隙間が存在しているのがわかる。巨視的にはこの接続部における２枚の曲面は、接続部（境界線）ではり合わさって１枚の連続した曲面であるという認識がされるものである。このため、コンピュータ内部における実際の形状処理では、連続曲面となるように境界線上の任意の点は所定の許容誤差の範囲内にあって一致していると判断されている。一方で、例えばこの接続部の隙間を通過する直線があるとすると、その直線は曲面と交差することなく当該曲面を通過することになり、幾何計算としては矛盾が発生することになる。そこで、従来の３次元ＣＡＤではこの矛盾を補うためのさまざまな工夫が施されているのである。
【００６７】
これに対して、図９は、本実施の形態のＣＡＤ装置１００により、物体形状を表現した図であり、図９（Ａ）〜（Ｃ）は、それぞれ図１１（Ａ）〜（Ｃ）に対応するＣＡＤ形状データを表示している。本実施の形態のＣＡＤ装置１００は、境界線の内部が形状の内部であるという認識を行うようにしている。したがって、図９に示すように、図１１（Ｃ）に示す形状曲面の接続部に存在していた隙間がなく、微視的にみても２つの曲面が接続されているのがわかる。このため、ＣＡＤ装置１００では、接続する要素間の隙間を考慮する必要がなく、前述した許容誤差の概念を導入する必要が無くなる。したがって、形状曲面の接続部を通過する直線がある場合には、接続部を挟む曲面について直線が通過しているかどうかをチェックすれば良いことになるので、特別なケースを想定することなく処理できる。
【００６８】
なお、ＣＡＤ装置１００において前記接続部の境界線をさらに拡大していくと、図１０のように、境界線を包含するセルの集合が表示されるが、前述したように、境界線の内部を形状の内部という認識を行い、必要に応じて境界線の幾何データからそれを包含するセルに置き換えて幾何計算を行うようにしている。
【００６９】
以上説明したように、本実施の形態のＣＡＤ装置１００によれば、市場で求められている複雑な３次元曲面を有する製品についても、金型工程における型設計工程において３次元ＣＡＤを用いて幾何計算上矛盾無く設計することが可能となり、金型製造を精密に行うことができる。また、顧客より製品データを入手して本実施の形態のＣＡＤ装置１００で型設計を行うような場合には、製品モデルデータに関する国際標準規格であるＳＴＥＰに準拠した共通インターフェースを通じて、セル理論に基づくデータ構造の形式に変換されるようにしてもよい。そして、パーティング設計（型割機能）や、公差の自動設定、スライド機構の自動付加など、金型設計で特有の機能を支援機能としてＣＡＤ装置１００に組み込むことにより、例えば、これまで金型設計に経験の無い非熟練者でも、容易に型設計を行うことができるようになる。
【００７０】
また、ＮＣデータ作成工程でＮＣデータの作成が行われる際、従来の３次元ＣＡＤにおいて作成されたモデルの場合、パラメトリック曲面をトリムした曲面により構成されており、指定誤差範囲内の多面体近似により処理されていることから、近似による誤差とこの誤差から生じる要素接合部における隙間が不可避となっていた。これが本実施の形態のＣＡＤ装置１００によれば、型設計情報に基づいて典型的な工具・切削条件（回転数や移動速度）や、材料を工具で削る経路(ＮＣパス)をあらかじめパッケージ（バッチ）として用意しておくことで、非熟練者でも適切な加工条件のバッチ選ぶことにより、容易に熟練技術者と同等の加工を行うことができる。これにより、例えば、ドリルの突っ込みによる工具破損や、高価なマシニングセンタの破損等を防止することができる。
【００７１】
本実施の形態のＣＡＤ装置１００によれば、型設計がセル理論に基づいて行われているため、従来のＣＡＤに特有の「モデルの隙間」が存在しない。このため、非熟練者によりＮＣデータ作成がされている場合であっても、マシニングセンタでの「モデルの隙間」を考慮した熟練者の微調整を行わなくても、十分に加工可能な程度の品質を確保できるＮＣ加工を実施することができる。
【００７２】
また、ＮＣ加工工程において、前工程において作成されたＮＣデータがマシニングセンタに一括して転送され製品の加工を行う際に、セル理論に基づくデータ構造と、パッケージ化された加工条件とによりＮＣデータの品質が保証されていることから、非熟練者でも即座に自動で加工を行うことができる。
【００７３】
このように、本実施の形態のＣＡＤ装置１００を用いることにより、設計工程の３次元化のトレンドをいち早く掴み、短納期化及び職人レス化を実現することができるようになる。
【００７４】
さらに、本実施の形態のＣＡＤ装置１００によるソリッドモデルの表現方法は、物体を粒子の集まりとみることにより実物を近似する表現方法を採用しているのではなく、物体表面の面の向き（表と裏）をあわせることにより物体表面の裏側に物体があるものと想定して、中身の詰まった物体を表している。一般的には、ソリッドモデルを粒子の集まりとして表現する方が、物体そのものの表現には都合が良いと考えられるが、データ量や計算量が非常に膨大になるために計算機を束ねたようなクラスター型のコンピュータ資源が必要となってしまう。これに対して、本実施の形態のＣＡＤ装置１００におけるセルを用いた表現方法では、６４ビット整数値を扱えるレベルのコンピュータ１台の資源で同等の処理を賄うことができるのでコスト高にならず、ＣＡＤ装置を現実的に構築するのに優れている。
【００７５】
なお、金型の設計や製造分野では、物体の中身を詰めたデータ構造までは必要としていない。このため、ＣＡＤ装置１００が処理する幾何計算の対象は、解析分野にかぎらず、特に、扱う物体の材質が均一で表面データのみを扱うことで殆どの処理が実現できる金型の製造工程に用いることが有効である。
また、前述したように、その処理方式は、物体を構成する要素をデータベースとして登録しておいてデータ検索や、データ生成、削除を行う従来の手法とは異なり、幾何計算をセル幾何方式に変換して、数式を整数値で計算する方法に置き換えたものである。
【００７６】
近年、ＣＡＭで扱われるデータ処理についても自動化計算の方向にあるので、計算の安定性（同一幾何要素の判定問題、累積誤差の問題、計算順序の問題等）が重要であるが、ＣＡＤ装置１００は、これらの問題が発生する起因となった浮動小数点データを使用せず、セル空間とセル幾何計算手法を適用することにより、幾何計算処理をすべて、整数値と整数計算で置き換えているので、計算の安定性を特段の検討を行わなくとも解決することができる。
【００７７】
なお、前述した実施形態では、微小なセル立方体によってセル空間を構成するように説明したが、必ずしも立方体である必要はなく、縦・横・高さ方向の長さが異なる長方体、円形や楕円の球体、さらには、所定の大きさを有した任意の三次元形状によりセル空間を構成するようにしても、本発明における目的及び効果が同様に達成されることは言うまでもない。
【００７８】
また、本発明の目的は、本実施の形態のＣＡＤ装置１００の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読みだして実行することによっても、達成されることは言うまでもない。
【００７９】
この場合、記憶媒体から読み出されたプログラムコード自体が本実施の形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体及び当該プログラムコードは本発明を構成することとなる。プログラムコードを供給するための記憶媒体としては、ＲＯＭ、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード等を用いることができる。
【００８０】
また、コンピュータが読みだしたプログラムコードを実行することにより、上記本実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ等が実際の処理の一部又は全部を行い、その処理によって本実施の形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００８１】
【図１】本実施の形態のＣＡＤ装置における処理モジュールの概略構成を示す図である。
【図２】セル空間、及びセル幾何計算に基づいて、本実施の形態のＣＡＤ装置の構成を示した図である。
【図３】セル空間を表した図である。
【図４】セル空間上の点、直線、及び平面を表した図である。
【図５】セル空間における２直線の交点（セル点）を表した図である。
【図６】セル空間における直線（セル直線）を表した図である。
【図７】セル空間における三角形（セル三角形）を表した図である。
【図８】セル点、セル直線、及びセル三角形についての定義に従ったときの、セル三角形とセル直線の交点を説明するための図である。
【図９（Ａ）】本実施の形態のＣＡＤ装置１００により、形状の境界線のセルを表現した図である。
【図９（Ｂ）】本実施の形態のＣＡＤ装置１００により、形状の境界線のセルを表現した図である。
【図９（Ｃ）】本実施の形態のＣＡＤ装置１００により、形状の境界線のセルを表現した図である。
【図１０】形状の接合部の境界線を包含するセルの集合を表示した図である。
【図１１（Ａ）】従来の３次元ＣＡＤにより物体の形状を作成し画面に描画した図である。
【図１１（Ｂ）】従来の３次元ＣＡＤにより物体の形状を作成し画面に描画した図である。
【図１１（Ｃ）】従来の３次元ＣＡＤにより物体の形状を作成し画面に描画した図である。
【図１２】従来の金型生産工程の手順を示す図である。
【図１３】従来方式のＣＡＤ処理モジュールの概略構成を示した図である。
【図１４】整数の格子点に関するセル点の存在範囲を説明するための図である。
【符号の説明】
【００８２】
１０    コンピュータハードウェアでの整数データ計算処理モジュール
１１    有理数計算処理モジュール
１２    セル幾何計算処理モジュール
１３    ＣＡＤ機能の処理モジュール
１００    幾何計算処理装置（ＣＡＤ装置）
２０１    ＣＰＵ
２０２    ＲＯＭ
２０３    ＲＡＭ
２０４    システムバス
２０５    キーボードコントローラ（ＫＢＣ）
２０６    ＣＲＴコントローラ（ＣＲＴＣ）
２０７    ディスクコントローラ（ＤＫＣ）
２０８    ネットワークインターフェースコントローラ（ＮＩＣ）
２０９    キーボード（ＫＢ）
２１０    ＣＲＴディスプレイ（ＣＲＴ）
２１１    ハードディスク（ＨＤ）
２１２    フレキシブルディスク（ＦＤ）
２１３    ネットワーク
【図１】
2005174250.tif 000005
【図２】
2005174250.tif 000006
【図３】
2005174250.tif 000007
【図４】
2005174250.tif 000008
【図５】
2005174250.tif 000009
【図６】
2005174250.tif 000010
【図７】
2005174250.tif 000011
【図８】
2005174250.tif 000012
【図９（Ａ）】
2005174250.tif 000013
【図９（Ｂ）】
2005174250.tif 000014
【図９（Ｃ）】
2005174250.tif 000015
【図１０】
2005174250.tif 000016
【図１１（Ａ）】
2005174250.tif 000017
【図１１（Ｂ）】
2005174250.tif 000018
【図１１（Ｃ）】
2005174250.tif 000019
【図１２】
2005174250.tif 000020
【図１３】
2005174250.tif 000021
【図１４】
2005174250.tif 000022