(57)【特許請求の範囲】
【請求項１】
ソリッドモデルにおける面を分割する方法において、
該方法は、
ｉ）  コンピュータが、コンピュータ周辺入力装置（３２５）からデータを読み出すことによって、ソリッドモデル（７００）における面（７１５）の選択点（７２０）を直接選択するステップと、
ii）  前記コンピュータが、当該選択点（７２０）によって決定される選択面（７１５）に隣接する複数の隣接面（Ｆ１，Ｆ２；Ｆ３，Ｆ４，Ｆ５，Ｆ６，Ｆ７，Ｆ８）を距離によってソートするステップと、
iii）  前記コンピュータが、前記ソートされた複数の隣接面（Ｆ１，Ｆ２；Ｆ３，Ｆ４，Ｆ５，Ｆ６，Ｆ７，Ｆ８）のうち、前記選択面（７１５）から距離の近い順に、当該各隣接面が前記選択面（７１５）に対して凸であるという凸条件が存在するか否かを決定するステップと、
iv）  前記凸条件が存在することの決定が既に行われた前記複数の隣接面において、同じ面を共有している隣接面が存在する場合には、前記同じ面に存在し、かつ、前記選択面（７１５）を分割する線（７２５）の候補を前記コンピュータが決定するステップと、
v）  前記コンピュータが、前記ソリッドモデル（７００）にて当該線の候補にマークを付して、ユーザからの修正意図（２００）にしたがった修正のために当該ソリッドモデル（７００）を準備するステップと、
vi）  前記コンピュータが、前記修正意図（２００）にしたがってソリッドモデル（７００）を修正することにより、修正されたソリッドモデル（７００）および修正された視覚表示情報を形成するステップと、
vii）  前記コンピュータが、当該修正された視覚表示情報を使用して、修正されたソリッドモデルをユーザに表示するステップとを実行させることを特徴とする、
ソリッドモデルにおける面を分割する方法。
【請求項２】
前記ステップiii）は、前記コンピュータが、再帰的処理を介して実行する、
請求項１に記載の方法。
【請求項３】
前記コンピュータは、さらに、視覚表示データを有するソリッドモデルデータファイル（６１０）をソリッドモデルモデリングアプリケーションに読み込む、
請求項１または２に記載の方法。
【請求項４】
前記コンピュータは、さらに、前記修正されたソリッドモデルを計算処理してソリッドモデルデータファイルに保存する、
請求項１から３までのいずれか１項に記載の方法。
【請求項５】
ソリッドモデルにおける面を分割する方法をコンピュータに実行させるコンピュータプログラムであって、ここで、前記コンピュータは、ロジック処理モジュール、表示処理モジュールおよび方法処理モジュールを含み、
前記方法は、
コンピュータ周辺入力装置の入力を使用して修正フィーチャの選択点を直接選択するステップであって、ただし当該選択は、前記ロジック処理モジュールによる呼び出しに対する応答として方法処理モジュールによって実行される、ステップと、
前記選択点によって決定される前記選択面に隣接する複数の隣接面を距離によってソートするステップであって、ただし当該ソートは、前記ロジック処理モジュールによる呼び出しに対する応答として方法処理モジュールによって実行される、ステップと、
前記ソートされた複数の隣接面のうち、前記選択面から距離の近い順に、当該各隣接面が選択面に対して凸であるという凸条件が存在する否かを決定するステップであって、ただし当該決定は、前記のロジック処理モジュールによる呼び出しに対する応答として方法処理モジュールによって実行される、ステップと、
前記凸条件が存在することの決定が既に行われた前記複数の隣接面において、同じ面を共有している隣接面が存在する場合には、前記同じ面上に存在し、かつ、前記選択面（７１５）を分割する線（７２５）の候補を決定するステップであって、ただし当該決定は、前記ロジック処理モジュールによる呼び出しに対する応答として方法処理モジュールによって実行される、ステップと、
前記ソリッドモデルにて当該線の候補にマークを付けて、ユーザからの修正意図にしたがった修正のために当該のソリッドモデルを準備するステップであって、ただし当該マーク付けは、前記ロジック処理モジュールによる呼び出しに対する応答として方法処理モジュールによって実行される、ステップと、
前記修正意図にしたがってソリッドモデルを修正して、修正されたソリッドモデルおよび修正された視覚表示情報を形成するステップであって、ただし当該修正は、前記ロジック処理モジュールによる呼び出しに対する応答として方法処理モジュールによって実行される、ステップと、
前記表示処理モジュールにより、方法処理モジュールからの修正された視覚表示情報を使用して、前記修正されたソリッドモデルをユーザに表示するステップを有することを特徴とする、コンピュータプログラム。
【請求項６】
さらに前記コンピュータにデータファイル処理モジュールが設けられている、
請求項５に記載のコンピュータプログラム。
【請求項７】
さらに、視覚表示データを有するソリッドモデルデータファイルを前記ソリッドモデルモデリングアプリケーションに読み込み、
ただし当該読み込みは、ロジック処理モジュールによる呼び出しに応じてデータファイル処理モジュールによって実行される、
請求項６に記載のコンピュータプログラム。
【請求項８】
さらに、前記ロジック処理モジュールによる呼び出しに応じて、前記データファイル処理モジュールにより、前記修正したソリッドモデルを計算してソリッドモデルデータファイルに入力する、
請求項６に記載のコンピュータプログラム。
【請求項９】
ソリッドモデルにおける面を分割するための、コンピュータを備えたシステムであって、
該システムは、記憶装置、プロセッサ、ユーザ入力装置及び表示装置を含むコンピュータシステムであり、該コンピュータは、
ｉ）  コンピュータ周辺入力装置（３２５）からデータを読み出すことによって、ソリッドモデル（７００）における面（７１５）の選択点（７２０）を直接選択し、
ii）  当該選択点（７２０）によって決定される選択面（７１５）に隣接する複数の隣接面（Ｆ１，Ｆ２；Ｆ３，Ｆ４，Ｆ５，Ｆ６，Ｆ７，Ｆ８）を距離によってソートし、
iii）  前記ソートされた複数の隣接面（Ｆ１，Ｆ２；Ｆ３，Ｆ４，Ｆ５，Ｆ６，Ｆ７，Ｆ８）のうち、前記選択面（７１５）から距離の近い順に、当該各隣接面が前記選択面（７１５）に対して凸であるという凸条件が存在するか否かを決定し、
iv）  前記凸条件が存在することの決定が既に行われた前記複数の隣接面において、同じ面を共有している隣接面が存在する場合には、前記同じ面上に存在し、かつ、前記選択面（７１５）を分割する線（７２５）の候補を前記コンピュータが決定し、
v）  前記ソリッドモデル（７００）にて当該線の候補にマークを付して、ユーザからの修正意図（２００）にしたがった修正のために当該ソリッドモデル（７００）を準備し、
vi）  前記修正意図（２００）にしたがってソリッドモデル（７００）を修正することにより、修正されたソリッドモデル（７００）および修正された視覚表示情報を形成し、
vii）  前記コンピュータが、当該修正された視覚表示情報を使用して、修正されたソリッドモデルをユーザに表示することを特徴とする、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連する出願への相互参照
本発明は、２００８年４月１４日提出された出願中の暫定米国特許明細書シリアル番号第61/04644号に優先権を主張するものである。
【０００２】
技術分野
ここに記載された発明のシステムは、一般的にはＣＡＤ（computer-aided design）ソフトウェアアプリケーションに関する。より具体的にいうと、上記のシステムは、ソリッドモデル表現における面を分割することに関する。
【０００３】
背景技術
今日のＣＡＤ（computer-aided design）アプリケーションおよびジオメトリックモデリングシステムの世界では、部品はふつう２つの方法のうちの１つで設計される。すなわち、ヒストリベースまたはヒストリレスに設計されるのである。ヒストリベースシステムはふつう、１９８０年代半ばに出現したパラメトリックモデリングパラダイムによって特徴付けられる。パラメトリックモデリングシステムでは、レシピまたはヒストリツリーが作成されて、このレシピまたはヒストリツリーによって事物が互いにどのように関係しているかが反映される。オリジナルのアイテムに変化が生じた場合、時間的にみてこのオリジナルのアイテムの後に作成されたすべてのアイテムが更新される。これにより、例えば、２つの面が同一平面の状態にとどまることができる。それは、これらの面の設計が、設計プロセス中に取り込まれかつ上記の更新プロセス中に単純に「再生」されるような関係を伴って行われるからである。図１ａ〜１ｃは、３次元ブロックの不等角投影図を示している。図１ａを参照すると、ユーザはコンピュータディスプレイ上で３次元（３Ｄ）のＣ字型ブロック１００を見ることができ、またこのブロックは、下脚１０５，上脚１１０または下脚１０５および上脚１１０の両方をユーザが変更することによって修正することが要求されている。ヒストリベースのシステムにおいてＣ字型ブロック１００をユーザがいかに容易に変更できるかは、これがＣＡＤアプリケーションシステム、例えばSiemens Product Lifecycle Management Software社のSolidEdgeなどにおいて元々どのように設計されていたかに依存する。元々の設計者は部品を作成および／または設計するが、この部品は、この元々の設計者がまったく知らないこともあり得る設計者により、のちに修正されることもよくある。例えば、元々の設計者、すなわち上記のＣ字型ブロック１００を元々設計した設計者が、下脚１０５および上脚１１０に関連する複数の面を同一平面となるように制約する設計手法意図を有していた場合、図１ｃに示した修正アクションは、３Ｄモデル設計の分野に通じた人にとっては基本である公知のパラメトリック／ヒストリベースモデリング技術を使用することによって簡単に行うことができる。これは簡単に説明すると、２つの面が同一平面になるように制約されているため、一方の面を移動すると他方の面も同様に移動するのである。これに対し、例えば、図１ｂのように、修正を行う設計者が上脚１１０はそのままにして下脚１０５に関連している面だけを移動しようとする場合、同一平面性についての制約を解除するために付加的な幾つかのステップを実行しなければならない。これには、このような修正を行う設計者が元々の設計者でない場合、Ｃ字型ブロック１００の２つの脚部がどのように作成されたかを理解することから始まるいくつかのステップが必要である。さらにＣ字型ブロック１００の元々の設計者が、下脚１０５と上脚１１０とが同一平面になるようにモデリングしておらず、これらの脚部を別の手法で、例えば距離または式のような手法でモデリングしていた場合、図１ｃに示した２つを修正することは、この修正する設計者もスクラッチからこのＣ字型ブロック１００をモデリングすることになるという点にまで困難さが増大するのである。
【０００４】
他方では、例えばCoCreate，IronCADおよびKubotekなど社が採用しているヒストリレスまたはボディベースのアプローチにおけるＣブロック１００の修正では、パラメトリックモデリングパラダイムによって一般的になったヒストリツリーを管理することはできない。このようなヒストリレスのアプローチでは、ソリッドモデルのアイテム毎に明示的に変更が行われる。Ｃ字型ブロック１００の元々の設計者が下脚１０５および上脚１１０の面を同一平面の関係で管理しようとしていた場合、後の修正には、編集を行って所望の結果を得るため、上記の面を手動で選択しなければならないが、これは元々の設計者の意図がわからないかまたは確認できない場合には困難である。例えば、修正を行う設計者は単純に一方の面を選択するかまたは同一平面関係にある別の面を個別にすべて選択することによってしか、図１ｂまたは図１ｃに示したいずれかの変更を行うことができない。この例では少ない数にしかならないが、複雑なアセンブリモデルでは数百にもなり得るのである。択一的には、修正を行う設計者に対して「複数の面を同一平面にする」ことを可能にし、またこの編集時点後にこの設計意図を永続的に取り込むことを可能にするアプリケーションもあるが、このこともまた極めて大きなモデルにおいては殊に非効率になり得るのである。後者の変更は、後日における図１ｂに示した修正を困難にすることがある。殊に、いまや上記の設計の意図が、設計の意図とは反してこのモデルに焼き込まれることになり得るからである。
【０００５】
ヒストリベースアプローチに伴う上記の問題は、設計の意図がモデルを作成する時点に組み込まれて固定されることであり、これにより、モデル作製時に予想しなかった変更を後に行うことを煩雑化し得るのである。これに対してヒストリレスシステムは、後日の変更についてフレキシブルであるが、事物がどのように関連しているかということについて極めて限られたインテリジェンスしか取り込んでいない。修正を行う設計者が、後の時点でこのようなインテリジェンスを手動で取り込むことと決心した場合には、ヒストリベースのシステムと同様に、このようなインテリジェンスが組み込まれて固定され、これによってフレキシビリティがさらに制限されてしまうのである。
【０００６】
ジオメトリモデリングシステムにおいて上記のジオメトリ選択手法には、ジオメトリを選択する前にオプションを設定する必要がある。すなわち、設計者は、事前に計画を立てて、選択したいものについての準備しなければならないのである。事前の計画立案には、複数の推奨準備アクションが必要であり、また多くのケースにおいて上記の選択が今行おうとしている修正を満足しない場合、推奨エラーリカバリが必要である。これらの推奨アクションは、ヒストリレスシステムにとっては、過剰に負荷の多い作業であることが判明している。ヒストリレスシステムにおいて、修正を行うために使用される命令および選択オプションは、複数の命令セッション間でも、命令セッション内でも変わることが多い。例えば設計者は、１つ命令セッションにおいて１つの面移動命令で、ボス、リブを移動し、またこれらのボスとリブとを接続している面を移動することがある。別の命令セッションにおいては、設計者は、単一の面またはスロットだけを移動することもある。１つのモデルにおいて、マージされたリブを制約するために使用できるどのような条件下に面があるかを識別するのは技術的に困難である。ここでマージされたリブとは、リブでない面と面一になった面を有するリブのことである。「リブ」が、凸形を形成する面の集まりであり、また「マージされたリブ」１１５がつぎのような付加的な性質を有することは公知である。すなわち、１つのリブ面が、当のモデルの残りの面からこのリブ面を分離するために分割されていなければならないという付加的な性質を有することは公知である。例えば、修正を行う設計者が、マージされたリブ１１５を修正しようとして、マージされたリブ１１５面だけ選択しようとする場合、この修正を行う設計者は、Ｃ字形ブロック１００の参照符号１２０で示した全部の面を思いがけずに選択してしまっていることがあるのである。
【０００７】
本発明の発明者が有利にも認識したのは、ソリッドモデルにおいて修正のために、面を分割するためのシステムおよび方法、殊に上記のようなマージされたリブの面を分割するためのシステムおよび方法に対するニーズがあることである。
【０００８】
発明の概要
識別した上記のようなニーズおよび関連する問題を取り扱うため、本発明のシステムは、ソフトウェア命令を有するコンピュータにおいて操作されるソリッドモデルに対する修正を選択するシステムを提供しており、このシステムは、コンピュータシステムを含んでおり、
上記のコンピュータシステムには、記憶装置、プロセッサ、ユーザ入力装置と、表示装置とが含まれており、
前記のコンピュータシステムの記憶装置のメモリに記憶されかつコンピュータで生成したジオメトリックモデルとを有しており、
上記のコンピュータシステムにより、コンピュータ周辺入力装置が使用されて、ソリッドモデルにおいて直接、修正フィーチャの選択点が選択され、
上記の選択点によって決定される選択面に隣接する複数の隣接面が距離によってソートされ、
上記の複数の隣接面が上記の選択面に対して凸であるという凸条件が存在する否かを決定し、
上記の複数の隣接面と、前に対象とした面とが同じ面を共有しかつ前記の凸条件が満たされる場合に曲線の候補があるか否かを決定し、
上記のソリッドモデルおいてこの曲線の候補にマークを付けて、ユーザからの修正意図にしたがった修正のためにこのソリッドモデルを準備し、
上記の修正意図にしたがってソリッドモデルを修正して、これにより、修正されたソリッドモデルおよび修正された視覚表示情報を形成し、
この修正された視覚表示情報を使用して、修正されたソリッドモデルをユーザに表示する。
【０００９】
上記のシステム別の特徴は、一部には以下の説明および図面に記載されており、また別の一部は、このシステムを実施することによって得られる。本発明の明細書の一部をなす図面を参照しながら、以下、このシステムを説明する。他の実施例も利用することができ、本発明の範囲を逸脱することなしに変更を行うことは当然である。
【００１０】
図面の簡単な説明
以下では添付の図面に関連してシステムを説明する。ここで類似の参照符号は同様のエレメントを示す。
【図面の簡単な説明】
【００１１】
【図１】３次元ブロックの斜方投影図である。
【図２】仮想製品開発環境の例を示す図である。
【図３】上記のシステムを実現することの可能なコンピュータ環境のブロック図である。
【図４】ソフトウェアアプリケーションで実現されたソフトウェアプログラミングコードの一般的な概念を示す図である。
【図５】上記の実施形態によって用いられる方法の一般的な概観を示すブロック図である。
【図６】例示的なソリッドモデル修正システムを示す図である。
【図７】ソリッドモデル修正システムにおいて面を分割する例示的な方法を示す図である。
【００１２】
好適な実施形態の詳細な説明
１．序
以下ではソリッドモデルにおけるジオメトリック的な関係を修正する方法およびシステムを説明する。以下では、説明を目的として、上記のシステムを完全に理解できるようにするため、特定で詳細な事項が数多く示されている。しかしながら上記のシステムが、これらの特定で詳細な事項がなくても実施できることは当業者には明らかである。また別の例では、公知の構造および装置はブロック図の形態で示して上記のシステムが不必要に曖昧にならないようにした。
【００１３】
図２には仮想製品開発環境の例が示されている。今日使用される上記の仮想開発環境はふつう、１つの製品に基づいて改良したいまたは作成したいという参照符号２００で一般的に示した顧客の要求または内在的欲求によって開始される。この製品は、栓抜きのように単純なものでも潜水艦のように複雑なものでもよい。さらに図２を参照すると、元々の設計者は、ＣＡＤ（computer-aided design）アプリケーション２０５によって使用される公知に方法にしたがって所望の製品をモデリングする。ＣＡＤアプリケーション２０５は汎用計算機において実行される。この汎用計算機は、その後、以下で詳しく説明するアプリケーションの実行および対話の時点において、ＣＡＤルーチンを実行するための特定用途計算環境になる。ＣＡＤアプリケーション２０５は有利には、いずれもSiemens Product Lifecycle Management Software社によってライセンスが供与されているSolidEdgeまたはＮＸである。ＣＡＤユーザは、既知であり習得した仕方でＣＡＤアプリケーション２０５を操作して、顧客の要求または内在的な要求から確認した元々の設計要件に類似しかつ合致するソリッドモデルを仮想的に表示する。このソリッドモデルはふつう複数のコンポーネントおよび複数からなるアセンブリの１アセンブリであり、ここでこれらの複数のアセンブリはさらにサブアセンブリおよび／またはサブコンポーネントに分割される。有利にはこれらはすべて、後の呼び出しのため、ソリッドモデルデータファイル２５５に記憶される仮想的な表現を有している。
【００１４】
一旦上記のソリッドモデルが決定されて元々の設計要件に適合する適切な形状になると、有利にはSiemens Product Lifecycle Management Software社によって提供されるNX CAEまたはFEMPAPのようなＣＡＥ（computer-aided engineering）アプリケーション２１９が使用されてＣＡＥユーザによってテストされ、部分的なフォールトトレーランステストおよび別のさまざまな技術試験が行われる。上記のフォールトトレーランステストに合格してパスするためにソリッドモデルを修正しなければならないとＣＡＥユーザが決定した場合、このソリッドモデルは、ＣＡＤアプリケーション２０５における修正のためにＣＡＤユーザに戻される。ＣＡＤアプリケーション２０５とＣＡＥアプリケーション２１０との間およびそれぞれユーザ間のこのような繰り返しは、上記のソリッドモデルが所要の設計要件および技術試験に合格してパスするまで反復される。
【００１５】
上首尾に完成した後、最終設計形状をした上記のソリッドモデルは、いずれもSiemens Product Lifecycle Management Software社によって提供されているNX CAMまたはCAM ExpressのようなＣＡＭ（computer-aided manufacturing）アプリケーション２１５において物理的な製作用にさらに設計が行われる。ＣＡＭユーザは、ＣＡＭアプリケーション２１５を使用することにより、数値制御プログラム、鋳型、ツールおよび金型によってどのように物理的な製品２３０を製作するかをモデリングする。ＣＡＭユーザは、元々の設計要件に適合するために付加的な修正を加えていることがあり、例えば、放電加工（ＥＤＭ electro-discharge machining）の使用には、物理的な製品２３０を製作するのにワイヤーカット放電加工を使用するかまたは形彫り放電加工を使用するかに応じて異なる技術が必要である。部品を仮想的にフライス加工するため、ＣＡＭアプリケーション２１５により、有利にはＥＤＭプロセスに対する軌道の電極パスが定められる。ＣＡＭユーザは、設計および技術要件に適合させるため、例えば、物理的な製品２３０を含む材料が硬化できるようにするための冷却の後、上記のソリッドモデルのサイズをごくわずかに修正する必要があると決定することがある。
【００１６】
製品の仮想的な設計、エンジニアリングおよび製作に成功した後、メーカは、この製品に関連する製品エンジニアリングに伴うすべての作製規則をリンクすることができる。これには、Siemens Product Lifecycle Management Software社によって提供されるTecnomatixのようなデジタルファクトリアプリケーション２２０を利用するプロセスレイアウトおよびデザイン、プロセスシミュレーション／エンジニアリングおよび生産管理が含まれる。例えばＣＡＭユーザが旧式のＥＤＭシステムによって製品をモデリングし、また所要のブランクを作製するためにメーカが５軸旋盤を使用しなければならないという理由で、またはこのメーカが物理的な製品２３０を含む部品を形成するために圧縮成形ではなく射出成形に移行したという理由で、このメーカは、物理的な製品２３０を修正する必要があると判断することがある。例えば、物理的な製品２３０を作製するための最終的な要件に適合するように上記のソリッドモデルを修正しなければならないのである。
【００１７】
上述の仮想的な製品開発全体にわたり、製品設計は、例えば顧客の要求からＣＡＤユーザ、ＣＡＥユーザ、ＣＡＤユーザに流れ、逆にＣＡＥユーザ、ＣＡＭユーザに戻り、つぎにメーカに流れて物理的な製品２３０の物理的な作製が行われる。上記のソリッドモデルに対するそれぞれの編集に伴い、ジオメトリック的な関係も同様に修正されて、例えばＣＡＤユーザ、ＣＡＥユーザ、ＣＡＭユーザおよびメーカによる所要の設計変更に適合されるようにする。さらにＣＡＤ／ＣＡＥ／ＣＡＭユーザがそれぞれ上記のソリッドモデルを修正すると、このソリッドモデルを定義するデータモデルも同様に修正されて上記の変更が適切に考慮されて、上記のソリッドモデルデータファイル２２５に適切に記憶される。つぎにメーカは、元々の設計仕様および後続の技術的な修正にしたがって物理的な製品２３０の製造に進む。上記の仮想的な製品開発はシステム内で行われ、ソリッドモデルにおけるジオメトリックな関係を修正するためのシステムおよび方法は、さまざまなハードウェアシステムのメモリ内にあるさまざまなソフトウェアアプリケーションにおいて実行可能である。このことは以下でさらに詳しく説明する。
【００１８】
２．コンピュータプログラム製品
ここでハードウェアシステムに目を向けると、図３は、上記のシステムを実現することの可能なコンピュータシステムのブロック図である。図３および以下の考察は、本発明の実施形態を実現可能な適切なハードウェアシステムおよび計算環境の簡単で一般的な説明をしようとするものである。この実施形態は、公知の計算環境の任意の変形形態において実行可能である。
【００１９】
図３を参照すると、例示的なコンピュータシステムには、デスクトップコンピュータまたはラップトップコンピュータのようなコンピュータ３００の形態の計算装置が含まれており、これには、関連する複数の周辺装置（図示せず）が含まれている。コンピュータ３００には、中央演算処理ユニット（ＣＰＵ  central processing unit）３０５と、バス３１０とが含まれており、このバスは、公知の技術にしたがって中央演算処理ユニット３０５と、コンピュータ３００の複数のコンポーネントとの間を接続して通信を可能にするために使用される。ＣＰＵ３０５の処理は当業者にはよく知られており、このＣＰＵは有利には、コンピュータにおいて符号化されてこのコンピュータで実行可能な命令を有するコンピュータプログラムを実行可能な電子回路であり、ここでこのコンピュータプログラムは、例えばコンピュータ３００によって実行されるプログラムモジュールである。一般的にプログラムモジュールには、特定のタスクを実行するかまたは特定のデータタイプの実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。上記のプログラムモジュールには有利には、ファイル処理モジュール３０６と、データ表示モジュール３０７と、ロジック処理モジュール３０８と、方法処理モジュール３０９とが含まれている。ロジック処理モジュール３０８は、コンピュータ実行可能命令にしたがって処理を行うため、ファイル処理モジュール３０６と、データ表示モジュール３０７と、方法処理モジュール３０９とに要求を送信する。同様にロジック処理モジュールは、コンピュータ実行可能命令にしたがって処理を行うためにファイル処理モジュール３０６と、データ表示モジュール３０７と、方法処理モジュール３０９とからの要求を受信する。またバス３１０により、上記のさまざまなモジュールと、上記の複数のコンポーネントとの間の通信が可能になる。バス３１０は、バスアーキテクチャの任意の形態を使用するローカルバス、メモリバスまたはメモリコントローラ、周辺バスを含めたいくつかのタイプのバス構造のうちの任意のものとすることが可能である。コンピュータ３００にはふつうユーザインタフェースアダプタ３１５が含まれており、このユーザインタフェースアダプタは、バス３１０を介して中央演算処理ユニット３０５と、１つまたは複数のインタフェースデバイス、例えばキーボード３２０、マウス３２５および／または別のインタフェースデバイス３３０とを接続する。このインタフェースデバイスは、タッチスクリーン、デジタルペン入力パッドなどの任意のユーザインタフェースデバイスとすることができる。またバス３１０は、ディスプレイアダプタ３４０を介して表示装置３３５，例えばＬＣＤスクリーンまたはモニタと、中央演算処理ユニット３０５とを接続する。バス３１０はまた中央演算処理ユニット３０５とメモリ３４５とを接続する。このメモリは、ＲＯＭ、ＲＡＭ等を含むことができる。
【００２０】
コンピュータ３００にはさらにドライブインタフェース３５０が含まれており、このドライブインタフェースにより、少なくとも１つの記憶装置３５５および/または少なくとも１つの光学ドライブ３６０と、上記のバスとが接続される。記憶装置３５５には、ディスクからの読み出しおよびディスクへの書き込みを行うための図示しないハードディスクドライブ、リムーバブル磁気ディスクドライブからの読み出しまたはこれへの書き込みを行うための図示しない磁気ディスクドライブを含むことができる。同様に光学ドライブ３６０は、ＣＤ‐ＲＯＭまたは他の光学媒体のようなリムーバブル光ディスクからの読み出しまたはこれへの書き込みを行うための図示しない光ディスクドライブを含むことができる。上記のドライブおよび関連するコンピュータ読出可能媒体により、コンピュータ読出可能命令、データ構造、プログラムモジュールおよびコンピュータ３００用の別のデータが不揮発的に記憶される。ここでこれらは、方法処理モジュール３０９によって供給される命令によって表される方法においてロジック処理モジュール３０８によって受信される命令にしたがってファイル処理モジュール３０６によってアクセス可能である。
【００２１】
コンピュータ３００は、通信チャネル３６５を介して他のコンピュータまたはコンピュータのネットワークと通信することができる。コンピュータ３００は、ローカルエリアネットワーク（ＬＡＮ）またはワイドエリアネットワーク（ＷＡＮ）内の他のコンピュータと接続することができ、または他のコンピュータを有するクライアント/サーバ構成の１クライアントとすることができる。さらにこの実施形態は、分散コンピューティング環境においても実施することができ、ここでタスク命令は、方法処理モジュール３０９によって供給される命令によって表される方法においてロジック処理モジュール３０８によって供給され、また通信ネットワークを介して接続されたリモート処理装置によって実行される。分散コンピューティング環境では、上記のプログラムモジュールは、ローカルメモリ記憶装置およびリモートメモリ記憶装置の両方に配置することができる。これらの構成ならびに適切な通信ハードウェアおよびソフトウェアはすべて当業者に公知である。
【００２２】
ここで上記のプログラムモジュールにさらに詳細に目を向けると、図４ａ〜４ｂには、ソフトウェアアプリケーションで実現されるソフトウェアプログラミングコードの一般的概念が示されている。さらに図４ａを参照し、上記のプログラムモジュールの実施形態をさらに詳しく説明する。ここではソフトウェアアプリケーション４００に上記のようなアクセス可能なプログラムモジュールが含まれている。ソフトウェアアプリケーション４００は、上記のようなＣＡＤアプリケーション２０５，ＣＡＥアプリケーション２１０またはＣＡＭアプリケーション２１５のようなソリッドモデリングアプリケーションの形態とすることが可能である。さらにソフトウェアアプリケーション４００は、アクセスおよび利用のための専用のＡＰＩ（"application programming interface"）呼び出し機能と共にサードパーティベンダによって提供されることが考えられる。ユーザがソフトウェアアプリケーション４００と対話すると、所定の修正イベントにより、変分モデリングツールキット（variational modeling toolkit）４０５との対話が開始される。これについては以下にさらに詳しく説明する。ソフトウェアアプリケーション４００と変分モデリングツールキット４０５とは協働してまたは個別に、方法処理モジュール３０９によって供給される命令によって表される方法において、ロジック処理モジュール３０８を利用し、低レベルのジオメトリックモデリングカーネルを呼び出し、ユーザによって選択されかつソフトウェアアプリケーション４００によって実行されるコマンドにしたがって上記のソリッドモデルの所定の修正イベントを実行する。このことはソリッドモデリングの当業者には一般的に理解されることがあるが、以下に一層詳しく説明する。上記の低レベルジオメトリックモデリングカーネルはふつうSiemens Product Lifecycle Management Software社によってライセンスされているParasoidのような少なくとも１つの３次元（３Ｄ）ジオメトリックモデラ４１０の集まりであり、またSiemens Product Lifecycle Management Softwares社から提供されている3D DCM（または"DCM"）のようなジオメトリックソフトウェアコンポーネントの集まりである。
【００２３】
言い換えると、図４ｂを参照するとわかるように変分モデリングツールキット４０５は、ソフトウェアアプリケーション４００から伝えられた変分編集コマンドに作用を及ぼすのである。付加的にはソフトウェアアプリケーション４００は、非変分モデリングコールを３Ｄジオメトリックモデラ４１０に伝える。また３Ｄジオメトリックモデラ４１０は、ジオメトリックモデラの分野の当業者にはふつうわかるようにジオメトリックソフトウェアコンポーネントライブラリ４１５の集まりを利用する。変分モデリングツールキット４０５に関しては、以下に詳しく説明するように、検索、編集、解決および適用を含む変分編集に関連するいくつかの操作が行われる。ソリッドモデリングの分野で広く知られているのは、上記のジオメトリックソフトウェアコンポーネントライブラリの集まりにより、例えば、ジオメトリックコンストレイントソルビング、変分設計、パラメトリック設計、モーションシミュレーション、コリジョン検出、クリアランス計算、トポロジ位置決定、トポロジ移動ソリューション、隠線除去などモデリング機能が提供される。またこの実施形態の範囲内であると考えられるのは、３Ｄジオメトリックモデラ４１０およびコンポーネントライブラリ４１５が、別の複数のコンポーネントや、これらのコンポーネントの組み合わせではなく、同じアプリケーションの複数のコンポーネントになっていることである。上記のコンピュータプログラム製品を説明したため、分割システムについてさらに詳細に説明する。
【００２４】
３．分割システム
つぎに面分割システムに目を向けると、図５は上記の実施形態によって使用される方法の一般的な概観を示すブロック図である。図５を参照すると、この実施形態にはロジック処理モジュールが示されており、このロジック処理モジュールは、上記の方法処理モジュール３０９によって供給される命令によって表される方法を使用する。ここで説明する方法は、コンピュータにおいて操作されるソリッドモデルにおける面を分割する方法であり、このンピュータは、一般的に５００で示される設計のためのソフトウェア命令を有する。以下のステップは、引き続いて説明する詳細を有するシステムで表される実施形態の概観を提供するためのものである。このシステムにより、コンピュータ周辺入力装置が使用されて、ソリッドモデルの修正フィーチャにおいて直接、選択点が選択される（ステップ５００）。このシステムにより、上記の選択点によって決定される選択面に隣接する複数の隣接面が距離によってソートされる（ステップ５０５）。上記のシステムにより、選択面に対して複数の隣接面が凸であるという凸条件が存在する否かが決定される（ステップ５１０）。上記のシステムにより、上記の複数の隣接面と、前に対象とした面とが同じ面を共有しかつ上記の凸条件を満たす曲線の候補があるか否かが決定される。システムにより、上記のソリッドモデルにおけるこのような曲線の候補にマークが付けられて、ユーザからの修正意図にしたがった修正のためにこのソリッドモデルが準備される（ステップ５２０）。上記の修正意図にしたがい、システムによってソリッドモデルが修正され、修正されたソリッドモデルおよび修正された視覚的な表示情報が得られる（ステップ５２５）。システムにより、この修正された視覚表示情報が使用されて、修正されたソリッドモデルがユーザに表示される（ステップ５３０）。図６は、例示的なソリッドモデル修正システムを示している。ソフトウェアアプリケーション４００を使用するユーザは、ソフトウェアアプリケーション４００による記憶装置３５５へのアクセスのために必要な命令を実行する。ここでこの記憶装置は、有利にはハードディスクドライブ６００であり、ソリッドモデルデータファイル４２５に記憶されているソリッドモデルの仮想的表現に関連するデータを有する。このソリッドモデルデータファイルは有利にはソフトウェアアプリケーション４００、変分モデリングツールキット４０５、３Ｄジオメトリックモデラ４１０およびコンポーネントライブラリ４１５によってアクセス可能である。さら図６を参照すると、ソフトウェアアプリケーション４００は、ソリッドモデルデータファイル４２５へのアクセスを行うソリッドモデリングアプリケーション６０５によって特徴付けられている。このソリッドモデルデータファイルは、有利にはハードディスクドライブ６００に格納されるデータファイル６１０として構造化される。このデータファイルは有利にはstand.x＿tフォーマットおよびstand.vtk＿dataフォーマットであり、ここでstand.x＿tフォーマットは、３Ｄジオメトリックモデラ４１０用のモデラ転送ファイル形式であり、またstand.vtk＿dataフォーマットは、変分モデリングツールキット４０５用の変分モデリングツールキット情報ファイル形式であり、ただしstand*は、ファイル名の一般部分である。ソリッドモデリングアプリケーション６０５は、専用に認識されるファイルタイプ拡張子、例えばAPPを有しており、このアプリケーションはこれを使用して上記のソリッドモデルを操作するための情報を得る。引き続いてソリッドモデリングアプリケーション６０５により、上記のstand.x＿tが３Ｄジオメトリックモデラセッションボディにロードされて、３Ｄジオメトリックモデラ４１０によるアクセスが行われる。上記のstand.vtk＿dataファイルは、読み込まれて上記の３Ｄジオメトリックモデラセッションボディに加えられる。ソリッドモデリングアプリケーション６０５は、上記のソリッドモデルに関連するアプリケーションデータを読み込んで、専用のファイルタイプ、例えばＰＲＴにしたがってデータファイル６１０にアクセスする。読み込んだソリッドモデルの設計者は、視覚化したこのソリッドモデルの幾つかの点で修正しようとしている。その際にこの設計者は、面、辺または頂点とすることの可能な、修正しようとするトポロジを選択する。修正しようとするこのトポロジを選択することより、上記のソリッドモデリングアプリケーションは、変分モデリングツールキット４０５と対話を開始して上記の修正のための計算を行う。これは、当業者には公知の手法を使用し、上記の変分モデリングツールキットＡＰＩ６１５によって行われる。このソリッドモデルの修正に続き、修正したこのソリッドモデルをハードディスクドライブ６００に保存するため、ブロック６２０に示されているように上記の変分モデリングツールキット４０５に関連するデータが、上記のソリッドモデルから抜き出されてvtk＿dataデータ構造に入れられ、つぎにこれがstand.vtk＿dataファイルに保存される。上記の抜き出されたソリッドボディも、上記のアプリケーションデータと同様にハードディスクドライブ６００に保存される。例えば、マージされたリブなどのトポロジ選択の実行を以下にさらに詳しく説明する。
【００２５】
４．分割方法
ここで上記の面分割システムに詳細に目を向けることにすると、このシステムには、繰り返しの手続きを介して複数のパスを使用する面分割法が含まれており、この面分割法は入力として単一の面および選択点を有する。集合Ｃを保守して、上記のマージされたリブの選択に引き続き、モデルに加えられたすべての新しい辺のパラメトリックデータが記憶されるようにする。また上記の方法により、処理Ｆ(ｅ)から除外された面の集合の保守も行われ、ここで上記のリストは初期状態では空である。上記のソリッドモデルの最新の状態は、Ｓに保存されている。この方法は、単一の面および選択点の形態で設計者の入力を受け取る。この単一の面に隣接する複数の面が取得されて距離でソートされる。取得されてソートされた上記の隣接面は再帰的に調べられて、分割によってこのリブが制限できるか否かおよびリブ条件が決定される。リブ修飾に対して上記の隣接面は、上記の入力された単一面を基準にして凸でなければならない。上記のリブを制限できるか否かについて２つの決定がなされる。まず第１に上記の隣接面が、前に対象とした面と同じ底部表面を共有している場合であって、また第２にこれらの面のうちの任意の２つの面が、前にリブとして識別した面と境をなす周辺のループを有している場合、上記の方法により、この面を分割しようとする試みがなされる。さらに１つの辺が加えられた場合、上記の再帰的処理を停止し、上記のはじめの入力を使用して別のパスを処理される。この際にこれらの面は、以降のすべての処理から除外される。この第２の決定により、後続のすべてのパスにおいて対象とされる面の範囲が効果的に低減される。例えば、同じ面が複数回分割されて複数のパスの可能性が低減されるのである。作成されたすべての辺に対するパラメタは上記の集合Ｃに保存される。隣接面の集合に含まれる隣接面が使い尽くされると、前に上記のリブ条件を満たしていた面を再帰的に対象とする。これは、対象とする面がなくなるまで続けられる。つぎに上記の入力された単一面と境界を成していない辺のパラメトリックデータは、上記の集合Ｃから廃棄される。上記のソリッドモデルは、保存状態Ｓに戻り、また集合Ｃに保存された上記の辺は、マーク付けられてこのソリッドモデルに取り込まれる。
【００２６】
５．分割の説明
図７ａ〜７ｂは、ソリッドモデル修正システムにおける例示的な面分割を示している。図７ａおよび７ｂを参照すると、設計者は、ソリッドモデル７００を読み込んでおり、これによってソリッドモデルは修正のために視覚的に表示される。ソリッドモデル７００は、リブ７０５と、マージされたリブ７１０とを有する。設計者は、マージされたリブ７１０を修正しようとし、このために選択面７１５および選択点７２０を決定する。システムにより、ＦＳが点ＰＴにおける選択面とされる。Ｆ１およびＦ２は同じ底面を共有し、またいずれもＦＳに隣接しているため、この面上の曲線は面ＦＳを分割するのに使用可能である。初期化時にシステムは集合Ｆ(ｅ)およびＣを空集合、すなわち｛｝に等しく設定する。最新のモデル状態はＳとして保存される。この例では３つのパスが発生する。パス１において、
上記の対象とした面の集合をＦ(ｖ)＝｛｝とし、また識別したリブの面集合Ｆ(ｒ)＝｛｝とする
Procedure P (Face FS, Point PT){
ＦＳをＦ(ｒ)に加える：
A＝{F5，F6，F1，F2，F4，F8，…}
Ｆ(ｔ)＝｛｝
Ａに含まれるすべてのＦに対して：
｛
Ｆ５：Ｆ(ｖ)に含まれる面と、表面を共有しない；Ｆ５はＦ(ｅ)に含まれておらずかつＦ５はＦＳに
対して凸であるため、これをＦ(ｔ)およびＦ(ｖ)に加える。
Ｆ６：Ｆ(ｖ)に含まれる面と、表面を共有しない；Ｆ６はＦ(ｅ)に含まれておらずかつＦ６はＦＳに
対して凸であるため、これをＦ(ｔ)およびＦ(ｖ)に加える。
Ｆ１：Ｆ(ｖ)に含まれる面と、表面を共有しない；Ｆ１はＦ(ｅ)に含まれておらずかつＦ１はＦＳに
対して凸であるため、これをＦ(ｔ)およびＦ(ｖ)に加える。
Ｆ２：Ｆ(ｖ)に含まれるＦ１と同じ表面を共有するため、上記のリブの分割を試みる。
Ｆ２およびＦ１の周囲のループは、Ｆ(ｒ)に含まれるＦＳにおいて共通の面を有する。
Ｆ１およびＦ２をＦ(ｅ)に加える。
マークを付ける曲線を決定する。
マークを付け、新しいすべての辺パラメタデータをＣに加えてＰを停止する。
｝
｝
パス２において、Ｆ(ｅ)＝｛Ｆ１，Ｆ２｝；Ｃ＝｛Ｃ１｝，ただしＣ１は、一般的に７２５で示される：
Ｆ(ｖ)＝｛｝，Ｆ(ｒ)＝｛｝とする。
Procedure P (Face FS, Point PT)
{
ＦＳをＦ(ｒ)に加える：
A＝{F5，F6，F1，F2，F4，F8，…}
Ｆ(ｔ)＝｛｝
Ａに含まれるすべてのＦに対して：
｛
Ｆ５：Ｆ(ｖ)に含まれる面と、表面を共有しない；Ｆ５は、Ｆ(ｅ)に含まれておらずかつＦ５はＦＳに
対して凸であるため、Ｆ(ｔ)およびＦ(ｖ)に加える。
Ｆ６：Ｆ(ｖ)に含まれる面と、表面を共有しない；Ｆ６は、Ｆ(ｅ)に含まれておらずかつＦ６はＦＳに
対して凸であるため、Ｆ(ｔ)およびＦ(ｖ)に加える。
Ｆ１：除外する。
Ｆ２：除外する。
Ｆ４：Ｆ(ｖ)に含まれる面と、表面を共有しない；Ｆ４は、Ｆ(ｅ)に含まれておらずかつＦ４はＦＳに
対して凸であるため、Ｆ(ｔ)およびＦ(ｖ)に加える。
Ｆ８：Ｆ(ｖ)においてＦ１と同じ表面を共有するため、上記のリブの分割を試みる。
Ｆ４およびＦ８の周囲のループは、Ｆ(ｒ)のＦＳにおいて共通の面を有する。
Ｆ４およびＦ８をＦ(ｅ)に加える。
マークを付ける曲線を決定する。
マークを付け、新しいすべての辺パラメタデータをＣに加えてＰを停止する。
｝
｝
パス３においてＦ(ｅ)＝｛Ｆ１，Ｆ２，Ｆ４，Ｆ８｝；Ｃ＝｛Ｃ１，Ｃ２｝，ただしＣ２は一般的に７３０において示される：：
Ｆ(ｖ)＝｛｝，Ｆ(ｒ)＝｛｝とする。
Procedure P (Face FS, Point PT)
{
ＦＳをＦ(ｒ)に加える：
A＝{F5，F6，F1，F2，F4，F8，…}
Ｆ(ｔ)＝｛｝
Ａに含まれるすべてのＦに対して：
｛
Ｆ５：Ｆ(ｖ)に含まれる面と、表面を共有しない；Ｆ５は、Ｆ(ｅ)に含まれておらずかつＦ５はＦＳに
対して凸であるため、Ｆ(ｔ)およびＦ(ｖ)に加える。
Ｆ６：Ｆ(ｖ)に含まれる面と、表面を共有しない；Ｆ６は、Ｆ(ｅ)に含まれておらずかつＦ６はＦＳに
対して凸であるため、Ｆ(ｔ)およびＦ(ｖ)に加える。
Ｆ１：除外する。
Ｆ２：除外する。
Ｆ４：除外する。
Ｆ８：除外する。
Ｆ(ｔ)に含まれるすべてに対してＰに進む。
｝
｝
上記から明らかであるのは、隣接する面Ｆ５およびＦ６は上記のリブに加えられることにはならず、上記の再帰的処理は、定められかつ分割された上記のリブで終了する。ここで上記のモデル状態Ｓに戻り、上記の曲線Ｃ１およびＣ２をソリッドモデル８００の一部としてマークを付ける。
【００２７】
６．結論
上記の実施形態は、デジタル電子回路、またはコンピュータハードウエア、ファームウエア、ソフトウェア、またはそれらの組み合わせで実現することができる。上記の実施形態の装置は、プログラミング可能なプロセッサによって実行するために機械読み出し可能な記憶装置に具現されるコンピュータプログラム製品で実現することができる。また上記の実施形態の方法のステップは、プログラミング可能なプロセッサによって実行することができ、このプロセッサにより、入力データが処理されて出力が生成されることによって上記の実施形態の機能を実施する命令のプログラムが実行される。
【００２８】
上記の実施形態は有利には、少なくとも１つのプログラミング可能なプロセッサを含むプログラミング可能なシステムで実行可能な１つまたは複数のコンピュータプログラムで実現することができる。ここでこのプログラミング可能なプロセッサは、データおよび命令を受信し、またデータおよび命令を送信するため、データ記憶システム、少なくとも１つの入力装置および少なくとも１つの出力デバイスに接続されている。上記のアプリケーションプログラムは、高級手続プログラミング言語またはオブジェクト指向プログラミング言語で、または望ましい場合にはアセンブリ言語または機械語で実現することができる。いずれの場合にも上記の言語は、コンパイル形の言語またはインタープリタ形の言語とすることが可能である。
【００２９】
一般的にプロセッサは、命令およびデータをＲＯＭおよび/またはＲＡＭから受け取る。コンピュータプログラム命令およびデータを具現化するのに有利な記憶装置には数多くのタイプの不揮発性記憶装置が含まれており、これには、例えば、ＥＰＲＯＭ，ＥＥＰＲＯＭおよびフラッシュ形記憶装置などの半導体記憶装置、内蔵ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスクおよびCD-ROMディスクなどが含まれる。上記の装置はいずれも特殊設計されたＡＳＩＣ（特定用途向け集積回路）によって補足するか、またはＡＳＩＣに組み込むことが可能である。
【００３０】
ここまでいくつかの実施形態について説明してきた。上記の実施形態の精神および範囲を逸脱することなくさまざまな変更を行い得ることは明らかである。開示した上記のアクティブ選択システムは、これがフィーチャで動作したのと同様に、コプラナ形、共軸形などの条件でも動作することが予想される。したがって上記以外の実現も特許請求の範囲内に含まれるものである。
【図１ａ】
0005474045.tif 000002
【図１ｂ】
0005474045.tif 000003
【図１ｃ】
0005474045.tif 000004
【図２】
0005474045.tif 000005
【図３】
0005474045.tif 000006
【図４−１】
0005474045.tif 000007
【図４−２】
0005474045.tif 000008
【図５】
0005474045.tif 000009
【図６】
0005474045.tif 000010
【図７ａ】
0005474045.tif 000011
【図７ｂ】
0005474045.tif 000012