図1のフローチャートを参照して、機械部品を設計するための、コンピュータにより実施される方法を提案する。本方法は、有限要素メッシュ(FEM)の部分集合を提供すること(S20)を含む。FEMの部分集合は、機械部品を表す。本方法はまた、FEMの部分集合に基づいて、機械部品の骨格の表現を決定すること(S30)を含む。「骨格」の定義上、骨格は、分岐(すなわち、材料の一次元拡張部分)と分岐接合部(すなわち、材料における分岐が接合する箇所)を有し、分岐接合部は、それぞれ、分岐を接合する。このような方法により、機械部品の設計が改善する。
特に本方法は、S20において、機械部品のメッシュ表現が提供され、また本方法は、S30において、機械部品に関連する別の表現、すなわち機械部品の骨格の表現を決定する。したがって、本方法は、S20で提供された機械部品を表すデータを、S30で決定されたデータで充実させることができ、それにより、ユーザに提供される新しい設計機能を伴う、機械部品の新しいタイプの表現を追加する。さらに、S30で決定されるデータは、機械部品の骨格の表現である。このように、S20においてメッシュの部分集合を提供するときに機械部品が最初に非常に粗いレベルでのみ表される場合、本方法はS30においてより高いレベルの表現、すなわち機械部品の骨格の表現を決定する。これにより、新しい設計能力、および比較的高いレベルの設計作業が可能になる。実際、本方法は、S30で決定されたデータのおかげで、機械部品の骨格レベルでの設計を可能にする。特に骨格レベルは、機械設計の分野でとりわけ関連する設計レベルである。それは、多くの状況において、機械部品は、機械設計者により、骨格という観点から見られるからである。骨格レベルの設計を可能にすることは、このように、特に機械設計においてエルゴノミクス的である。
本方法は、コンピュータにより実施される。すなわち、本方法のステップ(あるいは略全てのステップ)が少なくとも1つのコンピュータ、または類似の任意のシステムによって実行される。よって本方法のステップは、コンピュータにより、完全に自動的に、あるいは半自動的に実行される可能性がある。例えば、後述するステップS10およびS40は、ユーザとの対話操作を介して実行されてもよく、ステップS20はユーザによって(例えばユーザによってのみ)起動されてもよく、ステップS30はS20が起動されると、完全に自動的に実行されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例えば、このレベルは、ユーザが設定し、かつ/あるいは、予め定義されていてもよい。
本方法のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法を実行することである。当該システムは、本方法を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェイス(GUI)を備えていてもよい。また、メモリはデータベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分(例えば、プログラム用に1つ、場合によりデータベース用に1つ)を含む。
本方法は、一般に、部分集合を有するFEMを含むモデル化オブジェクトと骨格の表現とを操作する。モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。システムの種類に応じて、異なる種類のデータによってモデル化オブジェクトが定義されてもよい。実際、システムは、CADシステム、CAEシステム、CAMシステム、PDMシステム、および/またはPLMシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、以下に示すこのようなシステムの定義から明らかなように、システムは、CAD兼PLMシステムであってもよい。
CADシステムは、少なくとも、CATIAのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムをも意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。CADシステムは、例えば、辺や線を用い、また、場合により面や曲面を用いて、CADモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Bスプライン(NURBS)など、様々な様式で表現されてもよい。具体的には、CADファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は1つまたは複数のCADファイルに格納されていてもよい。CADシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり1メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
CADの文脈において、モデル化オブジェクトは、典型的には、3Dモデル化オブジェクト、例えば、一つの部品や部品の集合体などの製品、あるいは製品の集合体を表現するものであってもよい。「3Dモデル化オブジェクト」は、3D表現が可能なデータによってモデル化される任意のオブジェクトを意味する。3D表現は、その部品をすべての角度から見ることを可能にする。たとえば、3Dで表現された3Dモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、3Dモデル化されていない2Dアイコンについては除外される。3D表現の表示は、設計を容易にする(すなわち、設計者が作業を達成するスピードを統計的に速める)。製品の設計は製造工程の一部であるから、これによって当該産業における製造工程が迅速化する。
3Dモデル化オブジェクトは、CADソフトウェア・ソリューションやCADシステム等を用いた仮想的デザインの完了後に実世界において製造される製品、すなわち(例えば機械)部品や、部品の集合体(あるいは同様に部品の集合体。なぜなら部品の集合体は本方法の観点では一つの部品としてみることができ、また、本方法は集合体における各部品に独立して適用することができるからである)など、より一般的には任意の剛体の集合体(例えば移動機構)などの製品のジオメトリを表現してもよい。CADソフトウェア・ソリューションは、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および/または海洋石油/ガス生産、または交通を含む、限定されることのない様々な産業分野において製品の設計を可能にする。本方法により設計される機械部品は、このように、地上車両の部品(例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモーター機器、トラック、バス、電車を含む)、航空車両の部品(例えば、航空機体機器、航空宇宙機器、推進機器、防衛製品、航空路線機器、宇宙機器を含む)、海軍車両の部品(例えば、海軍用機器、商業用船舶、オフショア機器、ヨットおよび作業船、船舶用機器を含む)、一般的な機械部品(例えば、工業用製造機械、大型移動機械または機器、設置機器、産業機器製品、加工金属製品、タイヤ製造製品を含む)、または電気機械部品(例えば、家電、セキュリティおよび/または制御および/または計装製品、コンピューティングおよび通信機器、半導体、医療装置および設備を含む)などのように、任意の機械部品であり得る工業製品を表してもよい。「機械部品」という表現は、消費者製品(例えば、家具、家庭用および庭用製品、レジャー用品、ファッション用品、耐久消費財小売用品、織物類小売用品を含む)、包装(例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品包装を含む)を示してもよい(あるいはまた、示さなくてもよい)。
CADシステムは、履歴ベースのものであってもよい。この場合、モデル化オブジェクトは、さらに、ジオメトリ的特徴の履歴を含むデータによって定義される。モデル化オブジェクトは、標準的なモデリング機能(例えば押し出し、回転、切断、および/または丸め)および/または標準的な面モデリング機能(例えば、スイープ、ブレンド、ロフト、塗りつぶし、変形、および/または平滑化)を用いて、人間(例えば設計者/ユーザ)によって設計されてもよい。このようなモデル化機能をサポートするCADシステムの多くは、履歴ベースのシステムである。これは、設計機能の作成履歴が、典型的には、入力および出力リンクを介して上記ジオメトリ機能を互いに連結する非循環データフローで保存されることを意味する。履歴に基づくモデル化のパラダイムは、80年代初頭からよく知られている。モデル化オブジェクトは、2つの永続的なデータ表現によって表すことができる。すなわち、履歴とB-rep(すなわち境界表現)である。B-repは、履歴に定義された演算の結果である。モデル化オブジェクトが表現されるときにコンピュータのスクリーン上に表示される部品の形状は、B-rep(例えばそのテッセレーション)である。その部品の履歴とは、設計意図である。基本的に、履歴とは、モデル化オブジェクトに対して行われた操作に関する情報を収集したものである。複雑な部品の表示を容易にするため、B-repを履歴とともに保存してもよい。設計意図に従って部品の設計変更ができるように、履歴をB-repとともに保存してもよい。
PLMシステムは、物理的な、製造された製品(または製造される予定の製品)を表すモデル化オブジェクトの管理に適した任意のシステムをも指す。PLMシステムでは、モデル化オブジェクトは、このように、物理的な物体の製造に適したデータによって定義される。これらは、典型的には、寸法の値および/または公差の値であってもよい。物体を正しく製造するために、実際、このような値を用いるのが望ましい。
CAMソリューションとは、製品の製造データを管理するのに適した、ハードウェアのソフトウェアである、あらゆるソリューションをも指す。製造データは、一般に、製造する製品、製造工程、および必要なリソースに関するデータを含む。CAMソリューションは、製品の製造工程全体を計画し最適化するのに用いられる。例えば、実現可能性、製造工程の期間、または製造工程における特定のステップで使用され得るリソース、例えば特定のロボットの数に関する情報をCAMユーザに提供することができる。これにより、管理や必要な投資についての決定を可能にする。CAMは、CAD工程、および、場合によりCAE工程に続く工程である。このようなCAMソリューションは、ダッソー・システムズにより、DELMIA(登録商標)として提供されている。
CAEソリューションとは、モデル化オブジェクトの物理的挙動の分析に適した、ハードウェアのソフトウェアである、あらゆるソリューションをも指す。よく知られており広く用いられているCAE技術は有限要素法(Finite Element Method:FEM)であり、これは、典型的には、モデル化オブジェクトを、物理的挙動を方程式によって計算しシミュレーションできる要素に分割することを含む。このようなCAEソリューションは、ダッソー・システムズにより、SIMULIA(登録商標)として提供されている。成長するCAE技術のもう1つは、CADジオメトリデータを使用せずに異なる物理分野の複数の要素で構成される複雑なシステムのモデリングと解析を行うことを含む。CAEソリューションはシミュレーションを可能にし、それにより、製造する製品の最適化、改善および検証を可能にする。このようなCAEソリューションは、ダッソー・システムズにより、DYMOLA(登録商標)として提供されている。
PDMはProduct Data Management(生産データ管理)の略である。PDMソリューションとは、特定の製品に関するすべての種類のデータを管理するのに適した、ハードウェアのソフトウェアである、あらゆるソリューションを指す。PDMソリューションは、製品のライフサイクルにかかわるすべての関係者によって使用されてもよい。これには、主として技術者のほか、プロジェクトマネージャー、財務担当者、営業担当者、およびバイヤーも含まれる。PDMソリューションは、一般に、製品指向のデータベースに基づく。これにより、関係者が製品に関する一貫したデータを共有することが可能になり、これにより、関係者が異なるデータを用いるのを防止する。このようなPDMソリューションは、ダッソー・システムズにより、ENOVIA(登録商標)として提供されている。
図2は、本方法を実施するために用い得るシステムのGUIの一例を示しており、ここでのシステムはCADシステムである。
GUI2100は、標準的なメニューバー2110,2120、ならびに底部および側面のツールバー2140,2150を有する典型的なCADのようなインターフェースであってもよい。このようなメニューバーおよびツールバーは、ユーザが選択可能なアイコンのセットを含み、各アイコンは、当技術分野で知られているように、1つまたは複数の操作または機能に関連付けられている。これらのアイコンのいくつかは、GUI2100に表示された3Dモデル化オブジェクト2000の編集および/または作業に適合したソフトウェアツールに関連付けられており、これは、図1の方法の結果(例えばS30またはS40の実行後)であってもよい。ソフトウェアツールはワークベンチに分類することができる。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの1つは、モデル化製品2000のジオメトリ的特徴を編集するのに適した編集ワークベンチである。操作中、設計者は、例えば、オブジェクト2000の一部を予め選択し、次いで、適切なアイコンを選択することによって、操作を開始する(例えば、寸法、色などを変更する)か、ジオメトリ的制約を編集することができる。例えば、典型的なCAD操作は、スクリーン上に表示された3Dモデル化オブジェクトのパンチングまたは折り畳みのモデリングである。GUIは、例えば、表示された製品2000に関連するデータ2500を表示してもよい。図2の例では、「特徴ツリー」として表示されたデータ2500およびそれらの3D表現2000は、ブレーキキャリパおよびディスクを含むブレーキ部品に関するものである。GUIは、編集された製品の動作のシミュレーションを起動するため、または表示された製品2000の様々な属性を描画するために、例えばオブジェクトの3D定位を容易にするための様々なタイプのグラフィックツール2130,2070,2080をさらに示してもよい。カーソル2060は、ユーザがグラフィックツールを用いて対話操作ができるように、触覚デバイスによって制御されてもよい。
図3は、本システムの一例を示すものであって、当該システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。
本例のクライアントコンピュータは、内部通信バス1000に接続された中央演算処理装置(CPU)1010、および同じくバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。クライアントコンピュータは、さらに、バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたグラフィックス処理装置(GPU)1110を備える。ビデオRAM1100は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、EPROM、EEPROM及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびCD-ROMディスク1040を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、キーボードなどの触覚装置1090を含んでいてもよい。カーソル制御装置は、ユーザがディスプレイ1080上の任意の所望の位置にカーソルを選択的に位置させることを可能にするために、クライアントコンピュータ内で使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号生成装置を含む。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンは信号を生成するために使用される。あるいは、または追加的に、クライアントコンピュータシステムは、感知パッドおよび/または感知スクリーンを備えてもよい。
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
機械部品を表すモデル化オブジェクトのような「モデル化オブジェクトの設計」(「機械部品の設計」とも呼ぶ)とは、モデル化オブジェクトを作り上げる工程の少なくとも一部である任意の行為あるいは一連の行為を指す。
本方法は、本方法を実行した後に、モデル化オブジェクトにジオメトリ的に対応する物理的製品を生産する工程を含み得る製造工程に含まれていてもよい。いずれの場合も、本方法によって設計されたモデル化オブジェクトは、機械部品を表し、したがって製造オブジェクトを表す。したがって、モデル化オブジェクトは、モデル化立体(すなわち、立体を表すモデル化オブジェクト)であってもよい。製造オブジェクトは、部品などの製品であってもよいし、または部品の集合体であってもよい。本方法は、モデル化オブジェクトの設計を改善するので、本方法はまた、製品の製造を改善し、したがって、製造工程の生産性を高める。
ここで、図1の方法について詳述する。
S20で提供されるデータは、機械部品を表すFEMの部分集合である。図1の例では、このデータ構造は、機械部品を表すFEMの上記部分集合を決定するトポロジ最適化処理を実行することを本質とする、先のステップS10の結果として得られる(これに続いて、S20および/またはS30の前に、例えば、傷、ひび割れ、および/または小さな空洞(例えば1つのFEM要素程度のサイズのもの。例えば5要素未満。)を除去するためのクリーニング処理が実行されてもよい)。同じタイプのデータ構造が他の方法で得られてもよく、かつ/あるいは、トポロジ最適化が別の時間および/またはシステムで(例えば、別の人によって)実行されてもよく、また、S20において機械部品を表す部分集合を有するFEMが提供される限り、残りのステップ(S30を含む)が実行されてもよい。
このように、図1の方法は、「トポロジ最適化」技術を用いて得られた機械部品を後処理することを扱う。ユーザが結果を編集できるようにすることにメリットがある理由は、いくつか存在する。第一に、トポロジ最適化処理(例えば、流体力学、美学および/または製造を含む)によってすべての制約が考慮されるわけではなく、部品は、再加工によって改善され得る。より一般的には、既存のトポロジ最適化処理は、何らかの理由で改善可能な結果を提供する。熟練したユーザは、その構造設計スキルのおかげで、例えば分岐の追加または除去、分岐のセクションの変更、および/またはスティフナーによる分岐の置き換えを含む操作によって、結果として得られた部品を、より軽量でより耐性のある部品に再加工することができる。実際、「最適化された」部品は、熟練したユーザの出発点またはインスピレーションの基準であり得る。
トポロジ最適化処理は、FEMの部分集合を、部分集合が機械部品を表すように決定するための、広く知られた、コンピュータにより実施する方法である。トポロジの最適化は、機械部品の元のトポロジを自動的に作成する方法である。トポロジ最適化処理は、最初にFEMを提供することを含んでいてもよい。FEMは、機械部品が占有することを意図した空間の区画を表すデータ構造である。言い換えると、FEMは、例えば接続された、かつ/あるいは、凸状の空間を表し、機械部品は、そのような空間に局在化され、したがって、そのような空間の部分集合によって定義可能な、立体である。FEMは、メッシュ構造(例えば、四面体状、角錐状、または立方体状のメッシュ構造)であり、例えば2Dまたは3Dであり、FEMの要素(すなわちメッシュの単位、例えば、基本となる四面体、角錐、または立方体)は、それぞれ、空間のセルを表す。
トポロジ最適化処理は、その後、境界条件をFEMに設定することを含んでいてもよい。境界条件の設定は、FEMの対応する要素に対して、機械的制約を定義することを含んでもよく、またはそのことにより構成されていてもよい。その結果、それぞれの境界条件に対応するFEMの要素は、トポロジの最適化によって生じる部分集合に含まれる。すべての境界条件の集合は、機械部品に対する所定の機械的制約(言い換えると、機械部品が受ける機械的制約)の適用を表す。
トポロジ最適化処理は、その後、機械部品を表すジオメトリを形成するFEMの部分集合(例えば、厳密に言えば、すなわち、厳密にFEMよりも小さい)を決定することを含んでいてもよい。この決定では、境界条件および希薄さに対する抵抗に報酬を与えることができる。言い換えると、決定は、境界条件に対して低い抵抗を示す部分集合に含まれるFEMの要素の配置にペナルティを科し、また部分集合に含まれるFEMの要素の数が多いことにペナルティを科す最適化プログラムを介して実行されてもよい。そのような決定は、境界条件に関するFEMの各要素のスカラ寄与度を自動的に計算し、次にフィルタリングを実行することによって(例えば、所定の固定または可変の閾値を用いて、または閾値を設定/選択するユーザとのユーザ対話操作を介して)実行されてもよい。
例では、入力データは、強度、荷重、制約境界条件が定義された「設計空間」と名付けられた均質材料(材料密度ρがあらゆる場所で1に等しいことを意味する)からなる厚いブロックを表してもよい。設計空間の形状および境界条件は、ユーザが定義してもよい。そして、有限要素四面体メッシュを提供するために、設計空間をメッシュ化してもよい。これは、任意の最先端のメッシュ化アルゴリズムで実行することができる。次に、反復処理を以下のように実行することができる。第1のステップでは、これらの入力データを用いて有限要素解析を実行する。古典的には、構造力学の偏微分方程式を解く。一般に、制約領域の近くに高い応力が集中する。従って、設計空間内には、ほとんど応力がかからない拡張領域が存在する。これは、全体的な動作を保ちつつ、「応力なし」領域の材料密度を減少させるトポロジ最適化を行う機会である。材料密度が変更されるため、新たな有限要素解析を実行して新たな応力構成を算出する。これは停止テストに達するまで繰り返し実行される。停止テストは、次の条件のいずれか、または組み合わせが満たされるとき実施される。密度場を最適化することができず、繰り返しが所定回数に達している、かつ/あるいは所定の重量比に達している(例えば、得られた質量が、20%または30%を超える割合だけ軽い、例えば45%程度軽い)。
例では、メッシュの各四面体は、間隔[0,1]内の実数、すなわち最終密度場に関連付けることができる。値0は、四面体内に材料がないことを意味してもよい。値1は、四面体が初期均質材料で満たされていることを意味してもよい。他の密度値は、四面体において必要な材料が「より少ない」ことを意味してもよい。可変密度材料は製造の観点からは非現実的であるため、密度が小さい四面体は空の四面体として解釈されてもよい。結果として、四面体は、数値閾値0<ρ0<1に従って初期メッシュから除去することができる。密度値がρ0より小さいことを特徴とする四面体は、メッシュから除去することができる。この動作は、一般に、隆起、間隙、および分岐を生成し、したがって、初期設計空間のトポロジに大きな影響を及ぼす。これにより、いわゆる最適化トポロジが得られる。
図4~図6は、上記のようなトポロジ最適化を2Dに適用した例を示す:すなわち、表現された制約44を有する設計空間42と、メッシュ化設計空間52と、部品の機能に実際に寄与する材料の量(メッシュの黒い要素62)である。境界条件44は自明である。なお、現実の場合、解決策は、熟練した機械設計者の力の及ばないところにある。
図1の方法によってS10で実行されるトポロジ処理は、上述のように、例えば、先に述べた論文のいずれかに記載されている:「Waqas Saleem,Hu Lu,Fan Yuqing,Topology Optimization.Problem Formulation and Pragmatic Outcomes by integration of TOSCA and CAE tools,WCECS 2008,October 22-24,2008,San Francisco,USA」および「Hauessler,P,Emmrich,D,Mueller,O,Ilzhoefer,B,Nowicki,L,Albers,A,Automated topology optimization of flexible components in hybrid finite elements multibody systems using Adams/Flex and MSC.Construct,16th European ADAMS users’Conference 2001」。
ここで、前述のように、トポロジ最適化の結果得られる四面体メッシュは、少なくとも、骨格の解像度で簡単に編集することはできない。再設計と製造準備のためには編集する必要があるため、これは課題である。したがって、図1の方法は、メッシュ化トポロジの編集可能なフォーマットを提供することによってエルゴノミクスを増加させる。これは、図1の方法が、FEMの部分集合に基づいて、機械部品の骨格の表現を(例えば自動的に)決定すること(S30)を含むためである。ユーザは、望むならば(図1の例ではS40)、骨格の表現に基づく設計操作を実行することができる。このような設計操作は、骨格を編集すること、すなわち、機械部品を表す(例えば、3D)モデル化オブジェクトを骨格レベルで編集することを含んでいてもよい。これは、ユーザが、例えば、分岐の追加または除去、分岐のセクション、位置、長さ、および/または形状の変更、および/または分岐を補強材で置き換えることを含む操作により、骨格のパラメータに直接作用することができることを意味する。
骨格は実際には、定義上、分岐接合部に接続された分岐の配列であり、各分岐接合部はそれぞれの分岐につながっている。分岐は、一次元状に広がる材料の配列である。骨格を表すデータ構造は、それぞれが分岐を表す複数のデータを含む限り、任意の形式であり得る。分岐を表すこれらのデータは、例えば、後述する例のように、セクション分布に関連する案内(例えば、スプライン)曲線をそれぞれ有する、掃引された立体であってもよい。その他の任意の種類の(例えばジオメトリの)データが分岐を表してもよい。分岐を表すこれらのデータは、それぞれ、データ構造内で明確に定義され、したがって個別にアクセス可能であり、ユーザは、S40で、分岐を表すこれらのデータの任意の組合せを入力とする設計操作を実行することができる。これにより、ユーザは、例えば、分岐の追加、および/または除去、分岐の位置、長さ、形状、および/またはセクションの変更を含む、分岐パラメータの変更を行うことができる。
データ構造は、分岐の接合点を表すデータ、および/または分岐間の配置に関するデータ、例えば、どの分岐が接合されるか、および/またはどの分岐接合部がどの分岐に接合するかに関するデータを含んでいてもよい。このような場合、S40における設計が、より精密になり得る。このような骨格レベルでの編集は、例えば、ユーザが、機械部品のグラフィック表示に対して対話操作を行って分岐全体を選択し、次に選択した分岐を操作して分岐の編集を一括して行うように(例えば、一度のユーザ操作で、例えば、ドラッグ・アンド・ドロップを含むカーソル制御動作のようなグラフィカルなユーザ操作で)、グラフィカルに行うことができる。
例えば、本方法は、S30の後に、掃引された立体を含む特徴の履歴(例えば、各掃引立体は、案内曲線と関連付けられており、データは、案内曲線に沿って、各掃引立体のセクションの分布を表す)、および、フィレットなど、可能性のあるその他の特徴や、その他の任意の特徴を得るものとしてもよい。このような場合、本方法は、部分集合における100万個を超える数の要素を出力する可能性のあるトポロジ最適化の結果とは対照的に、例えば、大きなモデルの場合で、100個未満の特徴間の履歴のリストまたは表現を、機械設計者に提供することができる。
このように、本方法は、個々の分岐(および場合によっては個々の分岐接合部)を表すデータを導き、そのようなデータは、その部品を形成する局所的なジオメトリの単なる集合(例えば初期のFEMの部分集合)よりも高いレベル(または同等に、より次元が低い表現)のデータである。また、この表現は、各分岐接合部が少なくとも3つの分岐に接合するようなものであってもよいが、代わりに少なくとも1つの分岐接合部が2つの分岐にのみ接合するような表現であってもよい(設計意図に依存する)。したがって、トポロジの各分岐は単一の特徴(例えば、掃引立体)であるため、本方法は、編集に適切な意味レベルを自動的に提供することができる。これは、輪郭形状、および/または、スプライン曲線形状を変更することによって編集することができる。先行技術と比較して、より容易かつ迅速に編集を行うことができ、再設計フェーズと製造準備が削減される。
本方法がなければ、トポロジ最適化の出力を再加工するための解決策は、ユーザに、市販のCADシステムを使用して、立体またはサーフェスを再設計させることを含むかもしれない。この再設計は一から実行され、メッシュ化トポロジはインスピレーションを与える背景形状である。しかしながら、メッシュ化トポロジが非常に複雑である可能性があるため、一から立体を再設計するのは面倒で時間がかかる。また、この場合、結果を分岐レベルで編集できるとは限らない。本本法は、このような課題に関してエルゴノミクスを改善する。
本方法は、市販のCADシステムを用いて立体を構築するための入力として用いることができる骨格を提供する。たとえば、分岐を掃引特徴の案内曲線として使用できる。
S30で決定した骨格の表現は、部分集合に間引き処理を適用した結果と同じトポロジを有していてもよい。これは、決定S30が、部分集合を入力とする間引き処理を行い、その後、場合によってはトポロジを維持する他の操作(例えば、後述の例では掃引ボリュームの算出)、あるいは結果として得られるトポロジの観点から等価なスキームを実行することを本質とすることを意味する。先行技術の間引き処理は、論文「Liu,L,3D thinning on cell complexes for computing curve and surface skeletons,Master of Science,Saint Louis,Missouri,2009」および「Stangl,L,Wartzack,S,Feature based interpretation and reconstruction of structural topology optimization results,ICED15,27-30 July 2015,Politecnico di Milano,Italy」に開示されている。本方法の場合、間引き処理は、部分集合のサイズを、例えば部分集合の要素を繰り返し除去する(すなわち、部分集合の1以上の要素の除去を繰り返す)ことによって、例えば可能な限り(すなわち要素がある限り)、繰り返し縮小し、一方、トポロジが保存されないこと(しかし、例えば、そのように保存されないことを厳密には禁じていない)にペナルティを科し、例えば、部分集合によって定義される形状の内部のトポロジが保存されないことを禁止する処理である(「内部」という概念は後で定義する)。後述の例で説明するような間引き処理を実行することは、特に効率的に決定S30を実行する方法である。
間引き処理を適用した結果は、S20で提供された部分集合の部分集合に含まれ、よって、それ自体FEMの部分集合でもある。間引き処理を適用した結果の要素は、それぞれ、骨格の分岐、および/または、分岐接合部に対応する(すなわち、表す、または属する)。骨格の分岐のそれぞれに対応する、間引き処理を適用した結果の要素のうち、要素は、分岐のそれぞれの末端(すなわち端部)に対応し、例えば、四面体の(1次元配列の場合には、各末端にちょうど1つの要素が対応する(すなわち分岐の「最後」の要素)。例では、結果の各要素は、各分岐または各分岐接合部に対応する。分岐の末端に対応する各要素は、分岐点に対応するFEMの各要素、具体的には、分岐の末端が到達する分岐接合部とぶつかる(すなわち接続する)。
例においては、結果には、分岐接合部に対応する要素以外に、他の要素と厳密に2つより多くの面を共有する要素は存在しない。言い換えると、分岐接合に対応する要素のみが、間引き処理を適用した最終的な結果において、厳密に2つより多くの面を、他の要素と共有することができる。両方の要素がそれぞれジオメトリ的に一致する面(すなわち、平面外側)を有する場合、2つの要素が面を共有すると言える。例えば、四面体メッシュの場合、要素は最大で4つの面を他の要素と共有することができ、その場合、それらの面はすべて「完全」である。これにより、間引き処理では、ある意味、S20において提供された部分集合を、可能な限り間引く。
そのような例では、間引き処理を適用した結果は、隣接する要素の1次元配列のネットワークに対応し得るので、それぞれ線形に閲覧することができる。このように、決定すること(S30)は、間引き処理の結果を閲覧すること(例えば、深さ優先探索または同等の閲覧を用いる)と、閲覧中に分岐に対応する要素(例えば、分岐が可能でないことが検出されている間)と分岐接合部に対応する要素(例えば、分岐が可能であると検出された場合、例えば、厳密に2つより多い数の面を他の要素と共有する要素に遭遇した場合)とを自動的に識別することと、同じ分岐接合部(例えば、分岐接合の第1の検出から、分岐が可能でないことを検出するまで)または同じ分岐に対応する要素(例えば、分岐接合部に対応する要素の2つの連続した検出の間)を自動的にグループ化することとを、その本質としてもよい。この識別およびグループ化は、骨格の表現をそのように提供することができる。しかし、例では、決定すること(S30)は、前述および後述の詳細な掃引ボリューム算出例など、さらなるステップを含んでいてもよい。
ここで、間引き処理を適用した結果の、分岐の末端に対応する各要素は、間引き処理を適用した結果の、分岐接合部に対応する各要素と面を共有する。これは、間引き処理を適用した結果の、分岐の末端に対応すると定義することができる要素だけが、間引き処理を適用した結果の、分岐接合部に対応するそれぞれの要素と、面を共有すること意味するだけでなく、分岐の末端と分岐接合部との間の各接続点において、そのような面共有が存在することを意味する(なぜなら、分岐の末端は、間引き処理を適用した結果、対応する少なくとも1つの要素を必然的に有するからである。例えば、可能な限り間引いた四面体FEMの例では、ちょうど1つ)。「面を共有する」という表現は、ここでも、前者の要素の面が、後者の要素の面に重ね合わされる(または混合される、さらにはジオメトリ的に同一である)ことを意味する。
言い換えると、間引き処理は、結果として、局所的な非多様体の面ジオメトリ(例えば、間引き処理を適用した結果の境界面に対する非多様体の辺)を形成することによって、分岐が分岐接合部に到達するのを禁止するように構成することができる。所与のオブジェクトの局所的な非多様体の面ジオメトリは、上記境界面に対して非多様体である所与のオブジェクトの境界面上に位置するジオメトリ(すなわち、辺などのジオメトリ的実体)である。非多様体の概念はそれ自体公知であるが、後に定義する。同様に、分岐接合部が、結果における厳密に2つ以上の要素に対応する場合、間引き処理は、そのような分岐接合部が、結果において、局所的な非多様体の面ジオメトリを含むことを禁止するように構成されてもよい。また、間引き処理は、局所的な非多様体の面ジオメトリの作成を禁止してもよい。言い換えると、間引き処理の各動作ステップは、局所的な非多様体の面ジオメトリを生じさせないように制約される。より一般的には、本方法の任意のステップは、局所的な非多様体の面ジオメトリの作成を禁止してもよい(すなわち、ステップは、局所的な非多様体が作成されないように実行されるように構成される)。この局所的な非多様体の面ジオメトリの回避は、結果の精度を高める。
これにより、先行技術の間引き処理(先に述べたものなど)を改善する。実際、先行技術の間引き処理は、閉じた初期オブジェクトの正確なトポロジを保存し、そのような目的のために必要であれば局所的な非多様体の面ジオメトリを作成または維持する。これは、機械設計とトポロジ最適化の結果という文脈においては、関連するトポロジが初期のオブジェクトの内部にあるため、適切ではない。これについては後で詳述する。
例では、本方法の入力は、トポロジ最適化の結果として得られる四面体メッシュ化トポロジである。出力は、履歴ベースの特徴で作成された立体部品であり、主に、それぞれが骨格の分岐を表す掃引立体である。履歴ベースの特徴の算出には、以下のステップが含まれていてもよい。まず、傷、ひび割れ、および小さな空洞を除去するために、入力四面体メッシュにクリーニングを施す。次に、侵食のような処理(すなわち、間引き処理)によって、トポロジの間引きしたバージョンに達するまで、四面体が繰り返し除去される:すなわち「間引きメッシュ」。この間引きメッシュは、例えば線分の骨格とは対照的に、四面体からなる。次に、分岐四面体、ノード四面体用いて、接続された滑らかな曲線からなるワイヤーフレームグラフが間引きメッシュ上に構築される。このグラフは、入力された四面体メッシュの関連トポロジを捉えたものである。最後に、滑らかな曲線をスパイン曲線として用いて、編集可能な掃引立体が各分岐上に構築される。すべての掃引立体を足し合わせ、その結果として編集可能な立体が得られる。
例では、S20で提供されるFEMの部分集合は、トポロジ最適化処理の境界条件に対応する要素を有する。間引き処理は、トポロジ最適化処理の境界条件に対応する部分集合の要素の除去を禁止してもよい。言い換えると、間引き処理は、境界条件が定義された部分集合の要素を、例えばS10の時点で除去しないように構成してもよい。例えば、上記要素は、それらを除去すべきでないという事実を表すデータによってマーク付けまたはタグ付けしてもよい。このように、本方法は、処理のいちばん最初に固定の四面体を設定することによって、従来技術の間引きアルゴリズムの課題を飛び超える。当該間引きアルゴリズムではそれらを除去することはできないため、間引きした形状は、最初の形状に準拠する。これにより、開始モデルからの距離を含む複雑な基準を実装する先行技術の間引きプロセスとは対照的に、簡単な方法で、意図された骨格を得ることが可能になる。
次に、上記の説明に従った図1の方法の例について、図7~68を参照して説明する。
ここでは四面体メッシュの例について説明する。S10の入力、S10の出力、S20の入力、および/またはS20の出力は、この例の本方法において、このタイプとすることができる。
四面体メッシュMは、そのジオメトリ、およびその組み合わせ構造によって定義される。ジオメトリは3D点の有限集合である。組み合わせ構造は複数の四面体を含み、四面体は複数の三角形と複数の頂点を定義する。頂点は3D点に対する基準となる。辺は2つの頂点で定義される。三角形は3つの頂点で定義され、よって3つの辺を定義する。四面体は4つの頂点で定義され、4つの三角形と6つの辺を定義する。四面体の3D形状(三角形、辺)は、その3D点の凸包である。これは
の閉じた部分集合である。
四面体は、3D領域を定義するためにメッシュ構造に配置される。メッシュ構造は、以下の意味で有効である。すなわち、任意の2つの四面体は分離されているか、またはそれらはちょうど1つの頂点を共有しているか、またはちょうど1つの辺を共有しているか、またはちょうど1つの三角形を共有している。定義上、2つの四面体は、三角形を共有する場合に隣接している。言い換えると、四面体は重ならない。
図7~9は、頂点共有(図7)、辺共有(図8)、および三角形共有(図9)を示す。図10は、2つの隣接する四面体T1およびT2を示す。明確にするため、これらはわずかに離してある。図11~13は、それぞれ、四面体T1およびT2に関連する、三角形f1、・・・、f7、辺e1、・・・、e9、および頂点v1、・・・、v5を示す。図14は、上述の隣接する四面体に関連する組み合わせ構造を示す。これは「~が~の境界となる」という関係を捉えている。
メッシュは有効であり、各三角形は最大2つの四面体によって共有される。2つの四面体によって共有される三角形は、内部三角形と呼ばれる。1つの四面体だけの境界となる三角形は、境界三角形と呼ばれる。メッシュMの境界は、すべての境界三角形によって定義される、三角形の閉じた面である。これは境界面と呼ばれ、∂Mと表される。境界三角形を境界とする四面体は、境界四面体と呼ばれる。
図15~16は、6つの四面体(図16)によってメッシュ化された矩形ブロック(図15)を示す。図17は、内部三角形を示している。図18は、境界面を定義する境界三角形を示す。
Shape(M)で表されている四面体メッシュの形状は、その四面体のすべての形状の和集合である。これは
の閉じた部分集合である。数学的観点では、Shape(M)の内部は、Shape(M)に含まれる最大の開集合である。これはInt(Shape(M))と表される。図19は、M、∂M、Shape(M)、およびInt(Shape(M))の2Dバージョンを示す。
ここで、前述の多様体および非多様体の頂点および辺の概念について説明する。
Sを
の閉じた面とし、XをS上の点とする。定義上、すべての半径値0<r≦r
0に対して、半径r
0>0が存在する場合、点X∈Sは多様体であり、集合Sは、Xを中心とする半径rの開いたボールをちょうど2つに分割する。形式上、図20~21に示すように、集合Ball(X,r)-Sが、すべてのr∈]0,r
0]についてちょうど2つの接続成分を含む場合、Sは点Xで多様体である。
上に定義した規則的なメッシュMが与えられれば、多様体の概念を用いて、境界面∂Mの規則性を定義することができる。この文脈では、∂Mの非多様体は頂点または辺のいずれかである。
図22は、一辺を共有する6つの3D点と2つの四面体からなるメッシュMを示している。その境界面∂Mは8つの三角形を含む。十分に小さいすべてのrについて、図23に示すように、集合Ball(X,r)-∂Mは4つの成分、すなわち、右の四面体の内側A、左の四面体の内側B、周囲空間の上辺C、および周囲空間の下辺Dからなるため、共有された辺の内側の任意の点Xは非多様体である。
図24は、頂点を共有する7つの3D点と2つの四面体からなるメッシュMを示している。その境界面∂Mは8つの三角形を含む。十分に小さいすべてのrについて、集合Ball(X,r)-∂Mは3つの成分、すなわち、右の四面体の内側、左の四面体の内側、および周囲空間からなるため、共有点X∈∂Mは非多様体である。
ここで、グローバルメッシュとアクティブメッシュの概念について説明する。例における本方法を便利に実装するために、この概念を利用することができる。しかし、他の実装法も考えられる。
例における本方法は、処理の開始時に算出され、かつ、変化することのない、グローバル四面体メッシュGを、このグローバルメッシュのサブ部分(または部分集合)と共に扱うことができる。グローバルメッシュGのサブ部分Mは、Gの四面体を選択したものである。Mに四面体を追加することは、G-Mの四面体を「アクティブ」に設定することである。同様に、Mから四面体Tを除去することは、それを「非アクティブ」に設定することである。したがって、隣接関係の概念は、コンテキストを定義して使用する必要がある。四面体Tが与えられると、符号Adj(T)は、Tと三角形を共有するグローバルメッシュGのすべての四面体の集合である。符号AdjM(T)は、Tと三角形を共有するメッシュMのすべての四面体の集合である。なお、AdjM(T)は、TがMに属しているかどうかにかかわらず有意である。
ここで、S10の例について説明する。
この例では、ユーザは、(まだ知られていない)機械部品を含む材料の量である、いわゆる「設計空間」を作成する。境界条件は、伝統的な有限要素解析処理のように、設計空間上に定義される。次に、設計空間をメッシュ化し、境界条件の種類に応じて固定要素を特定する。メッシュ化された設計空間をGと表す。図25は、境界条件と共に設計空間を示す。図26はメッシュ化された設計空間である。固定要素262は太線内にある。
専用のアルゴリズムが有限要素問題を解き、密度場を算出する。これは、スカラ値F(T)がGの各メッシュTに関連付けられることを意味する。ここからは、便宜上、メッシュは四面体メッシュであるとする。非四面体メッシュを四面体メッシュに変更することが常に可能である。
大まかに言えば、小さな密度場の値F(T)は、四面体Tが実際には解に寄与せず、除去できることを意味する。逆に、高い密度値F(T)は、四面体Tが実際に解に寄与し、保持されるべきであることを意味する。最適化メッシュMは、所与の閾値より高い密度値F(T)を特徴とするGのすべての四面体Tを含む。
図27は、メッシュ化された設計空間G(白い三角形274)および固定要素(黒色の三角形276)とともに、最適化メッシュM(灰色の三角形272)を示す。
ここで、決定すること(S30)の例を、特に、図28によって示される本方法の例のフローチャートを特に参照して説明する。
例において、本方法は、S20および/またはS30の前に、最適化メッシュにクリーニングを施すことを含んでいてもよい。これについてここで説明する。
トポロジ最適化の結果として生じるメッシュは、望ましくない特異性を特徴とすることがある。この現象は、孤立した四面体を除去する可能性のある密度場に適用された閾値によって引き起こされる。これにより、材料内に小さな空隙ができる。
この問題を解決するための第1の方法は、各四面体の密度場値を隣接する値と平均することによって密度場を平滑化することである。四面体Tの密度場値をF(T)とすると、その平滑化された密度場値はF
*(T)と表され、以下により定義される。
ここで、Adj(T)はTに隣接する四面体の集合であり、混合パラメータの典型的な値はα=0.8である。
第2の(代替的または追加的な)解決策は、四面体メッシュを連続的に拡張し、侵食させることである。論文「H.J.A.M.Heijmans,Mathematical morphology:a geometrical approach in image processing,Nieuw Archief voor Wiskunde,Ser.4,Vol.10,no.3,pp.237-276(Nov.1992)」で説明されているように、先行技術から、これにより有意な大きな空洞を保存しつつ、無意味な小さな空洞を自然に排除できることが公知である。
本方法の文脈において、拡張操作は、最適化メッシュMに対して、Mの境界三角形に隣接するG-Mの全ての四面体を加えることであってもよい。結果として生じるメッシュはδ(M)で表される。侵食操作は、所与のメッシュから、境界三角形に隣接する全ての四面体を除去することであってもよい。これはε(M)で表される。正規化はε(δ(M))である。正規化したメッシュM’=ε(δ(M))は、以下の意味で安定している。す
なわち、M’=ε(δ(M’))であり、これは正規メッシュを正規化すると同じメッシ
ュが得られることを意味する。
図29は、空洞(灰色の三角形の内側の白い三角形292)を特徴とする初期メッシュM(灰色の三角形272および黒色の三角形276)を示す。図30は、対応する拡張メッシュδ(M)を示す。なお、小さな空洞が埋められている。図31は、拡張メッシュε(δ(M))の侵食を示す。明らかに、小さな空洞は埋められ、大きな空洞312を含む概形は全体的に維持される。
実際には、拡張/侵食処理は以下のように実施することができる。拡張ステップが算出されるが、侵食ステップは、以下に説明する間引き処理の第1の繰り返しに含まれる。
ここで、機械設計の文脈に合ったメッシュMの関連トポロジの概念について説明する。例における本方法では、そのような関連性に到達することができる。
理論的には、Shape(M)は物理的なオブジェクトを表すことを意図しているので、メッシュMの境界面∂Mは多様体の面であると考えられる。残念ながら、この仮説は、グローバルメッシュG内の膨大な数の四面体のため、また密度場における不可避の閾値副作用のため、現実的ではない。メッシュMは、非多様体の辺、および/または、非多様体の頂点を有することができ、本発明はこれに対処するように設計されている。
特異点をどのように考慮するか決定しなければならない。非多様体の辺(または頂点)は、理論上、厚みがゼロのゾーンであり、これは物理的な観点からは意味をなさない。厚みがゼロであることは、図32に示すように、用途に応じて、「材料がない」または「材料が非常に少ない」と解釈される。
本方法の文脈において、決定は、特異性が「材料がない」状況であるということであってもよい。この理由から、メッシュMの関連トポロジは、その内部のものであり、これは前に定義され、Int(Shape(M))で表される。この原理に従って、本方法のさらなるアルゴリズムを設計することができる。
ここで、S30における最適化メッシュの間引きの例について説明する。
メッシュMの間引きの目的は、Int(Shape(M))と同じトポロジを有する骨格構造を明らかにするために、可能な限り少ない数の四面体を特徴とするメッシュKを得ることである。これが、閉じた集合Shape(M)のトポロジを保存する他の間引きアルゴリズムと比較した際の、本方法の特異性である。さらに、境界条件をサポートする四面体は固定されていてもよい。これはすなわち、それらは除去されず、すべて、最終的なメッシュKに属することを意味する。
ここで、上述の例に従って、本方法の全体的なアルゴリズムの一例について説明する。
原理は、適切な基準(以下の擬似コードのステップ05)に従って、(固定されていない)境界四面体を繰り返し除去することである。言い換えると、間引き処理の繰り返しのそれぞれで除去される部分集合の要素は、すべて、除去が禁止されていない繰り返しのそれぞれにおける部分集合の境界要素である。
また、各繰り返しにおいて、上記間引き工程は、上記部分集合の境界要素を、上記部分集合の別の要素と共有される隣接面の数に従って、最も低い数から最も高い数の順で除去してもよい。言い換えると、隣接する三角形の数が最小であること(すなわち、面共有隣接関係の意味において)を特徴とする四面体は、優先的に除去される(以下のステップ03)。繰り返しにおけるこのような特定の順序は、関連形状(典型的には突起)が間引き中に完全に侵食され失われる従来技術の間引きとは異なり、この現象を回避するには不十分なチューニングパラメータおよび発見的方法が含まれている場合であっても、関連形状を除去しない結果に到達することを可能にする。
したがって、アルゴリズムは、以下の擬似コードとすることができる。
境界四面体が除去されないとき、アルゴリズムは終了する。結果として得られるメッシュKは最小だが、一意ではない。その形状はK0における四面体の順序に依存する。テストはこれが問題ではないことを示している。
ここで、ステップ03で境界四面体の集合を選択するための例を示す。
メッシュKの四面体Tの隣接四面体の数は|AdjK(T)|で表される。明らかに0≦|AdjK(T)|≦4である。|AdjK(T)|=4のとき、四面体TはKの境界四面体ではない。その他の場合、Kの境界四面体である。集合K0は、隣接四面体の数が最小であることを特徴とする(固定されていない)四面体を集めることによって算出される。
したがって、この選択は、以下の擬似コードとすることができる。
ここで、ステップ05で実行される論理テストの一例について説明する。
入力メッシュMの境界面∂Mは、非多様体の辺および/または頂点を特徴してもよいことが理解されなければならない。原理は、追加の非多様体の辺または頂点が作成されない限り、(固定されていない)境界四面体を削除することである。それにもかかわらず、Int(Shape(M))のトポロジが保存される限り、いくつかの既存の非多様体の状況が除去され、切断を引き起こすことがある。専用のセクションがこの現象を示す。
集合K0に集められた四面体Tが与えられ、その辺Eの1つが与えられると、第1の分析は以下のように実行されてもよい。辺Eを共有するGの全ての四面体には、四面体T自体と、Tに隣接する最大2つの四面体と、Tに隣接しない他の四面体が含まれる。
解析は、以下の論理関数の擬似コードに従って実行することができる。
「if・・・then」命令では、辺EがメッシュGの境界辺である場合、濃度テスト(|A|=2,|B|=0)が重要である。この場合、集合Aは空でもよいし、あるいは1つの四面体のみを含んでいてもよく、集合Bも同様に空でもよい。濃度テストは、メッシュGの外側が、Kに属さない四面体のように振る舞うように設計されている。
Gの境界辺ではない辺Eを考慮して、図33~34は、関数CanBeRemoved_1(K,T,E)がTRUEを返す、すべての状況を示す。四面体で共有される辺E(ドット)は、描画面に対して垂直である。値1(または値0)を持つ三角形はKに属する(またはKに属さない)。符号A、Bは、関数によって構築された四面体の集合を指す。
また、Gの境界辺ではない辺Eを考慮して、図35は、関数CanBeRemoved_1(K,T,E)がFALSEを返す、すべての状況を示す。Tを除去すると、非多様体の辺が作成される。
除去すべき四面体Tが与えられ、その頂点Vの1つが与えられるとき、第2の解析が以下のように実行される。頂点Vを共有する全ての四面体には、四面体T自体と、Tに隣接する最大3つの四面体と、Tに隣接しない他の四面体が含まれる。
解析は、以下の論理関数の擬似コードに従って実行することができる。
ここでも、「if・・・then」命令は、頂点VがメッシュGの境界辺である場合に重要な、濃度テスト(|A|=3,|B|=0)を特徴とする。この場合、集合Aは空でもよいし、あるいは1つまたは2つの四面体のみを含んでいてもよく、集合Bも同様に空でもよい。濃度テストは、メッシュGの外側が、Kに属さない四面体のように振る舞うように設計されている。
アルゴリズムのステップ05である最終テストは、候補となる四面体のすべての辺および頂点に上述の関数を適用することによって実行することができる。これは、以下の擬似コードに従って実行することができる。
そのような間引き処理について、図36~44を参照して説明する。
図36~38は、例示的な2Dメッシュ上の間引き処理の第1の繰り返しを示す。図36は、初期メッシュK=Mである。間引き処理では、白い三角形で示すように、隣接する三角形の数が最も少ない三角形を除去する。図37で除去した三角形には、隣接する三角形が1つだけある。図38で除去した三角形には、隣接する三角形が1つだけある。
繰り返しにより、図39~44に示される、メッシュKの中間バージョンが得られる。図39で除去した三角形には、隣接する三角形が2つある。図40で除去した三角形には、隣接する三角形が1つだけある。図44は、骨格メッシュ、すなわちKの最終バージョンである。Kから除去できる三角形はない。
これは、間引き処理の前に境界条件を用いて定義した固定四面体の利点を表す。これらすべての、固定され、ぶら下がっている分岐が除去されると、中央のループだけになる。
間引き処理が分かったところで、図45~51は、内部トポロジの保存を示す。図45に示す2DメッシュM’を考える。これは、2つの空洞の接合部に非多様体の頂点がある
ことを特徴としている。
M’のオブジェクトShape(M’)は、閉集合であり、図46に示すように、実際
には2つの空洞を特徴とする。逆に、開集合Int(Shape(M’))は、図47に
示すように1つの空洞のみを特徴とする。これは、空洞間の点状の接続が、内部集合を考慮して、「開かれている」ためである。
区間に関しては、閉集合Shape(M’)の2つの空洞は開集合であり、それらは互
いに素の(開いた)2つの区間からなる]a,b[∪]b,c[のように振る舞う。開集合Int(Shape(M’))の空洞は閉集合であり、単一の(閉じた)区間である[
a,b]∪[b,c]のように振舞う。このように、開いたInt(Shape(M’)
)には空洞が1つしかない。
予想されるように、間引きアルゴリズムは、図48に示すように、1つの空洞を有するメッシュK’を生成する。上で詳述したように、図49に示す構成によって、特異点の除
去が可能である。これは図50~51に示されている。
ここで、S30において決定された骨格の表現の例を、上記の間引き処理の例によって得られる結果から開始して説明する。
ここでは、ワイヤフレームの骨格の例について説明する。
ここで、線分からなるワイヤフレームの骨格を算出するために実際に骨格メッシュKを用いてもよい。最初のバージョンでは、このワイヤフレームの骨格は、一般的に、鋭い点を特徴とするが、後のステップで平滑化される場合がある。Kの各四面体は、分岐四面体またはノード四面体のいずれかである。定義上、分岐四面体はちょうど2つの四面体に隣接しており、ノード四面体は3つまたは4つの四面体に隣接し、端の四面体は1つの四面体のみに隣接している。図52は、ノード四面体Tに接合する3つの分岐を局所的に示す。
分岐の認識は、以下のように行うことができる。ワイヤフレームの骨格の定義には、固定ノード四面体、非固定ノード四面体、および非固定分岐四面体のみが関与する。K*をそのような四面体の集合とする。各分岐は、最初の未巡回(non-visited)の分岐四面体T0の位置を特定し、T0から、ノード四面体、または巡回済み(visited)の四面体まで、両側における隣接関係の伝播によって認識される。アルゴリズムを開始する前に、すべての四面体は「未巡回」に設定される。
これは、以下の擬似コードに従って実行することができる。
アルゴリズムは、すべての分岐四面体が巡回されたときに終了する。これは、各分岐四面体は一意の分岐に関連付けられていることを意味する。
同一のノード四面体で開始し終了する分岐は破棄される。ノード四面体を含まない分岐は孤立したループであり、それらも破棄される。そのような分岐を破棄すると、新たに除去可能な境界四面体が作成される可能性がある。このため、間引き処理が再度実行される。図53~54は、廃棄された閉じた分岐を点線で示す。
図55は、分岐三角形552(薄い輪郭を有する灰色)及びノード三角形554(太い輪郭を有する黒色または灰色)によって定義されるK*を示す。固定分岐と端部の三角形は図示されていない。
各ノード四面体の重心に3D点を作成することができる。次に、図56に示すように、隣接する分岐四面体を辿ることで、これらの点の間にポリラインを作成することができる。
そして、図57に示すように、端点および中間点を通るスプライン曲線を算出することによって各ポリラインを平滑化することができる。もちろん、それより多くの点がスプライン曲線の定義に含まれることがある。
ここで、前述のS30の例における掃引ボリュームの作成について説明する。
滑らかな分岐は、それぞれ、掃引立体のスプライン曲線として用いることができる。スプライン曲線に沿って掃引される外形は、可変半径円である。その中心点はスプライン曲線上にあり、半径変動は、最適化メッシュMの局所サイズを近似することによって算出される。
形式上、
をスプライン曲線とする。目標は、例えば、半径変動
のかたちでセクション分布を算出することであり得る。パラメータt∈[0,1]において、掃引ボリュームのセクションは、Q(t)を中心とし、Q(t)を通りベクトルQ’
(t)に垂直な平面内で半径r(t)を有する円である。
ここで、どのように局所サイズの近似を実行するかについての例を説明する。この情報(例えば、先に、間引き中に得られる)は、セクション分布の算出に用いることができる。
間引き処理の間、四面体の除去に関する、ある論理情報を、この目的のために格納することができる。最初に、メッシュMの各境界四面体が、識別子および一組の識別子に関連付けられてもよい。各四面体の組は、上記四面体の識別子で開始させることができる。すべての非境界四面体は、{}で表される空集合と関連付けられていてもよい。図58は、初期状態を示す。境界四面体は、0から9までの数字によって記号的に識別される。
次に、境界四面体が削除されるたびに、その集合が、それに隣接するすべての四面体の集合に追加されてもよい。図59は境界四面体0と1の除去を示す。隣接四面体の空でない集合に注目する。
間引き処理が終了すると、結果として得られる各分岐四面体Tは、一組の境界四面体識別子L(T)={i1,・・・,ib(T)}に関連付けられる。ここで、b(T)は集合L(T)における要素の数である。図60は最終的な状態を表す。
分岐四面体Tを含む分岐の、近似された局所半径r(T)は、四面体Tからその集合における四面体への平均距離である。2つの四面体の間の距離は、それぞれの平均点の間の距離である。
例えば、集合{6,7,8}に関連付けられた分岐四面体T(図61における太線の輪郭612)の局所半径は、図61に示すように、Tと境界四面体6、7、および8の平均距離である。
局所サイズの近似は、境界四面体を除去する順序に依存する。しかしながら、テストでは、これが結果として得られる形状に重大な影響は与えないことが示されている。
ここで、掃引ボリュームを構成する例について説明する。
図62を参照すると、スプライン曲線622が与えられたとき、可変半径変動は、スプライン曲線の端点および中間点での近似局所サイズを補間することによって定義される。ここでも、より多くの点が関与してもよい。結果として得られる掃引立体は、ここでは明確に定義されている。
この立体のB-Repは、回転最小化フレーム演算を用いて作成された、パラメータ化された面である。これは論文「Wang,W.,Juttler,B.,Zheng,D.,and Liu,Y.2008.Computation of rotation minimizing frame.ACM Trans.Graph.27,1,Article 2(March 2008)」に記載されているように実行できる。図63~64は、滑らかな半径変化と共に、3Dスパライン曲線を示す。図65は、対応する掃引面を示す。編集可能な立体は、古典的な履歴特徴リストに取り込まれたすべての掃引立体のブール和集合である。最終形状を滑らかにするために、自動的にフィレットを追加することができる。
図66~68は、現実の3Dの例において、骨格構造(図66)、平滑化されたワイヤフレーム構造(図67)、および掃引ボリュームを組み合わせた最終的な立体(図68)の、局所形状を示す。
ここで、S40で実行可能な立体編集の例について説明する。
結果として得られる立体を編集するには、2つの方法がある。第1の方法は、掃引ボリュームとフィレットの古典的な履歴ツリーを扱うことである。第2の方法は、立体の面、辺、および頂点と、骨格の分岐との間のリンクを維持することである。ユーザが立体の面、辺、または頂点を選択すると、関連付けられた分岐、および場合によっては残りの骨格に対して、ユーザ操作を実行することができる(例えば、分岐を移動させたり除去したりして、隣接する分岐に影響を与える)。次に、掃引ボリュームの生成、ブール演算、およびフィレットが再実行される。あるいは、いくつかのユーザ操作では、骨格構造は変更されない。たとえば、分岐のセクションが変更された場合(円形セクションから楕円形セクションに変更された場合)、掃引ボリュームとその後の演算だけが再実行される。