(57)【特許請求の範囲】
【請求項１】
ＣＡＤデータに基づいて動作シミュレーションする動作シミュレーションシステムに適用される動作シミュレーション用データの圧縮方法であって、
面分割数を指定する段階と、
異なるオブジェクト毎にＣＡＤデータを取り出す段階と、
取り出したＣＡＤデータに基づいて予め定められた精度を確保するために必要な面分割数を算出する段階と、
指定した面分割数と算出された面分割数とを比較して、取り出したＣＡＤデータを少ない面分割数の方で面分割する段階と、
を有することを特徴とする動作シミュレーション用データの圧縮方法。
【請求項２】
ＣＡＤデータに基づいて動作シミュレーションする動作シミュレーションシステムに適用される動作シミュレーション用データの圧縮方法であって、
最大許容誤差を指定する段階と、
異なるオブジェクト毎にＣＡＤデータを取り出す段階と、
取り出したＣＡＤデータに基づいて予め定められた面分割数を確保するために必要な許容誤差を算出する段階と、
指定した最大許容誤差と算出された許容誤差とを比較して、取り出したＣＡＤデータを小さい許容誤差の方で面分割する段階と、
を有することを特徴とする動作シミュレーション用データの圧縮方法。
【請求項３】
請求項１に記載した方法を実行する面分割優先モードまたは請求項２に記載した方法を実行する精度優先モードのいずれかを指定する段階と、
面分割優先モードを指定した場合には、請求項１に記載した方法を実行して動作シミュレーション用データを生成し、精度優先モードを指定した場合には、請求項２に記載した方法を実行して動作シミュレーション用データを生成する段階と、
を有することを特徴とする動作シミュレーション用データの圧縮方法。
【請求項４】
前記面分割優先モードまたは前記精度優先モードは、オブジェクト毎に指定できるようにしたことを特徴とする請求項３に記載の動作シミュレーション用データの圧縮方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、要求される精度または面分割数に基づいて、精度を優先するか面分割数を優先するかを各オブジェクトごとに選択し、最適な動作シミュレーション用データが得られるようにした動作シミュレーション用データの圧縮方法に関する。
【０００２】
【従来の技術】
現在では、生産設備を設計するに当たり、その設計を効率的に行なえるようにするため、また、その設計の品質を向上させるため、設備を構成する要素（オブジェクト）の形状の定義や製図をコンピュータで行なう３次元ＣＡＤシステムを用いている。
【０００３】
さらに、生産設備を構成するロボットの動作範囲やその動作時間の検討、そのロボットと他の設備との干渉チェックなどを上記３次元ＣＡＤシステムのＣＡＤデータを用いてシミュレーショする動作シミュレーションシステムも用いられている。
【０００４】
これらのシステムでは、３次元ＣＡＤデータを元に、ポリゴンデータ（表示モデル）と称される面分割データを作成する必要がある。
【０００５】
面分割の方法によっては、表示の精度に影響を与えるとともに、面分割データの数、すなわち表示データ量にも影響を及ぼす。
【０００６】
特に、画面上で３次元の要素が動作する様子を表示する動作シミュレーションシステムでは、表示速度がそのシステムの善し悪しを決定する重要な要素となるため、面分割の方法は、表示データ量を左右するという意味で極めて重要である。
【０００７】
従来から用いられている面分割の方法には、図５（Ａ），（Ｂ）に示すように、曲面の２方向（ｕｖ方向）の分割数を指定する方法（ｕｖ法）と、与えられた曲面とポリゴンデータとの許容誤差から分割数を自動的に決定する方法（トレランス法）とがある。
【０００８】
【発明が解決しようとする課題】
ところが、従来から用いられているｕｖ法では、全ての曲面で指定された同一分割数になるので、データサイズとしては小さくなるが、精度上不十分なことが多くなり、精度が要求される複雑な形状の要素に対してこの方法を用いることはできない。
【０００９】
また、トレランス法では、指定された許容誤差に基づいて面分割が行なわれるので、曲面によって分割数が異なり、十分な精度が得られるが、データサイズが大きくなる。したがって、画面上で３次元の要素が動作する様子を表示する動作シミュレーションシステムでは、表示速度が遅くなることがあるので、速い表示速度が要求されている場合には、この方法を用いることはできない。
【００１０】
なお、従来の動作シミュレーションシステムでは、表示対象となる要素（オブジェクト）の３次元形状データ群の全てに対していずれかの方法を択一的に適用することしかできないので、個々のオブジェクト毎に最適な方法を選択することはできない。
【００１１】
本発明は、このような従来の問題点に鑑みてなされたものであり、要求される精度を維持しつつも、データサイズを最小限にし、最適な動作シミュレーション用データが得られるようにした動作シミュレーション用データの圧縮方法の提供を目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するための本発明は、各請求項ごとに次のように構成される。
【００１３】
請求項１に記載の発明は、ＣＡＤデータに基づいて動作シミュレーションする動作シミュレーションシステムに適用される動作シミュレーション用データの圧縮方法であって、面分割数を指定する段階と、異なるオブジェクト毎にＣＡＤデータを取り出す段階と、取り出したＣＡＤデータに基づいて予め定められた精度を確保するために必要な面分割数を算出する段階と、指定した面分割数と算出された面分割数とを比較して、取り出したＣＡＤデータを少ない面分割数の方で面分割する段階と、を有することを特徴とする動作シミュレーション用データの圧縮方法である。
【００１４】
請求項２に記載の発明は、ＣＡＤデータに基づいて動作シミュレーションする動作シミュレーションシステムに適用される動作シミュレーション用データの圧縮方法であって、最大許容誤差を指定する段階と、異なるオブジェクト毎にＣＡＤデータを取り出す段階と、取り出したＣＡＤデータに基づいて予め定められた面分割数を確保するために必要な許容誤差を算出する段階と、指定した最大許容誤差と算出された許容誤差とを比較して、取り出したＣＡＤデータを小さい許容誤差の方で面分割する段階と、を有することを特徴とする動作シミュレーション用データの圧縮方法である。
【００１５】
請求項３に記載の発明は、請求項１に記載した方法を実行する面分割優先モードまたは請求項２に記載した方法を実行する精度優先モードのいずれかを指定する段階と、面分割優先モードを指定した場合には、請求項１に記載した方法を実行して動作シミュレーション用データを生成し、精度優先モードを指定した場合には、請求項２に記載した方法を実行して動作シミュレーション用データを生成する段階と、を有することを特徴とする動作シミュレーション用データの圧縮方法である。
【００１６】
請求項４に記載の発明は、請求項３に記載の動作シミュレーション用データの圧縮方法であって、前記面分割優先モードまたは前記精度優先モードは、オブジェクト毎に指定できるようにしたことを特徴とする。
【００１７】
【発明の効果】
以上のように構成された本発明は、次のような効果を奏する。
【００１８】
請求項１に記載の発明によれば、面分割数の少ない方を優先して面分割するようにしたので、表示速度を優先しつつもより精度の良い動作シミュレーションが可能になる。
【００１９】
請求項２に記載の発明によれば、許容誤差の小さい方を優先して面分割するようにしたので、精度を優先しつつもより表示速度の速い動作シミュレーションが可能になる。
【００２０】
請求項３または請求項４に記載の発明によれば、面分割優先モードと精度優先モードを選択できるようにしたので、ユーザーのニーズに対応したモードでの動作シミュレーションが可能となる。
【００２１】
【発明の実施の形態】
次に、本発明の動作シミュレーション用データの圧縮方法について図面を参照しながら詳細に説明する。
【００２２】
図１は、本発明にかかる動作シミュレーション用データの圧縮方法を実施する動作シミュレーションシステムの概略構成を示すブロック図である。
【００２３】
図に示すキーボード１０は、面分割数または最大許容誤差を入力したり、面分割優先モードと精度優先モードの選択をしたり、これらのモードを全てのオブジェクトに対して適用するのか、オブジェクト毎に適用するのかするを選択する際に用いられるものである。
【００２４】
表示装置２０は、生成された動作シミュレーションデータに基づいて作成された画像を表示する装置であり、ＣＲＴや液晶ディスプレイが該当する。
【００２５】
ＣＡＤデータファイル３０は、ＣＡＤシステムで作成されたＣＡＤデータを記憶しているファイルであり、たとえば、図４に示すようなロボット３５，３６の設置位置に関するデータ、各構成部品の形状に関するデータ、車体３７の形状に関するデータなどを記憶している。また、圧縮後の動作シミュレーション用データも記憶する。
【００２６】
オブジェクトデータファイル４０は、ＣＡＤデータファイル３０に記憶されているＣＡＤデータの内、表示対象となる要素がどれであるかを示すデータを記憶している。たとえば、図４に示したロボット３６の全体を１つの要素として扱っている場合には、オブジェクトデータファイル４０には、ロボット３６が１つの要素（オブジェクト）であるということが記憶されている。また、ロボット３６のそれぞれのアーム、手首等を１つの要素として扱っている場合には、オブジェクトデータファイル４０には、ロボット３６のそれぞれのアームが１つの要素（オブジェクト）であり、手首が１つの要素（オブジェクト）であり、これらの集合がロボット３６の３次元形状データ群（オブジェクト群）であることが記憶されている。
【００２７】
ＣＰＵ５０は、キーボード１０からの指示に基づいて、ＣＡＤデータファイル３０とオブジェクトデータファイル４０から必要なデータを取り出し、図２及び図３に示したような処理を行なって、その結果を表示装置２０に表示させるものであり、本発明の動作シミュレーション用データの圧縮方法を実行するものである。
【００２８】
次に、ＣＰＵ５０によって実行される本発明の動作シミュレーション用データの圧縮方法を、図２及び図３のフローチャートに基づいて詳細に説明する。
【００２９】
図２に示すフローチャートは、面分割数を優先してデータの圧縮を行なう面分割数優先モードの処理を示すものである。なお、このモードは操作者によるキーボード１０の操作によって選択される。また、全てのオブジェクトに対してこのモードを適用するのか、オブジェクト毎にこのモードを適用するのかの選択も行なわれるが、このフローチャートでは全てのオブジェクトに対してこのモードを適用する場合について述べる。
【００３０】
まず、操作者は、キーボード１０を用いて面分割数ｎを入力する。たとえば、２次元平面の座標系をｕ，ｖとした場合、単位面積当たりｕ×ｖ＝ｎ個の面分割数としたければ、キーボード１０からｕとｖを入力する（Ｓ１）。
【００３１】
次に、ＣＰＵ５０は、オブジェクトデータファイル４０に記憶されている表示対象にするオブジェクト群から、一つのオブジェクトＯｉを取り出し（Ｓ２）、このオブジェクトＯｉに対して［ｔｏｌ２＝Ｆ２２（Ｏｉ，ｕ，ｖ）］の式を適用して、オブジェクトＯｉに対してｕｖ法により求めたトレランスｔｏｌ２を求める。つまり、指定した面分割数ｎとした場合に、オブジェクトＯｉに対してどの程度の誤差が発生するのかを求める（Ｓ３）。
【００３２】
さらに、同一のオブジェクトＯｉに対して、［ｎ２＝Ｆ１１（Ｏｉ，ｔｏｌ２）］の式を適用して、オブジェクトＯｉに対してトレランス法での面分割数ｎ２を求める。つまり、予め定められている精度（キーボード１０から入力されてＣＰＵ５０に記憶されている）を確保するために必要な面分割数を算出する（Ｓ４）。
【００３３】
次に、指定した面分割数ｎと算出された面分割数ｎ２を比較し、ｎ≧ｎ２であれば、トレランス法で求めた面分割数ｎ２の方が少ないのであるから、少ない面分割数の方、すなわち、トレランス法を用いて全てのオブジェクトに対する面分割を行なう（Ｓ５，Ｓ６）。一方、ｎ＜ｎ２であれば、指定した面分割数ｎの方が少ないのであるから、少ない面分割数の方、すなわち、ｕ，ｖ法を用いて全てのオブジェクトに対する面分割を行なう（Ｓ５，Ｓ７）。
【００３４】
以上のような面分割の処理を、表示対象にするオブジェクトの全てに対し一つ一つ行ない、全てのオブジェクトに対する処理が終了したら、データの圧縮を終了する（Ｓ８，Ｓ９）。
【００３５】
このようにして圧縮された動作シミュレーション用データは、ＣＡＤデータファイル３０に記憶され、動作シミュレーション時には、この圧縮後の動作シミュレーションデータがＣＰＵ５０によって取り出され、そのデータによる演算結果が表示装置２０に表示され、設備間の干渉チェックや動作状況の確認が行なわれることになる。
【００３６】
このように、面分割数優先モードでは、同一精度誤差を保証する中で、面分割数の少ない面分割方法で面分割されるので、データサイズが小さくでき、比較的速い表示速度でシミュレーションを行なうことができるようになる。
【００３７】
図３に示すフローチャートは、最大許容誤差を優先してデータの圧縮を行なう精度優先モードの処理を示すものである。なお、このモードも操作者によるキーボード１０の操作によって選択される。また、全てのオブジェクトに対してこのモードを適用するのか、オブジェクト毎にこのモードを適用するのかの選択も行なわれるが、このフローチャートでは全てのオブジェクトに対してこのモードを適用する場合について述べる。
【００３８】
まず、操作者は、キーボード１０を用いて最大許容誤差ｔｏｌを入力する（Ｓ１１）。
【００３９】
次に、ＣＰＵ５０は、オブジェクトデータファイル４０に記憶されている表示対象にするオブジェクト群から、一つのオブジェクトＯｉを取り出し（Ｓ１２）、このオブジェクトＯｉに対して［ｎ１＝Ｆ１１（Ｏｉ，ｔｏｌ）］の式を適用して、オブジェクトＯｉに対してトレランス法により求めた面分割数ｎ１を求める。つまり、指定した最大許容誤差を満足させる最低限の面分割数ｎ１がどの程度の数であるかを求める（Ｓ１３）。
【００４０】
さらに、同一のオブジェクトＯｉに対して、［ｔｏｌ２＝Ｆ２２（Ｏｉ，ｎ１）］の式を適用して、オブジェクトＯｉに対してｕ，ｖ法でのトレランスｔｏｌ２を求める。つまり、予め定められている面分割数（キーボード１０から入力されてＣＰＵ５０に記憶されている）によって得られる許容誤差を算出する（Ｓ１４）。
【００４１】
次に、指定した最大許容誤差ｔｏｌと算出された許容誤差ｔｏｌ２を比較し、ｔｏｌ≧ｔｏｌ２であれば、ｕ，ｖ法で求めたトレランスｔｏｌ２の方が誤差が小さいのであるから、許容誤差の小さい方、すなわち、ｕ，ｖ法を用いて全てのオブジェクトに対する面分割を行なう（Ｓ１５，Ｓ１６）。一方、ｔｏｌ＜ｔｏｌ２であれば、指定した最大許容誤差ｔｏｌの方が誤差が小さいのであるから、許容誤差の小さい方、すなわち、トレランス法を用いて全てのオブジェクトに対する面分割を行なう（Ｓ１５，Ｓ１７）。
【００４２】
以上のような面分割の処理を、表示対象にするオブジェクトの全てに対し一つ一つ行ない、全てのオブジェクトに対する処理が終了したら、データの圧縮を終了する（Ｓ１８，Ｓ１９）。
【００４３】
このようにして圧縮された動作シミュレーション用データは、ＣＡＤデータファイル３０に記憶され、動作シミュレーションをする場合にＣＰＵ５０によって呼び出される。
【００４４】
このように、精度優先モードでは、同一面分割数を保証する中で、誤差のより小さい面分割方法で面分割されるので、表示速度は多少犠牲になる点は否めないが、表示速度の低下を最小限にしつつも高精度のシミュレーションを行なうことができるようになる。
【００４５】
なお、以上の実施形態では、全てのオブジェクトに対して面分割数優先モードまたは精度優先モードのいずれかのモードを択一的に適用（キーボード１０によって選択できる）しているが、これ以外にも、オブジェクトごとに、面分割数優先モードまたは精度優先モードのいずれかのモードを適用するようにしても良い。このように、オブジェクトごとに適用するモードを変えれば、オブジェクト全体として最適な動作シミュレーション用データを得ることができる。
【図面の簡単な説明】
【図１】  本発明にかかる動作シミュレーション用データの圧縮方法を実施する動作シミュレーションシステムの概略構成を示すブロック図である。
【図２】  本発明にかかる動作シミュレーション用データの圧縮方法の手順を示すフローチャートである。
【図３】  本発明にかかる動作シミュレーション用データの圧縮方法の手順を示すフローチャートである。
【図４】  ＣＡＤデータに含まれるオブジェクト群の説明図である。
【図５】  本発明の方法によって得られた動作シミュレーション用データの説明に供する図である。
【符号の説明】
１０  キーボード
２０  表示装置
３０  ＣＡＤデータファイル
３５，３６  ロボット
３７  車体
４０  オブジェクトデータファイル
５０  ＣＰＵ
【図１】
0003823596.tif 000002
【図２】
0003823596.tif 000003
【図３】
0003823596.tif 000004
【図４】
0003823596.tif 000005
【図５】
0003823596.tif 000006