本開示の特徴および利点は、類似参照記号が全体を通して対応する要素を識別する、図面と併せて解釈された時に、以下に記載される発明を実施するための形態から、より明白となるであろう。図面では、類似参照数字は、概して、同一の、機能的に同様の、および/または構造的に同様の要素を示す。
本開示は、とりわけ、コンピュータ支援設計データモデルの複数の情報項目の同期化を管理するため、コンピュータ支援設計オブジェクトの同時設計を管理するため、および複数のコンピュータ支援設計アプリケーションの整合した同時動作のための方法およびシステムを対象とする。
以下の種々の実施形態の説明を読む目的で、本明細書の項およびそれぞれの内容の以下の説明が役立ち得る。
−A項は、本明細書で説明される実施形態を実践するために有用であり得る、ネットワーク環境およびコンピュータ環境を説明する。
−B項は、複数の製品設計アプリケーションとともに共通データモデルを使用し、管理するためのシステムおよび方法の実施形態を説明する。
(A.ネットワークおよびコンピュータ環境)
コンピュータ支援設計の方法およびシステムの実施形態の詳細を論議する前に、本明細書を実践するために有用であり得る、ネットワーク環境およびコンピュータ環境を簡潔に説明することが有用であり得る。ここで図1Aを参照すると、ネットワーク環境の実施形態が描写されている。概観すると、ネットワーク環境は、1つ以上のネットワーク104を介して1つ以上の遠隔マシン106a−106n(概して、サーバ106または遠隔マシン106とも呼ばれる)と通信している、1つ以上のローカルマシン102a−102n(ローカルマシン102、クライアント102、クライアントノード102、クライアントマシン102、クライアントコンピュータ102、クライアントデバイス102、エンドポイント102、またはエンドポイントノード102とも呼ばれる)とを備えている。いくつかの実施形態では、ローカルマシン102は、サーバによって提供されるリソースへのアクセスを求めるクライアントノード、および他のクライアント102a−102nのためのホスト型リソースへのアクセスを提供するサーバの両方として機能する能力を有する。
図1Aは、ローカルマシン102と遠隔マシン106との間のネットワーク104を示すが、ローカルマシン102および遠隔マシン106は、同じネットワーク104上にあり得る。ネットワーク104は、企業イントラネット、メトロポリタンエリアネットワーク(MAN)等のローカルエリアネットワーク(LAN)、またはインターネットあるいはワールドワイドウェブ等の広域ネットワーク(WAN)であり得る。いくつかの実施形態では、ローカルマシン102と遠隔マシン106との間に複数のネットワーク104がある。これらの実施形態のうちの1つでは、ネットワーク104’(図示せず)は、私的ネットワークであり得、ネットワーク104は、公衆ネットワークであり得る。これらの実施形態のうちの別の1つでは、ネットワーク104は、私的ネットワークであり得、ネットワーク104’は、公衆ネットワークであり得る。なおも別の実施形態では、ネットワーク104および104’は、私的ネットワークであり得る。さらに別の実施形態では、ネットワーク104および104’は、公衆ネットワークであり得る。
ネットワーク104は、任意の種類および/または形態のネットワークであり得、2点間ネットワーク、放送ネットワーク、広域ネットワーク、ローカルエリアネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期光ネットワーク)ネットワーク、SDH(同期デジタル階層)ネットワーク、無線ネットワーク、および有線ネットワークのうちのいずれかであり得る。いくつかの実施形態では、ネットワーク104は、赤外線チャネルまたは衛星帯等の無線リンクを備え得る。ネットワーク104のトポロジーは、バス、スター、またはリングネットワークトポロジーであり得る。ネットワーク104は、本明細書で説明される動作をサポートすることが可能である、当業者に公知であるもの等の任意のネットワークトポロジーであり得る。ネットワークは、AMPS、TDMA、CDMA、GSM(登録商標)、GPRS、またはUMTSを含む、モバイルデバイス間で通信するために使用される任意の1つまたは複数のプロトコルを利用する、携帯電話ネットワークを備え得る。いくつかの実施形態では、異なる種類のデータが、異なるプロトコルを介して伝送され得る。他の実施形態では、同じ種類のデータが、異なるプロトコルを介して伝送され得る。
いくつかの実施形態では、システムは、複数の論理的にグループ化された遠隔マシン106を含み得る。これらの実施形態のうちの1つでは、遠隔マシンの論理グループは、サーバファーム38と呼ばれ得る。これらの実施形態のうちの別の1つでは、遠隔マシン106は、地理的に分散され得る。他の実施形態では、サーバファーム38は、単一のエンティティとして運営され得る。なおも他の実施形態では、サーバファーム38は、複数のサーバファーム38を備えている。各サーバファーム38内の遠隔マシン106は、異種であり得、遠隔マシン106のうちの1つ以上は、一種類のオペレーティングシステムプラットフォーム(例えば、WINDOWS(登録商標) NT、WINDOWS(登録商標) 2003、WINDOWS(登録商標) 2008、WINDOWS(登録商標) 7、およびWINDOWS(登録商標) Server 2008 R2、その全ては、Microsoft Corp.(Redmond,Washington)によって製造されている)に従って動作することができる一方で、他の遠隔マシン106のうちの1つ以上は、別の種類のオペレーティングシステムプラットフォーム(例えば、Unix(登録商標)またはLinux(登録商標))に従って動作することができる。
各サーバファーム38の遠隔マシン106は、同じサーバファーム38の中の別の遠隔マシン106に物理的に近接する必要はない。したがって、サーバファーム38として論理的にグループ化された遠隔マシン106のグループは、広域ネットワーク(WAN)接続またはメトロポリタンエリアネットワーク(MAN)接続を使用して、相互接続され得る。例えば、サーバファーム38は、異なる大陸、または大陸、国、州、都市、キャンパス、あるいは部屋の異なる領域の中に物理的に位置する、遠隔マシン106を含み得る。サーバファーム38の中の遠隔マシン106の間のデータ伝送速度は、ローカルネットワーク(LAN)接続または何らかの形態の直接接続を使用して遠隔マシン106が接続された場合に、増加させることができる。
遠隔マシン106は、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワークアプライアンス、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、展開サーバ、SSL VPNサーバ、またはファイアウォールであり得る。いくつかの実施形態では、遠隔マシン106は、遠隔認証ダイヤルインユーザサービスを提供し、RADIUSサーバと呼ばれる。他の実施形態では、遠隔マシン106は、アプリケーションサーバとして、またはマスタアプリケーションサーバとして機能する能力を有し得る。なおも他の実施形態では、遠隔マシン106は、ブレードサーバである。さらに他の実施形態では、遠隔マシン106は、ユーザまたはクライアントコンピュータ102にコンピュータ環境へのアクセスを提供する、仮想マシンを実行する。
一実施形態では、遠隔マシン106は、アクティブディレクトリを含み得る。遠隔マシン106は、アプリケーション加速アプライアンスであり得る。遠隔マシン106がアプリケーション加速アプライアンスである実施形態について、遠隔マシン106は、ファイアウォール機能性、アプリケーションファイアウォール機能性、またはロードバランシング機能性を含む、機能性を提供し得る。いくつかの実施形態では、遠隔マシン106は、Citrix Application Networking Group(San Jose,CA)、またはSilver Peak Systems,Inc.(Mountain View,CA)、またはRiverbed Technology,Inc.(San Francisco,CA)、またはF5 Networks,Inc.(Seattle,WA)、またはJuniper Networks,Inc.(Sunnyvale,CA)によって製造される、一連のアプライアンスのうちの1つ等のアプライアンスを備えている。
いくつかの実施形態では、遠隔マシン106は、ローカルマシン102のユーザの代わりにアプリケーションを実行する。他の実施形態では、遠隔マシン106は、その内側でローカルマシン102のユーザの代わりにアプリケーションが実行される、実行セッションを提供する、仮想マシンを実行する。これらの実施形態のうちの1つでは、実行セッションは、ホスト型デスクトップセッションである。これらの実施形態のうちの別の1つでは、実行セッションは、アプリケーション、複数のアプリケーション、デスクトップアプリケーション、および1つ以上のアプリケーションが実行され得るデスクトップセッションのうちの1つ以上を含み得る、コンピュータ環境へのアクセスを提供する。
いくつかの実施形態では、ローカルマシン102は、遠隔マシン106と通信する。一実施形態では、ローカルマシン102は、サーバファーム38の中の遠隔マシン106のうちの1つと直接通信する。別の実施形態では、ローカルマシン102は、サーバファーム38の中の遠隔マシン106と通信するように、プログラム隣接アプリケーションを実行する。なおも別の実施形態では、遠隔マシン106は、マスタノードの機能性を提供する。いくつかの実施形態では、ローカルマシン102は、ネットワーク104を通して、サーバファーム38の中の遠隔マシン106と通信する。ネットワーク104上で、ローカルマシン102は、例えば、サーバファーム38の中の遠隔マシン106a−106nによってホストされる種々のアプリケーションの実行を要求し、表示するためのアプリケーション実行の結果の出力を受信することができる。いくつかの実施形態では、マスタノードのみが、要求されたアプリケーションをホストする遠隔マシン106bに関連付けられるアドレス情報を識別して提供するために必要とされる、機能性を提供する。
一実施形態では、遠隔マシン106は、ウェブサーバの機能性を提供する。別の実施形態では、遠隔マシン106aは、ローカルマシン102から要求を受信し、要求を第2の遠隔マシン106bに転送し、遠隔マシン106bからの要求への応答とともに、ローカルマシン102による要求に応答する。なおも別の実施形態では、遠隔マシン106aは、ローカルマシン102に利用可能なアプリケーションの列挙、およびアプリケーションの列挙によって識別されるアプリケーションをホストする遠隔マシン106bに関連付けられるアドレス情報を取得する。さらに別の実施形態では、遠隔マシン106は、ウェブインターフェースを使用して、ローカルマシン102への要求への応答を提示する。一実施形態では、ローカルマシン102は、識別されたアプリケーションにアクセスするように、遠隔マシン106と直接通信する。別の実施形態では、ローカルマシン102は、遠隔マシン106上の識別されたアプリケーションの実行によって生成される、表示データ等の出力データを受信する。
いくつかの実施形態では、遠隔マシン106またはサーバファーム38は、シンクライアントコンピューティングを提供するアプリケーション、または遠隔ディスプレイプレゼンテーションアプリケーション等の1つ以上のアプリケーションを実行し得る。一実施形態では、遠隔マシン106またはサーバファーム38は、METAフレームまたはCITRIX PRESENTATION SERVER製品等のCitrix Systems,Inc.によるCITRIX ACCESS SUITEの任意の部分、CITRIX XENAPP、CITRIX XENDESKTOP、CITRIX ACCESS GATEWAYといったCitrix Systems,Inc.によって製造される製品のうちのいずれか、および/またはMicrosoft Corporationによって製造されるMICROSOFT WINDOWS(登録商標)ターミナルサービスのうちのいずれかを、アプリケーションとして実行する。別の実施形態では、アプリケーションは、Citrix Systems,Inc.(Fort Lauderdale,Florida)によって開発されたICAクライアントである。なおも別の実施形態では、遠隔マシン106は、例えば、Microsoft Corporation(Redmond,Washington)によって製造されているMICROSOFT EXCHANGE等のEメールサービスを提供するアプリケーションサーバ、ウェブまたはインターネットサーバ、あるいはデスクトップ共有サーバ、あるいは協調サーバであり得る、アプリケーションを実行し得る。さらに別の実施形態では、アプリケーションのうちのいずれかは、Citrix Online Division,Inc.(Santa Barbara,California)によって提供されるGOTOMEETING、WebEx,Inc.(Santa Clara,California)によって提供されるWEBEX、またはMicrosoft Corporation(Redmond,Washington)によって提供されるMicrosoft Office LIVE MEETING等の任意の種類のホスト型サービスまたは製品を備え得る。
ローカルマシン102は、任意の種類および/または形態のウェブブラウザ、ウェブベースのクライアント、クライアント・サーバアプリケーション、シンクライアントコンピューティングクライアント、ActiveXコントロール、またはJava(登録商標)アプレット等の任意の種類および/または形態のソフトウェア、プログラム、または実行可能命令、あるいはローカルマシン102上で実行することが可能な任意の種類および/または形態の実行可能命令であり得る、アプリケーションを実行し、操作し、または別様に提供し得る。いくつかの実施形態では、アプリケーションは、遠隔マシン106上のローカルマシン102の代わりに実行される、サーバベースまたは遠隔ベースのアプリケーションであり得る。他の実施形態では、遠隔マシン106は、Citrix Systems,Inc.(Ft.Lauderdale,Florida)によって製造されるIndependent Computing Architecture (ICA)プロトコル、Microsoft Corporation(Redmond,Washington)によって製造されるRemote Desktop Protocol(RDP)、X11プロトコル、AT&T Bell Labsによって製造されるVirtual Network Computing(VNC)プロトコル、Qumranet,Inc.(Sunnyvale,CA,USAおよびRaanana,Israel)によって製造されるSPICEプロトコル、VESA(Milpitas,CA)によって製造されるNet2Displayプロトコル、Teradici Corporation(Burnaby,B.C.)によって製造されるPC−over−IPプロトコル、Wyse Technology,Inc.(San Jose,CA)によって製造されるTCXプロトコル、City of New YorkのColumbia University(New York,NY)によって開発されたTHINCプロトコル、またはDesktone,Inc.(Chelmsford,MA)によって製造されるVirtual−Dプロトコル等の、任意のシンクライアントプロトコル、プレゼンテーション層プロトコル、または遠隔表示プロトコルを使用して、ローカルマシン102への出力を表示し得る。アプリケーションは、任意の種類のプロトコルを使用することができ、それは、例えば、HTTPクライアント、FTPクライアント、Oscarクライアント、またはTelnetクライアントであり得る。なおも他の実施形態では、アプリケーションは、ソフトIP電話等のボイスオーバーインターネットプロトコル(VoIP)通信に関係する任意の種類のソフトウェアを備えている。さらなる実施形態では、アプリケーションは、ビデオおよび/またはオーディオをストリーミング配信するためのアプリケーション等のリアルタイムデータ通信に関係する任意のアプリケーションを備えている。他の実施形態では、アプリケーションは、コンピュータ支援設計(CAD)、コンピュータ支援製造(CAM)、コンピュータ支援エンジニアリング(CAE)、製品ライフサイクル管理(PLM)、プロジェクト管理、リソース管理、顧客関係管理(CRM)、あるいはデータの生成、修正、モデリング、および/または分析のための任意の他のアプリケーションに関係する任意のアプリケーションを備えている。
ローカルマシン102および遠隔マシン106は、任意の種類および形態のネットワーク上で通信し、本明細書で説明される動作を行うことが可能なコンピュータ、ネットワークデバイス、またはアプライアンス等の任意の種類および形態のコンピュータデバイスとして展開され、および/またはその上で実行され得る。図1Bおよび1Cは、ローカルマシン102または遠隔マシン106の実施形態を実践するために有用なコンピュータデバイス100のブロック図を描写する。図1Bおよび1Cに示されるように、各コンピュータデバイス100は、中央処理ユニット121と、主要メモリユニット122とを含む。図1Bに示されるように、コンピュータデバイス100は、記憶デバイス128と、インストールデバイス116と、ネットワークインターフェース118と、I/Oコントローラ123と、表示デバイス124a−nと、キーボード126と、マウス等のポインティングデバイス127とを含み得る。記憶デバイス128は、限定するものではないが、オペレーティングシステムと、ソフトウェアと、クライアントエージェント120とを含み得る。図1Cに示されるように、各コンピュータデバイス100はまた、メモリポート103、ブリッジ170、1つ以上の入力/出力デバイス130a−130n(概して、参照数字130を使用して参照される)、および中央処理ユニット121と通信しているキャッシュメモリ140等の追加のオプションの要素を含み得る。
中央処理ユニット121は、主要メモリユニット122から取り出された命令に応答し、それらを処理する、任意の論理回路である。多くの実施形態では、中央処理ユニット121は、Intel Corporation(Mountain View,California)によって製造されるもの、Motorola Corporation(Schaumburg,Illinois)によって製造されるもの、Transmeta Corporation(Santa Clara,California)によって製造されるもの、RS/6000プロセッサ、International Business Machines(White Plains,New York)によって製造されるもの、またはAdvanced Micro Devices(Sunnyvale,California)によって製造されるもの等のマイクロプロセッサユニットによって提供される。コンピュータデバイス100は、これらのプロセッサのうちのいずれか、または本明細書で説明されるように動作することが可能な任意の他のプロセッサに基づき得る。
主要メモリユニット122は、スタティックランダムアクセスメモリ(SRAM)、バーストSRAMまたは同期バーストSRAM(BSRAM)、ダイナミックランダムアクセスメモリ(DRAM)、高速ページモードDRAM(FPMDRAM)、強化DRAM(EDRAM)、拡張データ出力RAM(EDORAM)、拡張データ出力DRAM(EDO DRAM)、バースト拡張データ出力DRAM(BEDO DRAM)、強化DRAM(EDRAM)、同期DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、ダブルデータレートSDRAM(DDR SDRAM)、強化SDRAM(ESDRAM)、SyncLink DRAM(SLDRAM)、Direct Rambus DRAM(DRDRAM)、または強誘電体RAM(FRAM(登録商標))等のデータを記憶することが可能であり、任意の記憶場所がマイクロプロセッサ121によって直接アクセスすることを可能にする、1つ以上のメモリチップであり得る。主要メモリ122は、上記のメモリチップのうちのいずれか、または本明細書で説明されるように動作することが可能である任意の他の利用可能なメモリチップに基づき得る。図1Bに示される実施形態では、プロセッサ121は、システムバス150を介して主要メモリ122と通信する(以下でさらに詳細に説明される)。図1Cは、プロセッサがメモリポート103を介して主要メモリ122と直接通信する、コンピュータデバイス100の実施形態を描写する。例えば、図1Cでは、主要メモリ122は、DRDRAMであり得る。
図1Cは、主要プロセッサ121が、バックサイドバスと呼ばれることもある二次バスを介して、キャッシュメモリ140と直接通信する、実施形態を描写する。他の実施形態では、主要プロセッサ121は、システムバス150を使用してキャッシュメモリ140と通信する。キャッシュメモリ140は、典型的には、主要メモリ122よりも速い応答時間を有し、典型的には、SRAM、BSRAM、またはEDRAMによって提供される。図1Bに示される実施形態では、プロセッサ121は、ローカルシステムバス150を介して種々のI/Oデバイス130と通信する。中央処理ユニット121をI/Oデバイス130のうちのいずれかに接続するために、VESA VLバス、ISAバス、EISAバス、MicroChannel Architecture(MCA)バス、PCIバス、PCI−Xバス、PCI−Expressバス、またはNuBusを含む、種々のバスが使用され得る。I/Oデバイスがビデオディスプレイ124である実施形態については、プロセッサ121は、ディスプレイ124と通信するためにAdvanced Graphics Port(AGP)を使用し得る。図1Cは、主要プロセッサ121が、HYPERTRANSPORT、RAPIDIO、またはINFINIBAND通信技術を介してI/Oデバイス130bと直接通信する、コンピュータ100の実施形態を描写する。図1Cはまた、ローカルバスおよび直接通信が混合される、実施形態も描写し、プロセッサ121は、I/Oデバイス130bと直接通信しながら、ローカル相互接続バスを使用してI/Oデバイス130aと通信する。
多種多様のI/Oデバイス130a−130nが、コンピュータデバイス100の中に存在し得る。入力デバイスは、キーボード、マウス、トラックパッド、トラックボール、マイクロホン、およびドローイングタブレットを含む。出力デバイスは、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、および昇華型プリンタを含む。図1Bに示されるようなI/Oコントローラ123は、I/Oデバイスを制御し得る。I/Oコントローラは、キーボード126およびポインティングデバイス127、例えば、マウスまたは光学ペン等の1つ以上のI/Oデバイスを制御し得る。さらに、I/Oデバイスは、コンピュータデバイス100用の記憶および/またはインストール媒体116を提供し得る。なおも他の実施形態では、コンピュータデバイス100は、Twintech Industry,Inc.(Los Alamitos,California)によって製造されるUSB Flash Drive系列のデバイス等の手持ち式USB記憶デバイスを受け取るために、USB接続(図示せず)を提供し得る。
図1Bを再び参照すると、コンピュータデバイス100は、3.5インチ、5.25インチディスク、またはZIPディスク等のフロッピー(登録商標)ディスクを受け取るためのフロッピー(登録商標)ディスクドライブ、CD−ROMドライブ、CD−R/RWドライブ、DVD−ROMドライブ、種々の形式のテープドライブ、USBデバイス、ハードドライブ、またはソフトウェアおよびプログラムをインストールするために好適な任意の他のデバイス等の任意の好適なインストールデバイス116をサポートし得る。コンピュータデバイス100はさらに、オペレーティングシステムおよび他の関連ソフトウェアを記憶するため、およびクライアントエージェント120に関係する任意のプログラム等のアプリケーションソフトウェアプログラムを記憶するために、1つ以上のハードディスクドライブまたは独立ディスク冗長アレイ等の記憶デバイスを備え得る。随意で、インストールデバイス116のうちのいずれかはまた、記憶デバイスとして使用することもできる。加えて、オペレーティングシステムおよびソフトウェアは、ブート可能媒体、例えば、knoppix.netからのGNU/Linux(登録商標)配布として入手可能であるGNU/Linux(登録商標)用のブート可能CDである、KNOPPIX等のブート可能CDから実行することができる。
さらに、コンピュータデバイス100は、標準電話回線、LANまたはWANリンク(例えば、802.11、T1、T3、56kb、X.25、SNA、DECNET)、ブロードバンド接続(例えば、ISDN、フレームリレー、ATM、ギガビットイーサネット(登録商標)、イーサネット(登録商標)オーバーSONET)、無線接続、または上記のうちのいずれかまたは全ての何らかの組み合わせを含むが、それらに限定されない、種々の接続を通して、ネットワーク104にインターフェース接続するように、ネットワークインターフェース118を含み得る。接続は、種々の通信プロトコル(例えば、TCP/IP、IPX、SPX、NetBIOS、イーサネット(登録商標)、ARCNET、SONET、SDH、光ファイバ分散データインターフェース(FDDI)、RS232、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、CDMA、GSM(登録商標)、WiMax、および直接非同期接続)を使用して、確立することができる。一実施形態では、コンピュータデバイス100は、Secure Socket Layer(SSL)またはTransport Layer Security(TLS)、あるいはCitrix Systems,Inc.(Ft.Lauderdale,Florida)によって製造されるCitrix Gateway Protocol等の任意の種類および/または形態のゲートウェイまたはトンネリングプロトコルを介して、他のコンピュータデバイス100’と通信する。ネットワークインターフェース118は、内蔵ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、または通信が可能であり、本明細書で説明される動作を行う、任意の種類のネットワークにコンピュータデバイス100をインターフェース接続するために好適な任意の他のデバイスを備え得る。
いくつかの実施形態では、コンピュータデバイス100は、それぞれ、同じまたは異なる種類および/または形態であり得る、複数の表示デバイス124a−124nを備え得るか、またはそれらに接続され得る。そのようなものとして、I/Oデバイス130a−130nおよび/またはI/Oコントローラ123のうちのいずれかは、コンピュータデバイス100による複数の表示デバイス124a−124nの接続および使用をサポートし、有効にし、または提供するように、任意の種類および/または形態の好適なハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせを備え得る。例えば、コンピュータデバイス100は、表示デバイス124a−124nをインターフェース接続し、通信し、接続し、または別様に使用するように、任意の種類および/または形態のビデオアダプタ、ビデオカード、ドライバ、および/またはライブラリを含み得る。一実施形態では、ビデオアダプタは、複数の表示デバイス124a−124nにインターフェース接続するように、複数のコネクタを備え得る。他の実施形態では、コンピュータデバイス100は、複数のビデオアダプタを含み得、各ビデオアダプタは、表示デバイス124a−124nのうちの1つ以上に接続される。いくつかの実施形態では、コンピュータデバイス100のオペレーティングシステムの任意の部分が、複数の表示デバイス124a−124nを使用するために構成され得る。他の実施形態では、表示デバイス124a−124nのうちの1つ以上は、例えば、ネットワークを介して、コンピュータデバイス100に接続されるコンピュータデバイス100aおよび100b等の1つ以上の他のコンピュータデバイスによって提供され得る。これらの実施形態は、コンピュータデバイス100用の第2の表示デバイス124aとして別のコンピュータの表示デバイスを使用するように設計および構築される、任意の種類のソフトウェアを含み得る。当業者であれば、コンピュータデバイス100が複数の表示デバイス124a−124nを有するように構成され得る、種々の方法および実施形態を認識および理解するであろう。
さらなる実施形態では、I/Oデバイス130は、USBバス、Apple Desktopバス、RS−232シリアル接続、SCSIバス、FireWireバス、FireWire 800バス、イーサネット(登録商標)バス、AppleTalkバス、ギガビットイーサネット(登録商標)バス、非同期転送モードバス、HIPPIバス、スーパーHIPPIバス、SerialPlusバス、SCI/LAMPバス、FibreChannelバス、またはシリアルアタッチド小型コンピュータシステムインターフェースバス等の、システムバス150と外部通信バスとの間のブリッジであり得る。
図1Bおよび1Cで描写される種類のコンピュータデバイス100は、典型的には、タスクのスケジューリングおよびシステムリソースへのアクセスを制御する、オペレーティングシステムの制御下で動作する。コンピュータデバイス100は、MICROSOFT WINDOWS(登録商標)オペレーティングシステムのバージョンのうちのいずれか、Unix(登録商標)およびLinux(登録商標)オペレーティングシステムの異なるリリース、Macintoshコンピュータ用のMAC OSの任意のバージョン、任意の組み込みオペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースオペレーティングシステム、任意の専有オペレーティングシステム、移動型コンピュータデバイス用の任意のオペレーティングシステム、またはコンピュータデバイス上で実行し、本明細書で説明される動作を行うことが可能な任意の他のオペレーティングシステム等の任意のオペレーティングシステムを実行することができる。典型的なオペレーティングシステムは、とりわけ、その全てがMicrosoft Corporation(Redmond,Washington)によって製造されている、WINDOWS(登録商標) 3.x、WINDOWS(登録商標) 95、WINDOWS(登録商標) 98、 WINDOWS(登録商標) 2000、WINDOWS(登録商標) NT 3.51、WINDOWS(登録商標) NT 4.0、WINDOWS(登録商標) 7、WINDOWS(登録商標) CE、WINDOWS(登録商標) XP、およびWINDOWS(登録商標) VISTA、Apple Inc.(Cupertino,California)によって製造されるMAC OS、International Business Machines(Armonk,New York)によって製造されるOS/2、Caldera Corp.(Salt Lake City,Utah)によって配布される自由に利用可能なオペレーティングシステムであるLinux(登録商標)、あるいは任意の種類および/または形態のUnix(登録商標)オペレーティングシステムを含むが、それらに限定されない。
コンピュータデバイス100は、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、手持ち式コンピュータ、携帯電話または他の携帯用電気通信デバイス、メディア再生デバイス、ゲームシステム、移動型コンピュータデバイス、あるいは通信が可能であり、本明細書で説明される動作を行うのに十分なプロセッサ能力およびメモリ容量を有する、任意の他の種類および/または形態のコンピュータ、電気通信、またはメディアデバイスであり得る。例えば、コンピュータデバイス100は、Apple Inc.(Cupertino,California)によって製造されるIPOD群のデバイス、Sony Corporation(Tokyo,Japan)によって製造されるPLAYSTATION 2、PLAYSTATION 3、またはPERSONAL PLAYSTATION PORTABLE(PSP)デバイス、Nintendo Co.,Ltd.(Kyoto,Japan)によって製造されるNINTENDO DS、NINTENDO GAMEBOY、NINTENDO GAMEBOY ADVANCED、またはNINTENDO REVOLUTIONデバイス、あるいはMicrosoft Corporation(Redmond,Washington)によって製造されるXBOXまたはXBOX 360デバイスを備え得る。
いくつかの実施形態では、コンピュータデバイス100は、デバイスと整列する、異なるプロセッサ、オペレーティングシステム、および入力デバイスを有し得る。例えば、一実施形態では、コンピュータデバイス100は、Palm,Inc.によって製造されるTREO 180、270、600、650、680、700p、700w/wx、750、755p、800w、Centro、またはProスマートフォンである。これらの実施形態のうちのいくつかでは、TREOスマートフォンは、PalmOSオペレーティングシステムの制御下で操作され、スタイラス入力デバイスならびに方向ナビゲータデバイスを含む。
他の実施形態では、コンピュータデバイス100は、その全てがMotorola Corp.(Schaumburg,Illinois)によって製造されている、i55sr、i58sr、i85s、i88s、i90c、i95cl、i335、i365、i570、I576、i580、i615、i760、i836、i850、i870、i880、i920、i930、ic502、ic602、ic902、i776、またはim1100、Kyocera(Kyoto,Japan)によって製造される6035または7135、あるいはSamsung Electronics Co.,Ltd.(Seoul,Korea)によって製造されるi300またはi330等の、JAVA(登録商標)使用可能携帯電話または携帯情報端末(PDA)等のモバイルデバイスである。いくつかの実施形態では、コンピュータデバイス100は、Nokia(Finland)によって、またはSony Ericsson Mobile Communications AB(Lund,Sweden)によって製造されるモバイルデバイスである。
なおもさらなる実施形態では、コンピュータデバイス100は、Blackberry 7100系、8700系、7700系、7200系、Blackberry 7520、Blackberry PEARL 8100、8700系、8800系、Blackberry Storm、Blackberry Bold、Blackberry Curve 8900、およびBlackberry Pearl Flipを含む、Research In Motion Limitedによって製造されるデバイス等のBlackberry手持ち式またはスマートフォンである。さらに他の実施形態では、コンピュータデバイス100は、Microsoft Windows(登録商標) Mobile Softwareをサポートする、スマートフォン、ポケットPC、ポケットPCフォン、または他の手持ち式モバイルデバイスである。また、コンピュータデバイス100は、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、手持ち式コンピュータ、携帯電話、任意の他のコンピュータ、あるいは通信が可能であり、本明細書で説明される動作を行うのに十分なプロセッサ能力およびメモリ容量を有する、他の形態のコンピュータまたは電気通信デバイスであり得る。
いくつかの実施形態では、コンピュータデバイス100は、デジタルオーディオプレーヤである。これらの実施形態のうちの1つでは、コンピュータデバイス100は、Apple Inc.(Cupertino,California)によって製造される、Apple IPOD、IPOD Touch、IPOD NANO、およびIPOD SHUFFLE系列のデバイス等のデジタルオーディオプレーヤである。これらの実施形態のうちの別の1つでは、デジタルオーディオプレーヤは、携帯用メディアプレーヤおよび大容量記憶デバイスの両方として機能し得る。他の実施形態では、コンピュータデバイス100は、Samsung Electronics America(Ridgefield Park,NJ)によって製造されるDigitalAudioPlayer Select MP3プレーヤ、あるいはMotorola Inc.(Schaumburg,IL)によって製造されるMotorola m500またはm25 Digital Audio Player等のデジタルオーディオプレーヤである。なおも他の実施形態では、コンピュータデバイス100は、Creative Technologies Ltd.によって製造されるZen Vision W、Zen Vision系、Zen Portable Media Centerデバイス、またはDigital MP3系列のMP3プレーヤ等の携帯用メディアプレーヤである。さらに他の実施形態では、コンピュータデバイス100は、MP3、WAV、M4A/AAC、WMA保護付きAAC、AIFF、Audibleオーディオブック、Apple Losslessオーディオファイル形式、ならびに.mov、.m4v、および.mp4 MPEG−4(H.264/MPEG−4 AVC)ビデオファイル形式を含む、それらに限定されない、ファイル形式をサポートする携帯用メディアプレーヤまたはデジタルオーディオプレーヤである。
いくつかの実施形態では、コンピュータデバイス100は、デジタルオーディオプレーヤまたは携帯用メディアプレーヤと組み合わせたスマートフォン等のデバイスの組み合わせを備えている。これらの実施形態のうちの1つでは、コンピュータデバイス100は、Motorola RAZRまたはMotorola ROKR系列の複合デジタルオーディオプレーヤおよびスマートフォンである。これらの実施形態のうちの別の1つでは、コンピュータデバイス100は、Apple Inc.(Cupertino,California)によって製造されるiPhone系列のスマートフォンの中のデバイスである。
一実施形態では、コンピュータデバイス102aは、遠隔マシン106の機能性をクライアント102bに提供しながら、遠隔マシン106からリソースを要求し得る。そのような実施形態では、コンピュータデバイス102aは、(サーバと呼ばれ得る)遠隔マシン106から受信されたデータに対してクライアントと呼ばれ得、コンピュータデバイス102aは、第2のクライアント102bに対してサーバと呼ばれ得る。別の実施形態では、クライアント102は、クライアント102のユーザの代わりに遠隔マシン106からリソースを要求し得る。
図1Dに示されるように、コンピュータデバイス100は、複数のプロセッサを備え得、命令の同時実行のため、または1つよりも多くのデータについての1つの命令の同時実行のための機能性を提供し得る。いくつかの実施形態では、コンピュータデバイス100は、1つ以上のコアを伴う並列プロセッサを備え得る。これらの実施形態のうちの1つでは、コンピュータデバイス100は、単一のグローバルアドレス空間としての全ての利用可能なメモリにアクセスする、複数のプロセッサおよび/またはプロセッサコアを伴う共有メモリ並列デバイスである。これらの実施形態のうちの別の1つでは、コンピュータデバイス100は、それぞれローカルメモリのみにアクセスする、複数のプロセッサを伴う分散型メモリ並列デバイスである。これらの実施形態のうちのなおも別の1つでは、コンピュータデバイス100は、共有されるいくらかのメモリ、および特定のプロセッサまたは一部のプロセッサのみによってアクセスすることができるいくらかのメモリの両方を有する。これらの実施形態のうちのなおもさらに別の1つでは、マルチコアマイクロプロセッサ等のコンピュータデバイス100は、2つ以上の独立プロセッサを、しばしば単一の集積回路(IC)である、単一のパッケージに組み込む。これらの実施形態のうちのさらに別の1つでは、コンピュータデバイス100は、CELL BROADBAND ENGINEアーキテクチャを有し、Powerプロセッサ要素と、複数の相乗的処理要素とを含む、チップを含み、Powerプロセッサ要素および複数の相乗的処理要素は、要素相互接続バスと呼ばれ得る、内部高速バスによってともに連結される。
いくつかの実施形態では、プロセッサは、複数のデータについての単一の命令を同時に実行するための機能性(SIMD)を提供する。他の実施形態では、プロセッサは、複数のデータについての複数の命令を同時に実行するための機能性(MIMD)を提供する。なおも他の実施形態では、プロセッサは、単一のデバイスでSIMDおよびMIMDコアの任意の組み合わせを使用し得る。
いくつかの実施形態では、コンピュータデバイス100は、グラフィックス処理ユニットを備え得る。図1Eで描写される、これらの実施形態のうちの1つでは、コンピュータデバイス100は、少なくとも1つの中央処理ユニット121と、少なくとも1つのグラフィックス処理ユニットとを含む。これらの実施形態のうちの別の1つでは、コンピュータデバイス100は、少なくとも1つの並列処理ユニットと、少なくとも1つのグラフィックス処理ユニットとを含む。これらの実施形態のうちのなおも別の1つでは、コンピュータデバイス100は、任意の種類の複数の処理ユニットを含み、複数の処理ユニットのうちの1つは、グラフィックス処理ユニットを備えている。
一実施形態では、リソースは、プログラム、アプリケーション、ドキュメント、ファイル、複数のアプリケーション、複数のファイル、実行可能プログラムファイル、デスクトップ環境、コンピュータ環境、またはローカルコンピュータデバイス102のユーザに利用可能にされる他のリソースであり得る。リソースは、直接的にローカルコンピュータデバイス102上での従来のインストール、アプリケーションストリーミングのための方法を介したローカルコンピュータデバイス102への配信、第3のコンピュータデバイス106b上でのリソースの実行によって生成され、プレゼンテーション層プロトコルを介してローカルコンピュータデバイス102に伝達される出力データのローカルコンピュータデバイス102への配信、遠隔コンピュータデバイス106上で実行する仮想マシンを介したリソースの実行によって生成される、出力データのローカルコンピュータデバイス102への配信、あるいはUSBデバイス等のローカルコンピュータデバイス102に接続される可撤性記憶デバイスからの実行、またはローカルコンピュータデバイス102上で実行し、出力データを生成する仮想マシンを介した実行を含むが、それらに限定されない、複数のアクセス方法を介して、ローカルコンピュータデバイス102に配信され得る。いくつかの実施形態では、ローカルコンピュータデバイス102は、リソースの実行によって生成された出力データを別のクライアントコンピュータデバイス102bに伝送する。
いくつかの実施形態では、ローカルコンピュータデバイス102のユーザは、遠隔コンピュータデバイス106に接続し、遠隔コンピュータデバイス106上で生成される、複数のデータオブジェクトを含む、遠隔デスクトップ環境のローカルバージョンの表示をローカルコンピュータデバイス102上で視認する。これらの実施形態のうちの1つでは、少なくとも1つのリソースは、遠隔コンピュータデバイス106によって(または第2の遠隔コンピュータデバイス106bによって)ユーザに提供され、遠隔デスクトップで表示される。しかしながら、選択によって、あるいは方針または技術的要件により、ユーザがローカルコンピュータデバイス102上で実行するリソースがあり得る。これらの実施形態のうちの別の1つでは、ローカルコンピュータデバイス102のユーザは、別個のマシンによって提供されるリソースの別個のデスクトップ環境の代わりに、ユーザに利用可能なリソースの全てへのアクセスを提供する、統合デスクトップ環境を好む。例えば、ユーザは、複数のグラフィック表示間をナビゲートすることが、紛らわしく、生産的に使用しにくいと感じる場合がある。または、ユーザは、異なるマシンによって提供される別のリソースと併せて、1つのマシンによって提供される1つのアプリケーションによって生成されるデータを使用することを希望し得る。これらの実施形態のうちのなおも別の1つでは、遠隔リソースおよびローカルリソースの表示を統合する遠隔デスクトップ環境と相互作用することによって、リソースの実行、ウィンドウウィング移動、アプリケーション最小化/最大化、ウィンドウのサイズ変更、リソース実行の終了に対する要求が制御され得る。これらの実施形態のうちのさらに別の1つでは、アプリケーション、またはローカルコンピュータデバイス102上で実行されるリソース、および遠隔コンピュータデバイス106上で実行されるリソースを含む、統合デスクトップ環境を介してアクセス可能である他のリソースが、単一のデスクトップ環境内に示される。
一実施形態では、遠隔コンピュータデバイス106からのデータオブジェクトは、ローカルコンピュータデバイス102によって生成されるデスクトップ環境に組み込まれる。別の実施形態では、遠隔コンピュータデバイス106は、統合デスクトップを維持する。なおも別の実施形態では、ローカルコンピュータデバイス102は、統合デスクトップを維持する。
いくつかの実施形態では、単一の遠隔デスクトップ環境204が表示される。これらの実施形態のうちの1つでは、遠隔デスクトップ環境204は、フルスクリーンデスクトップとして表示される。他の実施形態では、複数の遠隔デスクトップ環境204が表示される。これらの実施形態のうちの1つでは、遠隔デスクトップ環境のうちの1つ以上は、1つ以上の表示デバイス124上に非フルスクリーンモードで表示される。これらの実施形態のうちの別の1つでは、遠隔デスクトップ環境は、個々の表示デバイス上にフルスクリーンモードで表示される。これらの実施形態のうちのなおも別の1つでは、遠隔デスクトップ環境のうちの1つ以上は、1つ以上の表示デバイス124上にフルスクリーンモードで表示される。
(B.複数の製品設計アプリケーションとともに共通データモデルを使用し、管理するためのシステムおよび方法)
製品設計は、典型的には、設計概念から完成した製品への開発の間に、多くの異なるアプリケーションを使用する、多くのユーザおよび設計者を伴う。図2Aを簡潔に参照すると、2つの概念エンドポイント間の設計フローの実施形態のブロック図が示されている。エンタープライズリソースプラニング(ERP)アプリケーション、製品ライフサイクル管理(PLM)アプリケーション、幾何学形状を編集する直接モデリングコンピュータ支援設計(CAD)アプリケーションまたはパラメトリックモデリングCADアプリケーション、あるいは製品アセンブリアプリケーション等の異なるアプリケーションが、設計から製品へと移動する際に種々の点で使用され得る。異なるアプリケーションは、所望の機能性に応じて使用され、使用しやすさ、能力、複雑性、学習曲線、および種々の形式で情報を表示する能力においてトレードオフを有する。
依然として図2Aを参照すると、種々のステップがアプリケーションのユーザによって講じられ得、修正されるにつれて、設計が種々のバージョン(a1−a3、p1−p3、e1−e3、g1−g3)を通過するように、修正が設計に行われ得る。設計の経過中に使用される設計および製品の2つの概念エンドポイント間の経路のセットは、製品またはモデルのデータのサブセットであり得る「情報項目」を表し得る。例えば、図2Bを簡潔に参照すると、パラメトリックモデリングCADアプリケーション202(以下でさらに詳細に論議される)のユーザは、1つ以上の変化例(g1−g3)を通過する、モデルの幾何学形状データを修正し得る。同様に、可視化アプリケーション216(同様に以下でさらに詳細に論議される)のユーザは、1つ以上の変化例(gr1−gr3)を通過する、モデルのグラフィックスデータを修正し得る。
インポートされ、エクスポートされ、各アプリケーション間で変換される、別個のデータモデルおよびオブジェクトを使用する時に、設計履歴および意図に関する情報が失われる場合がある。加えて、複数のユーザがモデルに対して作業するにつれて、どのデータのサブセットのどのバージョンが最新であるか、または設計プロセスの中の同等の段階にあるかという指示を伴わずに、多くの異なるバージョンが作成され得る。例えば、設計者は、モデルの幾何学形状を生成し、分析のためにエンジニアに、および潜在顧客のフィードバックを得るために販売員にモデルを伝えて、モデルの3つの異なるバージョンを作成し得る(CADモデラによって使用可能な形式の1つのバージョン、工学的分析プログラムによって使用可能な形式の1つのバージョン、ならびに可視化および注釈アプリケーションによって使用可能な形式の1つのバージョン)。販売員は、モデルに注釈を付けて、第4のバージョンを作成し、注釈付きのモデルを設計者によって使用可能な形式に再びエクスポートして、第5のバージョンを作成し得る。エンジニアは、工学的標準に従うようにモデルに種々の修正を行って、第6のバージョンを作成し得る。次いで、エンジニアが、この標準準拠バージョンを視認および注釈のために販売員によって使用可能な形式にエクスポートする場合、モデルの多くの異なるバージョンが迅速に存在することができ、取り組まれ、渡されているモデルが「最新」であることを確実にするために、組織の中で慎重な管理作業を必要とする。
整合性管理のための1つの解決策は、オブジェクトが変換される必要がないように、アプリケーション間で共通データモデルを使用することである。さらなる解決策は、幾何学形状データおよびグラフィックス等の製品モデルの種々の側面を対象とした複数のオブジェクトのサブパーツまたは「チャプタ」を含むことである。以下でさらに詳細に論議される、この解決策の実施形態では、アプリケーションが同じ製品モデルのサブパーツに対して作業することができるため、共通データモデルを使用する製品モデルは、複数のアプリケーションの間で渡され、同期化される必要がない。図2Cには、共通データモデルのサブパーツに対する変更を識別し、記憶することの実施形態のブロック図が示されている。概観すると、幾何学形状またはアセンブリ情報等の製品モデルの各情報項目または側面は、識別子またはIDのセットを含む。IDは、1つ以上のアプリケーションによって行われる情報項目に対する変更の経路またはセットを表す。いくつかの実施形態では、IDは、多くのアプリケーションによって共有または修正することができる。アプリケーションは、IDを挿入または削除することによって、情報項目を修正し得る。いくつかの実施形態では、各IDまたはIDのサブパーツは、情報項目のバージョンに対応し、完全なデータのセット、あるいは以前のバージョンからの差分または異なるセットを含み得る、バージョンを表すデータに対応し得、またはそれに関連付けられ得る。
上述のように、図2Bを再び簡潔に参照すると、IDは、複数のアプリケーションによって共有され得る。例えば、一実施形態では、パラメトリックモデリングCADアプリケーション202は、可視化アプリケーション216とIDを共有し得る。これは、例えば、モデルのグラフィックスと幾何学形状データとの間の関係、または幾何学形状データへのグラフィックスデータの従属性により、行われ得る。
図2Dは、共通データモデル220を使用した、アプリケーション一式の実施形態のブロック図である。概観すると、アプリケーション一式は、全て共通データモデル220を使用し得る、直接モデリングCADアプリケーション200、パラメトリックモデリングCADアプリケーション202、工学的分析アプリケーション204、構成構築アプリケーション206、構成モデリングアプリケーション208、アセンブリモデリングアプリケーション210、2次元または2D概念アプリケーション212、および可視化アプリケーション214のうちのいくつか、または全てを含み得る。
依然として図2Dをさらに詳細に参照すると、いくつかの実施形態では、アプリケーション一式は、直接モデリングCADアプリケーション200を含み得る。一実施形態では、直接モデリングCADアプリケーション200は、モデルの幾何学的データの直接操作のためのプログラム、アプリケーション、サービス、または実行可能コードを備え得る。したがって、エンジニアは、設計意図および要素の連合を考慮する必要がない。これは、カスタムまたは1個限りの製品の急速開発サイクルおよび迅速な作成、ならびに非常に大型の高度に詳細なアセンブリの構築を可能にし得る。本明細書では直接モデリングと呼ばれているが、この技法は、明示的モデリングと呼ばれることもある。当業者であれば、使用される用語にかかわらず、直接または明示的モデリングは、設計意図、履歴、および連合関係にとらわれない、またはそれらを知らない、幾何学形状の直接操作のための幾何学形状ベースのパラダイムであると理解できるであろう。直接モデリングは、間接設計操作と呼ばれることもある、幾何学的形状を編集するためにダイアログボックスにデータを入力することとは対照的に、幾何学的形状を手動で押す、引く、または修正することを指す、直接設計操作と混同されるべきではない。したがって、直接設計操作および間接またはダイアログボックス設計操作が、ユーザインターフェースにデータを入力する方法を指す一方で、したがって、直接または明示的モデリングおよびパラメトリックモデリングは、モデリングパラダイムを指す。
いくつかの実施形態では、アプリケーション一式は、パラメトリックモデリングCADアプリケーション202を含み得る。一実施形態では、直接モデリングCADアプリケーション200は、モデルの幾何学的データの特徴ベースの操作のためのプログラム、アプリケーション、サービス、または実行可能コードを備え得る。連合パラメトリックモデリング、特徴ベースのモデリング、または履歴ベースのモデリングと呼ばれることもある、パラメトリックモデリングでは、幾何学形状が、2ステッププロセスを通して作成される。ユーザは、押出し、穴、切断、隅肉、面取り、丸、およびその他を含む、特徴構築の使用を通して、幾何学形状構築レシピを定義する。パラメトリック幾何学形状エンジンは、これらのレシピを解釈し、モデリングおよび/または表示エンジンによる表示のためにモデルの幾何学形状を作成する。これらのレシピは、時には特徴履歴と呼ばれ得、モデル化オブジェクトが設計されるにつれて、最終モデル化オブジェクトをモデル化する際に利用される特徴の一連の異なる組み合わせを備え得る。
直接モデリングと違って、パラメトリックモデリングが動作の順序または履歴を記憶するため、特徴間の関係が定義され得る。したがって、レシピの中の特徴の順序を変更することは、要素作成の順序が無関係である直接モデリングと違って、モデルに劇的な影響を及ぼす場合がある。しかしながら、このアプローチは、ユーザが命令リストの中の初期の特徴を編集することを可能にし、幾何学形状エンジンは、モデルを通して影響を再計算する。例えば、パラメトリックCADモデラでは、ユーザが押出しプレートを作成し、プレートの軸の中間点上に中心を置くように穴を定義し、後にプレートの寸法を変更する場合、幾何学形状エンジンは、中間点上に中心を置いたままとなるように穴を移動させ得る。しかしながら、直接CADモデラでは、穴を配置した後にプレートの面を伸張することにより、穴を移動させず、中心から外れて位置させる場合がある。
いくつかの実施形態では、アプリケーション一式は、工学的分析アプリケーション204を含み得る。一実施形態では、工学的分析アプリケーション200は、基礎的CAD幾何学形状にマップされた、線形静的、モード、座屈、接触、および定常状態熱分析を含む、分析をモデルに行うためのプログラム、アプリケーション、サービス、または実行可能コードを備え得る。例えば、一実施形態では、工学的分析アプリケーション200のユーザが、3次元モデルの質量または重心を決定し得る。
いくつかの実施形態では、アプリケーション一式は、構成構築アプリケーション206を含み得る。一実施形態では、構成構築アプリケーション206は、プロジェクト提案、概念および市場要件、部品表(BOM)変更、設計フィードバック、カスタマイズオプション、バリアント選択、または他の製品構成情報を作成、解釈、および/または修正するためのプログラム、アプリケーション、サービス、または実行可能コードを備え得る。いくつかの実施形態では、構成構築アプリケーション206は、構成要素オブジェクトが、最終製品を生産するための単純または精巧な構造に組み込まれることを可能にし得る。一実施形態では、構成構築アプリケーション206は、製品開発システム(PDS)の一部を備え得る。
いくつかの実施形態では、アプリケーション一式は、構成モデリングアプリケーション208を含み得る。一実施形態では、構成モデリングアプリケーション208は、製品設計のカスタム構成の可視化およびモックアップを行うためのプログラム、アプリケーション、サービス、または実行可能コードを備え得る。いくつかの実施形態では、構成モデリングアプリケーション208は、部品表、費用提案、文書化、または製品の選択された構成に関する他の情報を出力するための機能性を備え得る。
いくつかの実施形態では、アプリケーション一式は、アセンブリモデリングアプリケーション208を含み得る。一実施形態では、アセンブリモデリングアプリケーション208は、製品の複数のモデル化オブジェクトの仮想アセンブリを可視化し、分析するためのプログラム、アプリケーション、サービス、または実行可能コードを備え得る。例えば、一実施形態では、ユーザは、携帯電話の裏板、面板、キーパッド、画面、アンテナ、バッテリ、および内部回路基板等の製品の種々の部品が、どのようにして一緒に嵌め合うかを調査するために、アセンブリモデリングアプリケーション208を使用し得る。いくつかの実施形態では、ユーザは、製品内の個々の構成要素を表す複数のCADファイルとともに、アセンブリモデリングアプリケーションを使用し得る。一実施形態では、アセンブリモデリングアプリケーションは、モデルのシェルまたは外面等の処理の速度および効率のために、CADモデルの削減された一部のデータをユーザに提示し得る。いくつかの実施形態では、アセンブリモデリングアプリケーションは、製品モデルの部品の絶対または相対的位置付け情報を利用し得、あるいは制約に応答して構成要素を位置付け得る。例えば、1つのそのような実施形態では、面板上のネジ穴は、裏板上の対応するネジ穴に隣接し、かつそれと軸方向に整列させられるように制約され得る。
いくつかの実施形態では、アプリケーション一式は、2次元(2−Dまたは2Dと様々に呼ばれる)概念アプリケーション212を含み得る。一実施形態では、2次元概念アプリケーション212は、2次元設計またはスケッチの作成、分析、および修正のためのプログラム、アプリケーション、サービス、または実行可能コードを備え得る。いくつかの実施形態では、ユーザは、製品の平面を設計するために、2次元概念アプリケーション212を使用し得る。次いで、結果として生じる2次元モデルは、直接モデリングCADアプリケーション200またはパラメトリックモデリングCADアプリケーション202等の3次元モデラに組み込まれ、3次元に押し出され、または引き出され得る。
いくつかの実施形態では、アプリケーション一式は、可視化アプリケーション214を含み得る。一実施形態では、可視化アプリケーション214は、CADモデルを可視化し、注釈を付け、操作するためのプログラム、アプリケーション、サービス、または実行可能コードを備え得る。多くの実施形態では、可視化アプリケーション214は、マネージャが、電気CAD(ECAD)アプリケーションにおいて電気技師によって作成されるモデルの部品、および機械CAD(MCAD)アプリケーションにおいて機械技師によって作成されるものを、これらのアプリケーションの異なる能力にかかわらず、視認することを可能にし得る。可視化アプリケーションは、大型の複雑なアセンブリおよびモデルを視認するための機能性を提供し得る。可視化アプリケーションがパラメトリック再生を行っていないため、必要処理が削減され、したがって、より大型かつ複雑なモデルが表示され、操作され得る。多くの実施形態では、可視化アプリケーション214は、動的または動画モデルを表示するための機能性を備え得る。
いくつかの実施形態では、アプリケーション一式の中の各アプリケーション200−214は、共通データモデル220を利用し得る。以下でさらに詳細に論議される、一実施形態では、共通データモデル220は、2Dおよび3D幾何学形状データ、分析データ、材料選択、テクスチャ、および塗料オプションを含む外観データ、および構成要素配置データを含む、上記で論議されるような1つ以上の情報項目を含み得る。いくつかの実施形態では、これらの1つ以上の情報項目は、チャプタと呼ばれ得、チャプタ基準で異なるアプリケーションに提示され、または異なるアプリケーションによって修正され得る。
異なるアプリケーションにおいて複数のユーザによって同時に修正されるにつれて、共通データモデルオブジェクトに対する修正を同期させることは、製品設計の開発を管理することにとって重要であり得る。上記で論議されるように、典型的には、ユーザが現在のモデルに対して作業することを確実にするために、詳細な管理作業が必要とされる。これは不十分であり、エラーがバージョンの見落としをもたらす場合がある。しかしながら、開発中に、製品設計が、概念的設計から最終製品までのいくつかの明確に異なる段階を通過することが観察され得る。これらの段階は、設計、プロトタイピング、分析、再設計、アルファまたはベータ試験、構成要素製造、および組立を含み得る。各段階中に、複数のユーザが、異なる変動をモデルに行い得る。しかしながら、典型的には、各段階は、次の段階が始まり得る前に完了しなければならない。例えば、少なくとも設計という第1の段階が完了するまで、プロトタイプを構築することはできない。したがって、各段階の開始時に、共通データモデルオブジェクトの異なるチャプタは、同期化されている、または同等であるといわれ得る。さらに、各段階とともに、異なる副段階が同じモデルで認識され得る。したがって、共通データモデルの異なるチャプタは、全ての変動が製品開発の同等段階にある場合に同期化されているといわれ得る。
図2Eを参照すると、共通データモデルの中の複数の情報項目の同期化を管理することの実施形態のシーケンス図が示されている。概観すると、モデルは、複数の情報項目(AおよびB)を含み得る。モデルが設計から最終製品へと進むにつれて、種々のアプリケーションにおいて設計の中のチャプタおよび情報項目に対する修正が行われる。これらの修正におけるある段階で、情報項目Aは、iおよびj、kおよびl、ならびにmおよびn等、情報項目Bと整合し得る。これらは、情報項目バージョンの互換性のあるセットを表す、同等線と呼ばれ得る。
ここで図2Fを参照すると、共通データモデルの中の複数の情報項目の同期化を管理することの実施形態の実施例のシーケンス図が示されている。示される実施例では、モデルは、最初に、第1の同等線上の幾何学形状iおよびグラフィックスjと整合状態にある。ユーザは、幾何学形状データに修正を行い、グラフィックスjともはや整合していない、または互換性がない、幾何学形状kへと移動する。ユーザは、幾何学形状データに別の修正を行い、幾何学形状lへと移動する。幾何学形状データに対する修正、または幾何学形状が第2の同等線に合致する所定の段階に達したというユーザからの指示のいずれか一方に応答して、システム、ユーザ、または別のユーザのいずれか一方が、幾何学形状lと整合した新しいグラフィックスデータmを更新または生成する。モデルは再度、第2の同等線上で整合状態にある。
いくつかの実施形態では、アプリケーション一式の1つ以上のアプリケーションが、同等線を作成し得る。例えば、1つのそのような実施形態では、直接またはパラメトリックモデリングCADアプリケーションが、幾何学形状データを修正し、新しい同等線を作成し得る。新しい同等線に応答して、製品可視化アプリケーションまたは工学的分析アプリケーション等の他のアプリケーションが、モデルの中で整合状態に達するように、新しい同等線における幾何学形状データに従って、グラフィックスまたは分析データを更新または再生し得る。いくつかの実施形態では、ベータ試験またはプロトタイピング等の所定の状態にモデルが達することによって、あるいは共通データモデルオブジェクトのチャプタを同期化するコマンド等のユーザからのコマンドに応答して、同等線が作成され得る。他の実施形態では、周期的に、あるいはプログラムを保存または仕上げることに応答して、あるいはモデルへの実質的な変更に応答して、同等線が作成され得る。
図2Gは、共通データモデルの使用および同期化を管理するためのフレームワークのブロック図である。概観すると、いくつかの実施形態では、フレームワークは、データサービス230、IDサービス232、辞書サービス234、同期化および通知サービス236、データチャプタ238、および辞書240のうちの1つ以上を備え、製品開発アプリケーション一式のうちの1つ以上の製品開発アプリケーション200−214と通信し得る。
依然として図2Gをさらに詳細に参照すると、いくつかの実施形態では、データサービス230は、1つ以上のアプリケーションまたは他のサービスによって、共通データモデルオブジェクトの1つ以上のチャプタ238へのアクセスを変換および管理するためのライブラリ、アプリケーションプログラミングインターフェース(API)、サービス、論理、または実行可能コードを備え得る。いくつかの実施形態では、データサービスは、オブジェクトに関連付けられる共通データモデルのヘッダまたはデータを管理、作成、または修正し得る。一実施形態では、各チャプタは、チャプタおよびオブジェクトの整合性を維持するための関係型データベース、ファイル、XMLファイル、レジストリ、ライブラリ、またはIDのリストを備え得る、ヘッダまたは「目次」を含み得る。別の実施形態では、各チャプタは、幾何学形状データまたはグラフィックスデータ等のオブジェクトのチャプタ特定のデータを有する本体を含み得る。
いくつかの実施形態では、IDサービス232は、IDを作成および管理するためのライブラリ、API、サービス、論理、または実行可能コードを備え得る。上記で論議されるように、いくつかの実施形態では、アプリケーションは、オブジェクトのIDセットの中のIDを作成または修正することによって、チャプタまたはオブジェクトに対する修正について他のアプリケーションに知らせ得る。一実施形態では、IDサービス232は、これらのIDを作成および修正するためのAPIを備えている。
いくつかの実施形態では、辞書サービス234は、辞書240、ならびに情報項目および同等線を管理するためのライブラリ、API、サービス、論理、または実行可能コードを備え得る。一実施形態では、辞書サービス234は、拡張可能な共通辞書用のAPIを備え得、グラフィックスおよび幾何学形状等の情報項目の種類の定義、および同等線を作成するアプリケーションの定義を管理し得る。例えば、上記で論議されるように、パラメトリックCADモデリングアプリケーションは、オブジェクトの特徴を修正し、オブジェクトを新しい状態またはバージョンに変え得る。これは、新しい同等線を作成し得、他の情報項目に対して対応および整合するデータまたは同等のデータを生成するように、他のアプリケーションに命令または指図し得る。
いくつかの実施形態では、チャプタ238および辞書240は、ラ集中共通記憶装置、クラウドベースの記憶装置、または他のネットワーク記憶装置等のコンピュータデバイス上にある、またはコンピュータデバイスによってアクセス可能な記憶デバイスの中に記憶されたイブラリ、データベース、フラットファイル、レジストリ、あるいは任意の他の種類および形態のデータを備え得る。上記で論議されるように、1つ以上のチャプタ238が、オブジェクトを構成し得、それら自体が、識別子のヘッダまたは目次、および情報項目またはデータの本体を含み得る。辞書240は、拡張可能な共通辞書を備え得、グラフィックスおよび幾何学形状等の情報項目の種類の定義、および同等線を作成するアプリケーションの定義を備え得る。
図3Aは、複数のアプリケーションによる共通データモデルの異なるチャプタの利用の比較図である。概観すると、一実施形態では、部品、アセンブリ、図面、2D概念図、および可視化モデル等の異なる共通データモデルオブジェクト300は、異なる共通データモデルチャプタ302を含み得る。当業者であれば、いくつかのオブジェクトが全てのチャプタ302を必要としないことを容易に理解し得る。例えば、単純な2次元スケッチとして、2D概念図は、幾何学形状データおよび注釈データの両方を利用し得るが、分析データは、平面よりもむしろ固体を表すための第3次元がないと無意味であり得る。
図3Aに示される実施形態では、CDM部品オブジェクトは、幾何学形状、分析、外観、および注釈チャプタを含み得る。CDMアセンブリオブジェクトはさらに、構成要素配置チャプタを含み得る。5つだけの異なるチャプタ302が実施例で示されているが、多くの実施形態では、上記で論議される拡張可能な辞書の利点として、情報項目のさらなるチャプタが任意のオブジェクトに含まれ得る。
示されるように、多くの実施形態では、異なるアプリケーション200−214は、異なるオブジェクト300の異なるチャプタ302を読み出し得る。例えば、上記で論議されるように、工学的分析アプリケーション204が2次元表面の工学データを分析することは無意味であり得る。同様に、2D概念アプリケーション212は、3次元モデル、アセンブリ、図面、および部品と適正に相互作用するのに十分なツールを欠く場合がある。
図3Aは、オブジェクトごとの基準で、代替的な図で表示され得る。例えば、図3B−3Eは、複数のアプリケーションによる共通データモデルの異なるチャプタとの相互作用の実施例の実施形態のコンテキスト図である。概観すると、図3B−3Eのうちのそれぞれは、同じCDMオブジェクト300に作用する、異なるアプリケーションを図示する。例えば、図3Bは、全て共通データモデルアセンブリオブジェクトと相互作用する、直接モデリングアプリケーション200、パラメトリックモデリングアプリケーション202、工学的分析アプリケーション204、構成構築アプリケーション206、構成モデリングアプリケーション208、アセンブリモデリングアプリケーション210、および製品可視化アプリケーション214を描写する。同様に、図3Cは、共通データモデル部品オブジェクトと相互作用するアプリケーションを描写し、図3Dは、共通データモデル図面オブジェクトと相互作用するアプリケーションを描写し、図3Eは、共通データモデル概念図オブジェクトと相互作用するアプリケーションを描写する。
ここで図4を参照すると、本明細書では変更命令と呼ばれることもある、共通データモデルチャプタの情報項目に対する変更の経路またはセットを表す、IDの実施形態のブロック図が示されている。いくつかの実施形態では、変更命令は、コンテナ400、ネームスペース402、生産情報404、分岐406、製品項目バージョン408、トランザクション410、範囲412、および整合性フラグ414のうちの1つ以上の識別子を含み得る。上記で論議されるように、幾何学形状またはセンブリ情報等の製品モデルの各情報項目または側面は、識別子またはIDのセットを含み得る。IDは、1つ以上のアプリケーションによって行われる情報項目に対する変更の経路またはセットを表す。いくつかの実施形態では、変更命令またはIDは、多くのアプリケーションによって共有または修正することができる。アプリケーションは、IDを挿入または削除することによって情報項目を修正し得る。
依然として図4をさらに詳細に参照すると、一実施形態では、変更命令は、コンテナID400を含み得る。コンテナID400は、フォルダまたは記憶場所等の情報項目の物理的コンテナを識別する、識別子、アドレス、ポインタ、または同様の表現を備え得る。
いくつかの実施形態では、変更命令は、ネームスペース402を含み得る。ネームスペース402は、その下で情報項目が一意的と見なされる、ドメインの識別子、文字列、または他の同様の表現を備え得る。
一実施形態では、変更命令は、製品情報(PI)404の識別子を含み得る。製品情報404は、商号または情報項目の意図の文字列、識別子、または他のデータ表現を備え得る。
いくつかの実施形態では、変更命令は、分岐406の識別子を含み得る。分岐406は、文字列、識別子、インデックス、ポインタ、アドレス、親子関係識別子、または情報項目のバリアントの記述子の他のデータ形式を備え得る。
一実施形態では、変更命令は、製品項目バージョン(PIV)識別子408を備え得る。PIV識別子408は、上記で論議されるように、情報項目の特定のバージョンを識別する、文字列、識別子、または他のデータ表現を備え得る。
一実施形態では、変更命令は、トランザクション識別子410を備え得る。トランザクション識別子410は、変更命令を作成させた1つ以上のアクションを識別し得る。いくつかの実施形態では、トランザクション識別子410は、文字列、インデックス、リスト、ベクトル、またはデータファイルを備え得、トランザクションが発生した時間、トランザクションを行った、または変更命令を作成したアプリケーション、およびトランザクションを行う際のユーザの設計意図のうちの1つ以上を含み得る。そのような設計意図は、ユーザによって明示的に設定され得、またはユーザによって作成される1つ以上の制約を参照する等して、暗示的に決定され得る。
一実施形態では、変更命令は、範囲識別子412を備え得る。範囲識別子412は、変更命令が内部、共有、または外部であるかどうかを示すように、指標、文字列、フラグ、ビットマスク、または他のデータ表現を備え得る。一実施形態では、変更命令は、他のコンピュータデバイスおよび/または同じ他のコンピュータデバイス上の他のCADアプリケーションと共有され得る。例えば、媒介物、サーバ、または中央レポジトリとしての機能を果たす、別のコンピュータデバイスが、情報項目に対する変更を同期化するために使用され得る。変更命令の作成を通した変更の通知が、この媒介物に伝送され得、他のCADアプリケーションおよび/またはコンピュータデバイスが、変更に関する情報を要求し得る。一実施形態では、サーバ上で実行する通知サービスから他のCADアプリケーションに伝送される通知に応答して、そのような要求が行われ得る。
別の実施形態では、範囲識別子412は、元の設計を回復する能力を保持しながら、ユーザが異なる設計変更を試すことを可能にするように内部に設定され得る。例えば、一実施形態では、1つのCADオブジェクトに行われた修正が、システムに他の従属オブジェクトを再生または再計算させるように、ユーザは、モデルの中の複数の相関CADオブジェクトの1つまたは多くのCADオブジェクトを修正させ得る。従来の取り消しサポートは、典型的には、再生または再計算により、そのような実施形態では利用可能ではなく、取り消しは、再生をトリガした初期修正よりもむしろ、そのような再生の最後のステップのみを取り消し得る。本明細書では相関CADオブジェクトと呼ばれるが、多くの実施形態では、これらのオブジェクトは、1つのCADオブジェクトに行われた修正が、システムに他の従属オブジェクトを再生または再計算させることを示すように、限定するものではないが、相互従属、連合、再生的連合、関係、従属、または種々の他の用語で呼ばれ得る。
結果として、一実施形態では、モデルに対する修正を他のCADアプリケーションに通知するための同じシステムが、アプリケーションの中で内部に変更の履歴を保持するために使用され得る。各修正とともに、CADアプリケーションは、修正を表す内部変更命令を記録し得る。加えて、一実施形態では、CADアプリケーションは、最初に、モデルの開始状態の一時的コピーを作り得る。したがって、各内部変更命令は、以前の修正からの差分または差異を表し得、内部変更命令の全ての合計は、第1の同等線上のモデルの第1の整合状態(例えば、一時的コピー)から第2の同等線上のモデルの第2の状態への修正を表し得る。変更命令が内部である間に、ユーザは、それらを前後に進めて、設計の任意の中間であるが整合した状態に戻すように中間修正のうちの1つ以上を非適用または適用し得る。いったんユーザが設計変更を最終として容認すると、一実施形態では、CADアプリケーションは、変更命令を単一の共有または外部変更命令に合併し得る。他の実施形態では、CADアプリケーションは、共有または外部変更命令になるように単に変更命令を修正し得る。次いで、CADアプリケーションは、変更命令を中央サーバまたは媒介物、あるいは他のコンピュータデバイスおよび/またはCADアプリケーションに伝送し得る。一実施形態では、CADアプリケーションは、モデルの開始状態の一時的コピーを破棄し得る。
いくつかの実施形態では、変更命令は、整合性フラグ414を備え得る。整合性フラグ414は、チャプタまたはオブジェクトの共有IDが整合状態または非整合状態にあるかどうかを示すことを表す、フラグ、文字列、ビットマスク、値、所定のビット、または他のデータを備え得る。例えば、一実施形態では、アプリケーションは、新しい同等線が作成されたことを示すように変更命令を作成し得、変更命令は、オブジェクトまたはモデルが非整合状態にあることを示すフラグを含み得る。いったん全ての他の情報項目が整合状態に更新されると、いくつかの実施形態では、フラグは、オブジェクトまたはモデルが整合状態にあることを示すように設定され得る。なおも他の実施形態では、図2Fを簡潔に再び参照すると、アプリケーションは、幾何学形状項目k等の同等線上にない非整合状態を示すように設定された整合性フラグを伴って変更命令を作成し得る。他のアプリケーションは、この変更命令に応答して、他の情報項目を更新または再生する必要がない。アプリケーションが、幾何学形状項目m等の整合状態を示すように設定された整合性フラグを伴って別の変更命令を作成する時に、次いで、他のアプリケーションは、新しい同等線に達するように、グラフィックス項目n等の他の情報項目を再生し得る。
ここで図5Aを参照すると、オブジェクトライフサイクルの中の複数の所定の状態のうちの1つで、コンピュータ支援設計データモデルの複数の情報項目の同期化を管理する方法の実施形態のフローチャートが示されている。概観すると、ステップ500で、ユーザが、第1の情報項目を第1の状態から第2の状態に更新し得る。ステップ502で、ユーザが、第1の情報項目を第2の状態から第3の状態に更新し得る。ステップ504で、第2のユーザが、第2の情報項目を、第1の状態に対応する、または同等である第4の状態から、第3の状態に対応する、または同等である第5の状態に更新し得る。
依然として図5Aを詳細に参照すると、一実施形態では、ステップ500で、第1のコンピュータデバイスのプロセッサによって実行される第1のアプリケーションの第1のユーザが、共有CADデータモデルの第1の情報項目を第1の状態から第2の状態に更新し得る。一実施形態では、第1の状態は、オブジェクトライフサイクルにおける第1の状態に対応し得る。例えば、1つのそのような実施形態では、第1の状態は、設計、プロトタイピング、試験、または製造という初期段階、あるいは製品開発の任意の他の段階に対応し得、あるいはこれらの段階のうちの1つの一部、または製品開発の任意の他の段階に対応し得る。いくつかの実施形態では、情報項目を更新することは、共有CADデータモデルの幾何学形状データまたはグラフィックスデータを修正すること等の情報項目の側面を修正することを含み得る。他の実施形態では、情報項目を更新することは、モデルの新しい部分を作成することを含み得る。一実施形態では、第1の情報項目を更新することは、上記で論議されるように、変更命令またはIDの作成を開始する。該変更命令は、CADアプリケーションまたは他のアプリケーションが、情報項目を更新された第1の情報項目に対する同等または対応状態に更新することを可能にする命令を含み得る。いくつかの実施形態では、変更命令が、第2のCADアプリケーションを伴う第2のユーザによって使用される第2のコンピュータデバイス等の別のコンピュータデバイスに伝送され得る一方で、他の実施形態では、変更命令は、概して媒介物と呼ばれる、サーバ、媒介物、または中央レポジトリに伝送され得る。該媒介物は、第1のユーザのアクションが変更命令を作成したことを1つ以上の他のコンピュータデバイスの1人以上の他のユーザに伝えるための通知サービスを含み得る。さらなる実施形態では、該通知の受信時に、第2のユーザまたは第2のコンピュータデバイスは、媒介物から変更命令を要求し得る。一実施形態では、変更命令は、上記で論議されるように、情報項目が現在非整合状態にある、または同等線に対応しない状態にあることを示すように、所定の値に設定されたフラグを備え得る。さらなる実施形態では、情報項目が非整合状態にあることを示すように設定されたフラグを伴う変更命令の受信は、他のコンピュータデバイスまたはユーザに他の情報項目を更新させなくてもよい。
ステップ502で、いくつかの実施形態では、第1のユーザが、第1の情報項目を第2の状態から第3の状態に更新し得る。一実施形態では、第3の状態は、設計、プロトタイピング、試験、または製造という初期段階、あるいは製品開発の任意の他の段階等のオブジェクトライフサイクルにおける第2の状態に対応し得、あるいはこれらの段階のうちの1つの一部、または製品開発の任意の他の段階に対応し得る。いくつかの実施形態では、第1の情報項目を第3の状態に更新することは、上記で論議されるように、第2の変更命令またはIDの作成を開始する。上記で論議されるように、いくつかの実施形態では、第2の変更命令は、コンピュータデバイスに、または変更命令について他のコンピュータデバイスに通知し、第2の変更命令を該他のコンピュータデバイスに提供し得る媒介物に伝送され得る。一実施形態では、第2の変更命令は、上記で論議されるように、情報項目が現在整合状態にある、または新しい同等線に対応する状態にあることを示すように、第2の所定の値に設定されたフラグを備え得る。さらなる実施形態では、情報項目が整合状態にあることを示すように設定されたフラグを伴う第2の変更命令の受信は、他のコンピュータデバイスまたはユーザに他の情報項目を更新させ得る。
ステップ504で、いくつかの実施形態では、第2のコンピュータデバイスの第2のCADアプリケーションの第2のユーザが、共有CADデータモデルの第2の情報項目を、第1の状態に対応する第4の状態から、第3の状態に対応する第5の状態に更新し得る。一実施形態では、このようにして第2の情報項目を更新することは、第2の情報項目が、第2の状態に対応する状態を迂回することを可能にし得る。いくつかの実施形態では、第2のユーザは、上記で論議されるように、第1の情報項目が整合状態にあることを示すにように設定されたフラグを伴う変更命令の受信に応答して、および変更命令の中の命令に応答して、第2の情報項目を更新し得る。
ここで図5Bを参照すると、ユーザによってコンピュータ支援設計オブジェクトまたはモデルの複数の設計ステップを管理する方法の実施形態のフローチャートが示されている。一実施形態では、この方法は、ユーザが、特徴の従属再生を含むCADモデルに対する変更を追跡し、CADアプリケーションによって再生される従属特徴の数にかかわらず複数のユーザコマンドを通して取り消すことを可能にし得る。これはまた、ユーザが「仮定の」シナリオを試行することを可能にし得、モデルに異なる修正を試し、各修正前にモデルのコピーを保存する必要なく、該修正における任意のステップに戻ることができる。上述のように、ユーザからの単一のコマンドに応じて、CADアプリケーションが数十もの従属特徴を再生または再計算し得るため、変更を取り消す通常の方法が機能しない場合がある。単一の取り消しは、最後の再計算を取り消すことのみ可能であり得る。複数の取り消しを記憶するシステムでさえも、CADアプリケーションによる再計算された修正よりもむしろ、ユーザが行った修正に達するように何度も取り消さなければならないことがユーザには不明確であり得る。
概観すると、ステップ510で、ユーザが、CADアプリケーションを使用して、CADオブジェクトを修正し得る。これが、以前の終了以降のCADオブジェクトに対する第1の修正である場合、ステップ512で、CADアプリケーションが、CADオブジェクトまたはモデルの開始状態を記憶し得る。ステップ514で、CADアプリケーションが、修正を表す変更命令を作成し、記憶し得る。ステップ510−514は、反復して繰り返され得る。一実施形態では、ステップ516で、ユーザが、CADモデルの中間状態に戻るようにCADアプリケーションに要求し得る。そのような要求に応答して、ステップ518で、CADアプリケーションが、記憶された開始状態をロードし、CADモデルを要求された中間状態にするように1つ以上の変更命令を実行し得る。次いで、ステップ510−518は、CADモデルに対する修正の異なる分岐を探索するように繰り返され得る。いくつかの実施形態では、ステップ520で、ユーザが、CADオブジェクトの現在の状態を保ち、修正を仕上げるようにCADアプリケーションに要求を発行することを決定し得る。要求に応答して、CADアプリケーションが、ステップ522で、変更命令を他のシステムに通信し得、ステップ524で、CADアプリケーションが、CADモデルの記憶された開始状態を破棄し得る。
依然として図5Bをさらに詳細に参照すると、ステップ510で、第1のコンピュータデバイス上で実行するCADアプリケーションのユーザは、CADモデルの複数の相関CADオブジェクトのうちの第1のCADオブジェクトを修正し得る。一実施形態では、CADモデルのCADオブジェクトは、1つのオブジェクトに対する修正が、CADアプリケーションにCADモデルの中の1つ以上の他のCADオブジェクトを再計算または再生させる場合に相関している。1つのそのような実施形態では、ユーザが第1のCADオブジェクトを修正することに応答して、CADアプリケーションは、複数の相関オブジェクトの第2のCADオブジェクトのデータを再生し得、第2のCADオブジェクトは、第1のCADオブジェクトに従属している。いくつかの実施形態では、ユーザは、幾何学形状データ、注釈データ、アセンブリデータ、概念データ、材料データ、分析データ、外観データ、あるいはCADオブジェクトまたはモデルの任意の他の種類および形態のデータを含む、CADオブジェクトの1つ以上の情報項目を修正し得る。
ステップ510での修正が、CADオブジェクトに対する第1の修正、または修正の以前の終了以降の第1の修正である場合には、ステップ512で、CADアプリケーションがモデルの開始状態または第1の状態を記憶し得る。モデルの開始状態は、ユーザによる修正前のCADモデルの複数の相関CADオブジェクトのデータを備え得る。開始状態または第1の状態と呼ばれるが、当業者であれば、開始状態または第1の状態が、単純に、モデルへの1つ以上の修正を実行する前の状態を指し得ることを理解し得る。
ステップ514で、CADアプリケーションが、ユーザによる第1のCADオブジェクトに対する修正を表す変更命令を記憶し得る。一実施形態では、変更命令は、第1のCADオブジェクトに従属し、CADアプリケーションによって再生または再計算される他のオブジェクトの数にかかわらず、ユーザによる第1のCADオブジェクトに対する修正のみを表し得る。これは、追加の情報が必要とされないことがあるので、行われ得、CADアプリケーションは、変更命令を実行する場合、他の従属オブジェクトのデータを自動的に再生または再計算し得る。したがって、第1のオブジェクトを変更する命令は、モデルをユーザの修正後の再生状態に修正するために必要な全ての状態を含む。一実施形態では、変更命令は、変更命令が内部変更命令であることを示すように設定されたフラグ、文字列、またはビットマスクを含み得る。さらなる実施形態では、変更命令が内部変更命令として識別されることに応答して、CADアプリケーションは、変更命令を中間または別のコンピュータデバイスまたはCADアプリケーションに通信しないことがある。これは、修正のための他のCADアプリケーションによる不必要な再計算および再生、ならびにユーザが破棄することを決定する「仮定の」分岐を防止し得る。
ステップ510−514は、1回以上繰り返され得、追加の変更命令を生成し、同じCADオブジェクトまたは異なるCADオブジェクトを修正する。いくつかの実施形態では、各変更命令は、CADモデルまたはオブジェクトの以前の状態からの差異または差分を表す。例えば、第1の変更命令は、ユーザによって行われる面の押出しを表し得る。次いで、第2の変更命令は、押出し面の面取りを表し得る。第3の変更命令は、押出し面の面取り表面への切り欠きまたは切り込みを表し得る。したがって、各命令は、以前の変更命令の結果に基づき得る。当業者であれば、CADモデルを開始状態から現在の状態にするようにユーザによって行われるステップ後に、順序通りの各変更命令の実行がどのようにして生じ得るかを容易に理解し得る。ステップ516で、いくつかの実施形態では、ユーザが、CADモデルの中間状態に戻るように要求し得る。これは、例えば、ユーザがCADオブジェクトに対する1つ以上の最近の修正を保存しないことを決定するため、行われ得る。一実施形態では、ユーザは、ユーザインターフェースを通して、中間状態に戻ることを選択し得る。さらなる実施形態では、ユーザインターフェースは、種々の変更命令の連鎖、ツリー、または分岐連鎖、または他の描写を表し得、ユーザが戻るCADモデルの任意の中間状態を選択することを可能にする。
ステップ518で、中間状態に戻るユーザからの要求に応答して、CADアプリケーションは、記憶された開始状態をロードし、連鎖またはツリーの中の開始状態から要求された中間状態に至る、1つ以上の変更命令を実行し得る。各変更命令を実行することは、CADアプリケーションによって、ユーザによってCADオブジェクトに対して行われる修正を行い、モデルの複数の相関CADオブジェクトの従属CADオブジェクトを再生または再計算することを含み得る。
ステップ510−518は、多くの実施形態では、反復して繰り返され得る。ステップ514またはステップ518のいずれか一方の後に、いくつかの実施形態では、ユーザは、ステップ520で、CADモデルに対する修正を仕上げるように要求し得る。本明細書で使用されるように、仕上げと呼ばれるが、この用語は、開始状態を記憶して以降、モデルに行われる修正を仕上げることを意味し得る。当業者であれば、ユーザがモデルに戻って将来にさらなる修正を行ってもよく、その時点で新しい「開始状態」が記憶され得ることを理解し得る。
要求に応答して、ステップ522で、CADアプリケーションが、連鎖またはツリーの中の開始状態からCADモデルの現在の状態に至る、1つ以上の変更命令を、1つ以上の他のCADアプリケーション、コンピュータデバイス、またはサーバ、媒介物、または変更命令の中央レポジトリに伝送し得る。一実施形態では、1つ以上の変更命令を通信することは、変更命令を共有または外部として識別するように、変更命令を内部変更命令として識別する、各変更命令のフラグ、ビットマスク、または文字列を修正することを含み得る。上記で論議されるように、いくつかの実施形態では、1つ以上の通信された変更命令を受信することに応答して、1つ以上の他のCADアプリケーションまたはコンピュータデバイスは、変更命令を実行し、共有CADモデルの情報項目を整合状態に修正するようにデータを再生または再計算し得る。例えば、共有CADモデルの幾何学形状に複数の修正を行った後、第1のユーザが修正を仕上げ得る。変更命令は、変更命令を実行し、質量中心の場所等のモデルの工学データを再計算し得る、工学的分析アプリケーション等の別のアプリケーションに通信され得る。上記で論議されるように、いくつかの実施形態では、変更命令を通信することは、新しい変更命令が存在するという通知を他のシステムに送信し、他のシステムによる要求に応じて変更命令を提供または伝送することを含み得る。そのような通知および伝送は、上記で論議されるように、中間または中央レポジトリによって行われ得る。
ステップ524で、いくつかの実施形態では、CADアプリケーションが、モデルの記憶された開始状態を破棄し得る。別の実施形態では、CADアプリケーションは、最終中間状態を過ぎた代替的分岐または設計状態の変更命令等の1つ以上の変更命令を破棄し得る。
変更命令はまた、連携を可能にするために、同時にモデルに対して作業する複数のユーザの間で使用され得る。さらに、いくつかの実施形態では、それらは、モデルの設計中に必要とされる再生の量を削減するために使用され得る。例えば、1つのそのような実施形態では、第1のユーザは、トラック用のエンジンモデル等の設計の第1の部分に対して作業し得る。第2のユーザは、客室レイアウト等の設計の第2の部分に対して作業し得る。一定の同期化を必要とするシステムでは、ユーザが現在の更新に関連しない場合があるという事実にもかかわらず、2人のユーザのCADアプリケーションの間に多くの更新が送信される。そのような実施形態では、上記で説明される軽量通知サービス、およびCADモデルの開始整合状態からの変更命令をいつでも要求して実行する能力により、ユーザは、モデルを新しい整合状態に更新する準備ができるまで、変更命令を無視し得る。
ここで図5Cを参照すると、対応する複数のコンピュータデバイス上で、複数のユーザによってコンピュータ支援設計オブジェクトまたはモデルの同時設計を管理する方法の実施形態のフローチャートが示されている。概観すると、ステップ530で、第1のコンピュータデバイスのプロセッサによって実行される第1のCADアプリケーションの第1のユーザが、共有CADオブジェクトの第1の部分を修正し得る。ステップ532で、そのコンピュータデバイスがアプリケーションサーバである実施形態における同じコンピュータデバイスによって実行されるか、または第2のコンピュータデバイスのプロセッサによって実行される、第2のCADアプリケーションの第2のユーザが、共有CADオブジェクトの第2の部分を修正し得る。ステップ534で、第2のユーザが、共有CADオブジェクトの第1の部分に対する第1のユーザの修正を表す、変更命令または変更命令の通知を受信し得る。一実施形態では、ステップ536で、第2のユーザが、変更命令を実行することなく、あるいは第2のユーザが作業している共有CADオブジェクトのローカルコピーまたは一部分を修正することなく、変更命令または通知を記憶し得る。別の実施形態では、ステップ538で、第2のユーザが、第2のユーザが作業している共有CADオブジェクトのローカルコピーまたは一部分を修正するように、変更命令を実行し得る。
依然として図5Cをさらに詳細に参照すると、ステップ530で、第1のユーザが、共有CADオブジェクトの第1の部分を修正し得る。いくつかの実施形態では、第1の部分は、上記で論議される客室の幾何学形状データ等のCADオブジェクトの第1のセクションまたは第1のエンティティあるいは複数のエンティティを指し得る。他の実施形態では、第1の部分は、幾何学形状データまたはアセンブリデータ等のCADオブジェクトのチャプタまたは情報項目を指し得る。いくつかの実施形態では、共有CADオブジェクトは、上記で論議されるように、複数の相関モデルを備え得る。別の実施形態では、共有CADオブジェクトの第1の部分を修正することは、共有CADオブジェクトの第1のセットの1つ以上のモデルを修正することを含み得る。別の実施形態では、共有CADオブジェクトは、複数のチャプタまたは情報項目を備え得る。さらなる実施形態では、共有CADオブジェクトの第1の部分を修正することは、複数のチャプタまたは情報項目のうちの第1のチャプタまたは情報項目を修正することを含み得る。
ステップ532で、第2のユーザが、共有CADオブジェクトの第2の部分を修正し得る。ステップ530と同様に、いくつかの実施形態では、第2の部分は、第1のユーザが修正したのと同じCADオブジェクトの情報項目の異なるセクションを指し得る一方で、他の実施形態では、第2の部分は、CADオブジェクトの第2のチャプタまたは情報項目を指し得る。別の実施形態では、共有CADオブジェクトの第2の部分を修正することは、共有CADオブジェクトの第2のセットの1つ以上のモデルを修正することを含み得る。別の実施形態では、共有CADオブジェクトの第2の部分を修正することは、共有CADオブジェクトの複数のチャプタまたは情報項のうちの第2のチャプタまたは情報項目を修正することを含み得る。
ステップ534で、第2のユーザが、第1のユーザの修正を表す、変更命令または変更命令の通知を受信し得る。上記で論議されるように、通知サービスを使用する実施形態では、第2のユーザは、変更命令の通知を受信し得、変更命令が第2のユーザによって使用される第2のCADアプリケーションに伝送されることを要求し得る。媒介物またはサーバが通知を提供し、変更命令を記憶する、いくつかの実施形態では、第1のコンピュータデバイスおよび第2のコンピュータデバイスは、第1のコンピュータデバイスから第2のコンピュータデバイスへ変更命令を通信するために同時にオンラインになる必要がある。むしろ、第1のコンピュータデバイスは、変更命令をサーバに送信し得、サーバは、変更命令を通知し、要求に応じて、変更命令を第2のコンピュータデバイスに提供し得る。
一実施形態では、ステップ536では、第2のユーザが、第2のユーザに表示される、共有CADオブジェクト、共有CADオブジェクトの第2の情報項目またはチャプタ、あるいは共有CADオブジェクトのローカルコピーを修正することなく、変更命令を記憶し得る。これは、いくつかの実施形態では、CADオブジェクトの第1の部分に対する修正がCADオブジェクトの第2の部分に影響を及ぼさないという第2のCADアプリケーションによる決定に応答して、行われ得る。例えば、1つのそのような実施形態では、CADオブジェクトの第2の部分は、CADオブジェクトの第1の部分への従属性がないことがある。別の実施形態では、第2のユーザは、後に実行するために変更命令を記憶し得る。これは、例えば、第2のユーザが設計修正を行っている場合、または図5Bに関して上記で論議されるような「仮定の」分岐を試行している場合に行われ得る。
別の実施形態では、ステップ538で、第2のユーザが、第2のユーザに表示される、共有CADオブジェクト、共有CADオブジェクトの第2のチャプタまたは情報項目、あるいは共有CADオブジェクトのローカルコピーを修正するように、変更命令を実行し得る。さらなる実施形態では、第2のユーザは、変更命令において表される共有CADオブジェクトの第1の部分に対する修正を、共有CADオブジェクトの第2の部分に対する修正と組み合わせ得る。別のさらなる実施形態では、第2のユーザは、変更命令における第1の1つ以上の命令を無効にし、または拒絶して、変更命令の中の残りの無効にされていない命令を実行し得る。これは、第2のユーザによる、第1のユーザの作業の精査プロセス可能にするように行われ得る。
異なる修正を試行し、「仮定の」設計を探索するために、単一のアプリケーションの中で内部的に変更命令を使用するとともに、変更命令はまた、設計の異なる修正を試行し、探索するために、複数のアプリケーションにわたる単一のユーザによって、または同時に作業する複数のユーザによって使用され得る。例えば、ユーザは、CADモデリングプログラムにおいてモデルに対して作業し、工学的分析プログラムに切り替えて測定を行い、次いで、これらの測定の結果に基づいて、CADアセンブリプログラムにおいて修正を行い得る。典型的には、これらのシステムのユーザは、各ステップでモデルを保存し、モデルをそれぞれの新しいアプリケーションのための異なる形式にエクスポートまたはインポートする必要がある。ユーザが決して考えを変えない、またはより前の状態に戻る必要がない場合、これは、その非効率にもかかわらず機能することができる。したがって、本開示の一側面は、複数の実行アプリケーションにおける共通データモデルオブジェクトの同時使用を管理する方法およびシステムを含む。ユーザが情報項目に対する修正および編集を行うにつれて、変更命令を他のコンピュータデバイスに伝える方法と同様に、変更命令は、同じコンピュータデバイス上の非アクティブアプリケーションに伝えられる。一実施形態では、非アクティブアプリケーションは、バックグラウンドで変更命令を自動的に実行する。別の実施形態では、非アクティブアプリケーションは、アクティブになると、1つ以上の以前にアクティブなアプリケーションによって生成された1つ以上の変更命令を実行する。例えば、ユーザは、第1のアプリケーションにおいて修正を行い、変更命令は、バッファまたは記憶装置の中に配置され得る。ユーザは、第2のアプリケーションがアクティブなアプリケーションであるように、第2のアプリケーションに切り替え得る。次いで、第2のアクティブなアプリケーションは、それがアクティブであった最後の時以降、バッファの中に配置された変更命令を実行し得る。ユーザは、モデルにさらなる修正を行って、追加の変更命令を生成するために、第2のアクティブなアプリケーションを使用し得る。次いで、ユーザは、第3のアプリケーションがアクティブなアプリケーションであるように、第3のアプリケーションに切り替え得る。次いで、第3のアクティブなアプリケーションは、第1のアプリケーションからの変更命令および第2のアプリケーションからの変更命令の両方、ならびに第3のアプリケーションがアクティブなアプリケーションであった最後の時以降、モデルに対して生成された任意の他の変更命令を実行し得る。これは、アプリケーションが任意の時点で非整合または旧式モデルを使用していたことをユーザが認識しないように、アプリケーションの起動時に行われ得る。
ここで図6Aを参照すると、共通データモデルを使用して、複数のアプリケーションによって使用されるモデルの整合性を管理する方法の実施形態のフローチャートが図示されている。概観すると、ステップ600で、ユーザが、第1のCADアプリケーションを立ち上げ、モデルを開き得る。ステップ602で、第1のCADアプリケーションが、図5Bに関連して上記で論議されるように、モデルの開始状態を記憶し得る。ステップ604で、ユーザが、モデルを修正し、第1のCADアプリケーションに第1の1つ以上の変更命令を作成させ得る。ステップ606で、ユーザが、第2のCADアプリケーションを立ち上げ、モデルを開き得る。ステップ608で、第2のCADアプリケーションが、モデルの記憶された開始状態および第1の1つ以上の変更命令をロードし、第1の1つ以上の変更命令を実行し得る。ステップ610で、ユーザが、モデルを修正し、第2のCADアプリケーションに第2の1つ以上の変更命令を作成させ得る。ステップ612で、ユーザが、第3のCADアプリケーションを立ち上げ、モデルを開き得る。ステップ614で、第3のCADアプリケーションが、モデルの記憶された開始状態、第1の1つ以上の変更命令、第2の1つ以上の変更命令をロードし、第1の1つ以上の変更命令および第2の1つ以上の変更命令を実行し得る。
依然として図6Aをさらに詳細に参照すると、ステップ600で、ユーザが、第1のCADアプリケーションを立ち上げ、モデルを開き得る。いくつかの実施形態では、第1のCADアプリケーションを立ち上げることは、デスクトップ、スタートメニュー、または他のユーザインターフェースからCADアプリケーションを立ち上げることを含み得る一方で、他の実施形態では、第1のCADアプリケーションを立ち上げることは、第1のCADアプリケーションに対するファイル種類連合(FTA)を有するCADモデルを開くことを含み得る。なおも他の実施形態では、第1のCADアプリケーションを立ち上げることは、図8A−8Cに関連して以下でさらに詳細に論議される、アプリケーションランチャを立ち上げることを含み得る。1つのそのような実施形態では、CADモデルは、オペレーティングシステムにアプリケーションランチャを立ち上げさせる、ファイル種類連合を含み得る。
ステップ602で、いくつかの実施形態では、第1のCADアプリケーションが、モデルの開始状態を記憶し得る。第1のCADアプリケーションを立ち上げる前にアプリケーションランチャが立ち上げられている、一実施形態では、アプリケーションランチャは、モデルの開始状態を記憶し得る。一実施形態では、モデルの記憶された開始状態は、タイムスタンプまたは他の識別子、あるいはモデルの同等線または整合状態の指示を含み得る。
ステップ604で、いくつかの実施形態では、ユーザがモデルを修正し得る。一実施形態では、ユーザは、モデルの1つ以上のチャプタまたは情報項目を修正し得る。いくつかの実施形態では、モデル、チャプタ、または情報項目を修正することは、第1のCADアプリケーションに、修正または動作を表す第1の1つ以上の変更命令を作成させ得る。一実施形態では、第1のCADアプリケーションは、1つ以上の変更命令を、モデルに関連付けられる一次フォルダの中に、中央記憶レポジトリの中に、モデルの一部として、モデルの記憶された開始状態の一部として、またはモデルを開く第2のCADアプリケーションが、モデル、記憶された開始状態、および1つ以上の変更命令の両方の場所を特定することが可能であり得るように、任意の他の形式あるいは場所で記憶し得る。
ステップ606で、いくつかの実施形態では、ユーザが、第2のCADアプリケーションを立ち上げ、モデルを開き得る。多くの実施形態では、ユーザは、第1のCADアプリケーションの実行を中止または停止することなく、第2のCADアプリケーションを立ち上げ得る。
ステップ608で、いくつかの実施形態では、第2のCADアプリケーションが、モデルの記憶された開始状態、および第1の1つ以上の変更命令をロードし得る。第2のCADアプリケーションは、いくつかの実施形態では、第1のCADアプリケーションにおけるユーザによるモデルに対する修正と整合する状態を達成するように、モデルの記憶された開始状態に基づいて1つ以上の変更命令を実行し得る。第2のCADアプリケーションが、第1の1つ以上の変更命令による影響を受けていないモデルのチャプタを読み出す場合等の他の実施形態では、第2のCADアプリケーションは、第1の1つ以上の変更命令を実行しなくてもよい。例えば、1つのそのような実施形態では、ユーザは、工学的分析アプリケーションにおいてモデルを開き、種々の動作を行って、モデルの分析チャプタへの変更命令を作成し得る。次いで、ユーザは、直接モデリングCADアプリケーションにおいてモデルを開き得る。多くの実施形態では、直接モデリングCADアプリケーションが、モデルの分析チャプタを読み出すことができない場合があるため、直接モデリングCADアプリケーションは、1つ以上の変更命令を実行しなくてもよい。
ステップ610では、いくつかの実施形態では、ユーザが、第2のCADアプリケーションを用いてモデルを修正し得る。一実施形態では、ユーザは、モデルの1つ以上のチャプタまたは情報項目を修正し得る。いくつかの実施形態では、モデル、チャプタ、または情報項目を修正することは、第2のCADアプリケーションに、修正または動作を表す第2の1つ以上の変更命令を作成させ得る。第1の1つ以上の変更命令と同様に、第2の1つ以上の変更命令は、モデルとともに、一時的な場所に、あるいは他のアプリケーションが変更命令の場所を容易に特定し得るように、種々の場所または形式で記憶され得る。
ステップ612で、いくつかの実施形態では、ユーザが、第3のCADアプリケーションを立ち上げ、モデルを開き得る。多くの実施形態では、ユーザは、第1のCADアプリケーションまたは第2のCADアプリケーションの実行を中止または停止することなく、第3のCADアプリケーションを立ち上げ得る。他の実施形態では、ユーザは、いずれか一方の他のアプリケーションの実行を中止または停止し得る。
ステップ614で、いくつかの実施形態では、第3のCADアプリケーションが、モデルの記憶された開始状態、第1の1つ以上の変更命令、および第2の1つ以上の変更命令をロードし得る。第3のCADアプリケーションは、いくつかの実施形態では、第1および/または第2のCADアプリケーションにおけるユーザによるモデルに対する修正と整合する状態を達成するように、モデルの記憶された開始状態に対して第1の1つ以上の変更命令および第2の1つ以上の変更命令のいずれか一方または両方を実行し得る。上記で論議されるように、第3のCADアプリケーションが、第1および/または第2の1つ以上の変更命令による影響を受けていないモデルのチャプタを読み出す場合等の他の実施形態では、第3のCADアプリケーションは、第1および/または第2の1つ以上の変更命令を実行しなくてもよい。
図6Bには、共通データモデルを使用する複数のアクティブなアプリケーションにわたってモデルの整合性を管理する方法の実施形態の別のフローチャートが示されている。概観すると、ステップ620で、共通データモデルとともに複数のCADアプリケーションを同時または一斉に使用するユーザが、第1のCADアプリケーションを非アクティブにし、または逆に別のCADアプリケーションをアクティブにし得る。非アクティブになることに応答して、一実施形態では、ステップ622で、CADアプリケーションが、現在の整合状態を識別し得る。いくつかの実施形態では、ステップ622は、省略され得る。一実施形態では、ステップ624で、ユーザが、1つ以上の追加のアプリケーションにおいてモデルを修正し、1つ以上の追加のアプリケーションに1つ以上の変更命令を作成させ得る。ステップ626で、ユーザが、第1のCADアプリケーションをアクティブにし得る。ステップ622が省略されなかった場合、ステップ628で、アクティブになることに応答して、第1のCADアプリケーションは、識別された第1の整合状態以降作成された、1つ以上の変更命令を実行し得る。ステップ622が省略された場合、次いで、ステップ630で、アクティブになることに応答して、第1のCADアプリケーションが、CADオブジェクトに関連付けられる1つ以上の変更命令を実行し得る。
依然として図6Bをさらに詳細に参照すると、ステップ620で、コンピュータデバイスのプロセッサによって実行され、共通データモデルの中のCADモデルを視認または編集する第1のCADアプリケーションのユーザが、第1のCADアプリケーションを非アクティブにし得る。いくつかの実施形態では、ユーザは、第2のCADアプリケーションを起動し、第1のCADアプリケーションを非アクティブにし得る一方で、他の実施形態では、ユーザは、実行しているが非アクティブなCADアプリケーションに切り替え得る。多くの実施形態では、第2のCADアプリケーションまたは他のCADアプリケーション(概して、第2のCADアプリケーションと呼ばれる)はまた、共通データモデルの中の同じCADモデルを視認または編集し得る。一実施形態では、第2のCADアプリケーションは、CADモデルの同じチャプタを読み出し、編集し、またはそれに作用し得る一方で、他の実施形態では、第2のCADアプリケーションは、CADモデルの異なるチャプタを読み出し、編集し、またはそれに作用し得る。
ステップ622で、いくつかの実施形態では、非アクティブになることに応答して、第1のCADアプリケーションが、CADモデルの現在の整合状態を識別し得る。これは、後に実行される変更命令の数を削減するために行われ得る。例えば、図6Aの方法において上記で論議されるように、編集セッションが開始された時に、モデルの開始状態が記憶され得、1つ以上のCADアプリケーションにおける各修正に対して、変更命令が作成され得る。多くの命令が、セッションの経過中に作成され得る。したがって、非アクティブおよびアクティブアプリケーションを単純に切り替える時、いくつかの実施形態では、非アクティブになる時に、全変更命令を再実行する必要性を低減するために、アプリケーションは、モデルの整合状態、またはアプリケーションのメモリの中のモデルが更新されている変更命令のリストの中の点を覚えておくことがある。例えば、CADアプリケーションがモデルをロードし、3つの変更命令を適用した場合、非アクティブになる時に、CADアプリケーションは、アプリケーションがこれらの3つの変更命令を実行したという識別を記憶し得る。再びアクティブになる時に、次いで、CADアプリケーションは、任意のさらなる変更命令を適用することのみ必要とする。しかしながら、いくつかの実施形態では、ステップ622は、省略され得、アクティブになる時に、アプリケーションは、モデルの開始状態をリロードし、1つ以上の変更命令を実行し得る。これがさらなる処理を必要とし得る一方で、アプリケーションのプログラミングは、さらに単純であり得る。加えて、この実施形態は、以下でさらに詳細に論議されるように、複数のアプリケーションにわたる代替的な設計分岐および取り消しスタックを可能にし得る。
ステップ624で、いくつかの実施形態では、ユーザが、1つ以上の追加のCADアプリケーションにおいてモデルを修正し得る。これは、上記で論議されるように、1つ以上の追加のCADアプリケーションに1つ以上の変更命令を生成させ得る。
ステップ626で、ユーザが、第1のCADアプリケーションをアクティブにし得る。これは、いくつかの実施形態では、以下でさらに詳細に論議されるように、スイッチャまたはランチャからCADアプリケーションを選択することによって、オペレーティングシステムによって提供されるタスクバーまたはユーザインターフェースからCADアプリケーションを選択することによって、または第1のCADアプリケーションを終了することなく1つ以上の追加のCADアプリケーションを終了することによって行われ得る。
ステップ628で、一実施形態では、CADアプリケーションがステップ622で第1の整合状態またはすでに適用された変更命令の数を識別した場合、CADアプリケーションは、第1の整合状態後に作成された1つ以上の変更命令、またはアプリケーションが非アクティブになって以降作成された追加の命令をロードし、実行し得る。
別の実施形態では、ステップ630で、アクティブになることに応答して、第1のCADアプリケーションは、モデルの開始状態および1つ以上の変更命令をロードし、該1つ以上の変更命令を実行し得る。これは、図6Aで図示される方法と同様であり得る。
複数のアプリケーションの同時使用においてモデルの整合性を管理するための変更命令の使用は、さらなる便益を提供し得る。CADアセンブリプログラム等の第2のアプリケーションにおいて修正を行った後に、CADモデリングプログラムにおける第1の修正が不適切であったとユーザが決定した場合、典型的には、ユーザは、第1のモデルをリロードする必要があり、工学的分析の便益を失う場合がある。しかしながら、本システムの一実施形態では、変更命令は、オブジェクトまたはモデルの以前の状態に戻るために使用され得、したがって、共通データモデルを使用して、複数のアプリケーションにわたる取り消しスタックを管理するために使用され得る。一実施形態では、アクティブな共通データモデルアプリケーションにおいて動作を取り消すことにより、非アクティブな共通データモデルアプリケーションにおいて後に自動的に行われる関連動作の全てを取り消すことを引き起こし得る。
例えば、図6Cには、共通データモデルを使用して、複数のアプリケーションにわたって取り消しスタックを管理する方法の実施形態の活動チャートが示されている。ステップ640で、ユーザが、パラメトリックモデリングCADアプリケーションにおいてモデルを開き、面の押出し等の第1の動作(1)をモデルに行い得る。図5Bを参照して上記で論議されるように、これは、CADアプリケーションに、モデルの第1の状態を記憶させ、変更命令を生成させ得る。該変更命令は、他のCADアプリケーションに伝えられ得る。したがって、一実施形態では、ユーザが工学的分析プログラムに切り替える時に、変更命令が実行され得、モデルの種々の部品が、CADモデルの工学的分析チャプタまたは情報項目の整合状態を作成するように再生され得る。次いで、ユーザは、幾何学形状と無関係であり得るモデルに分析(2)を行い得る。分析に応答して、ユーザは、押出しの面を移動させること、および押出しの第2の面を移動させること等のさらなる動作(3)および(4)を行うために、直接モデリングCADアプリケーションを使用し得る。各動作は、他のCADアプリケーションあるいは示されていない他のCADアプリケーションの一方または両方に送信されている変更命令をトリガし得る。
ステップ642で、ユーザが、直接モデリングCADアプリケーションにおいて最後のステップを取り消し得、ステップ644で、ユーザが、最後のステップをやり直し得る。多くの実施形態では、これは、アプリケーション内の取り消しスタックの通常の使用と同様であり得る。しかしながら、上記で論議されるように、ステップを取り消すこと、およびやり直すことにより、他のアプリケーションに送信される変更命令をトリガし、その結果、ユーザがいずれかのアプリケーションに切り替えた場合、第4の動作を伴わないモデルに遭遇することも、第4の動作を伴うモデルに遭遇することもあり得る。
ステップ644で、ユーザが、第1のパラメトリックモデリングCADアプリケーションに切り替え、第1の動作(1)を取り消し得る。一実施形態では、第1の動作を取り消すことにより、他のアプリケーションに送信されている変更命令をトリガし得る。動作(3)および(4)が、動作(1)の押出しに依存している幾何学形状に対する修正であったため、それらはまた、第1の動作を取り消すことによって取り消され得る。上記で論議されるように、多くの実施形態では、アクティブな共通データモデルアプリケーションにおいて動作を取り消すことにより、非アクティブな共通データモデルアプリケーションにおいて後に行われる任意の関連動作を取り消す。動作は、同じチャプタまたは情報項目に作用する場合に関係がある。したがって、幾何学形状チャプタを修正した動作(1)を取り消すことにより、同様に幾何学形状チャプタを修正する動作(3)および(4)を取り消すが、分析チャプタを修正した動作(2)は取り消さないことを引き起こし得る。多くの実施形態では、第1の動作を取り消すことにより、他のCADアプリケーションに伝送されている変更命令をトリガし得る。
ステップ646で、いくつかの実施形態では、ユーザが、第1または第3のアプリケーションのいずれかにおいて第1の動作(1)をやり直し得る。図5Bに関連して上記で論議されるように、アプリケーションは、モデルの第1の記憶された状態からの変更命令の連鎖または分岐ツリーを含み得る。したがって、たとえユーザが、連鎖またはツリー上の中間状態に後退したとしても、ユーザは、連鎖上またはツリーの異なる分岐上の以前または後続の状態を含む、任意の他の状態に容易に戻ることができ、共通データモデルアプリケーショは、必要に応じて、自動的に変更命令を実行し、再計算し得る。したがって、いずれかのアプリケーションにおいては、ユーザは、第1の動作(1)をやり直し、動作(3)および(4)の自動実行ならびに幾何学形状チャプタの特徴およびエンティティの再生を引き起こし得る。
したがって、多くの実施形態では、ユーザは、アプリケーションの全てが単一のアプリケーションの異なる側面であるかのように、共通データモデルを伴う単一のオブジェクトに対してアプリケーション一式の複数のアプリケーションを使用し得る。ユーザ体験は、アプリケーション一式の関連部品の相互運用性により、大きく強化される。図7Aは、複数のアプリケーションとともに共通データモデルを使用する第1の例示的実施形態のフローチャートである。概観すると、ユーザの一日は、パラメトリックモデルを構築するための要件を受信することから開始し得る。ユーザは、パラメトリックモデリングCADアプリケーションを立ち上げ得る。パラメトリックモデリングアプリケーションでは、ユーザは、新しいモデルを開き、幾何学形状を作成し、修正し得る。いずれの分析も必要とされない場合、ユーザは、モデルを保存し、自分のタスクを完了し得る。
代替として、分析が必要とされる場合には、ユーザは、工学的分析プログラムに切り替え得る。プログラムは、同じ共通データモデルを利用し、異なる形式でモデルを保存し、エクスポートし、開く必要性を排除し得る。代わりに、工学的分析プログラムは、同じモデルに作用し、例えば、幾何学形状チャプタを読み出し、分析チャプタを修正し得る。工学的分析アプリケーションでは、ユーザは、構造分析をモデルに行い得る。分析が満足できる場合、ユーザは、モデルを保存し、自分のタスクを完了し得る。
代替として、分析が満足できない場合、ユーザは、パラメトリックモデラに戻って切り替え、モデルのさらなる幾何学形状を修正または作成し得る。次いで、ユーザは、モデルまたは分析が満足できるまで、さらなる分析および修正を反復して行い得る。
ここで図7Bを参照すると、複数のアプリケーションとともに共通データモデルを使用する第2の例示的実施形態のフローチャートが図示されている。この実施例では、ユーザの一日は、ユーザが工学設計者からモデルを受信することから開始し得る。ユーザは、工学的分析アプリケーションを立ち上げ、モデルを開き得る。いくつかの実施形態では、ユーザは、後続分析をモデルに対して直接行い、分析が満足できる場合、モデルを保存し、モデルを工学設計者に返信し得る。
代替として、特に非常に複雑なモデルを用いた、多くの実施形態では、ユーザは、構造分析を行う前にモデルを単純化することを希望し得る。例えば、ユーザが、主に周辺部品との嵌まりおよび配置に関心を持っている場合、ユーザは、全体サイズに影響を及ぼさないため、モデルの内部オブジェクトまたは構成要素を除去するか、または無効にすることを希望し得る。したがって、そのような実施形態では、ユーザは、直接モデリングCADアプリケーションに切り替え、モデルの幾何学形状を修正し得る。次いで、ユーザは、指図モデリングCADアプリケーションから送信された変更命令を介してモデルが自動的に更新され得る工学的分析アプリケーションに戻って切り替え得る。次いで、ユーザは、さらなる構造分析をモデルに行い得る。
さらに、構造分析が満足できない場合、ユーザは、直接モデリングCADアプリケーションに戻って切り替え、幾何学形状を修正し、満足できる結果が達成されるまで、さらなる分析および修正を行い得る。
図8A−8Cは、複数のアプリケーションとともに共通データモデルを使用するためのシステムによって提供される、スイッチャの実施形態のスクリーンショットである。概観すると、図8Aに示されるように、いくつかの実施形態では、スイッチャ800は、アプリケーション一式の複数のCADアプリケーションのうちの1つ以上にモデルを立ち上げるための別個のアプリケーション、ダッシュボード、またはランチャを備え得る。いくつかの実施形態では、スイッチャは、サムネイル画像を含み得る、1つ以上のモデルのリストまたはインデックス802を示し得る。一実施形態では、リストまたはインデックス802からモデルを選択することにより、スイッチャ800に、スイッチャウィンドウの中央部分804の中でモデルの大きい画像を表示させ得る。
ここで図8Bを参照すると、いくつかの実施形態では、スイッチャは、示されるようなアナライザアプリケーション、直接モデラアプリケーション、およびビジュアライザアプリケーション等の複数の実行アプリケーション808を切り替えるためのダッシュボード806を備え得る。いくつかの実施形態では、直接モデラアプリケーション等のアクティブまたは最も重要なアプリケーションが拡大された状態で、複数の実行アプリケーション808が示され得る。一実施形態では、ダッシュボード806は、Microsoft Corp.によって製造されるWindows(登録商標) Operating Systemで表示されるalt−tabアプリケーションスイッチャと同様に、メニューまたはキーコマンドを介して立ち上げられ得る。いくつかの実施形態では、図8Bのダッシュボード806は、現在実行しているアプリケーションの上のオーバーレイとして出現し得る。さらなる実施形態では、図8Bのダッシュボード806は、現在アクティブなアプリケーションがダッシュボード806を通して可視的であるように、半透明または半透過バックグラウンドを備え得る。いくつかの実施形態では、示されるように、ダッシュボード806は、追加のアプリケーション810を立ち上げるための1つ以上のボタンを含み得る。他の実施形態では、ダッシュボード806は、オプションボタン812を含む、1つ以上のボタンを備え得る。ダッシュボード806はさらに、CADアプリケーション製造業者からインターネット等のネットワークを介してダウンロードされるメッセージまたは広告を表示し得る、メッセージボックス814を備え得る。メッセージボックスと呼ばれるが、多くの実施形態では、メッセージボックス814は、ボックスの中のメッセージをクリックすることにより、ウェブブラウザ、アプリケーションストア、あるいは他の構成要素またはアプリケーションを開くように、ボタンまたはリンクを備え得る。一実施形態では、ダッシュボード806は、CAD開発アプリケーション一式のアップグレードまたは新しいアプリケーションを視認して購入するためのウェブブラウザ、アプレット、アプリケーション、または他のインターフェースを介したアプリケーションストア816への接続を開始するためのボタンを含み得る。
図8Cを簡潔に参照すると、いくつかの実施形態では、図8Aのランチャおよび図8Bのアクティブアプリケーションスイッチャが組み合わせられ得る。例えば、ユーザは、1つ以上のアプリケーションにおいて新しいモデルを開くためにランチャを使用し得、アクティブなアプリケーションを切り替えるためにアプリケーションスイッチャを使用し得る。
(結論)
上記で説明されるシステムは、これらの構成要素のうちのいずれかまたはそれぞれの複数を提供し得、これらの構成要素は、独立型マシン上で、またはいくつかの実施形態では、分散型システム内の複数のマシン上で提供され得ることを理解されたい。上記で説明されるシステムおよび方法は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生産するためにプログラミングおよび/または工学技術を使用して、方法、装置、または製造品として実装され得る。加えて、上記で説明されるシステムおよび方法は、1つ以上の製造品の上または中で具現化される、1つ以上のコンピュータ可読プログラムとして提供され得る。本明細書で使用されるような「製造品」という用語は、1つ以上のコンピュータ可読デバイス、ファームウェア、プログラマブル論理、メモリデバイス(例えば、EEPROM、ROM、PROM、RAM、SRAM等)、ハードウェア(例えば、集積回路チップ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)、電子デバイス、コンピュータ可読不揮発性記憶ユニット(例えば、CD−ROM、フロッピー(登録商標)ディスク、ハードディスクドライブ等)からアクセス可能である、またはそれらに組み込まれる、コードまたは論理を包含することを目的としている。製造品は、ネットワーク伝送線、無線伝送媒体、空間を通って伝搬する信号、電波、赤外線信号等を介して、コンピュータ可読プログラムへのアクセスを提供する、ファイルサーバからアクセス可能であり得る。製造品は、フラッシュメモリカードまたは磁気テープであり得る。製造品は、ハードウェア論理、ならびにプロセッサによって実行されるコンピュータ可読媒体に埋め込まれたソフトウェアまたはプログラマブルコードを含む。一般的に、コンピュータ可読媒体は、LISP、PERL、C、C++、C#、PROLOG等の任意のプログラミング言語で、またはJAVA(登録商標)等の任意のバイトコード言語で実装され得る。ソフトウェアプログラムは、オブジェクトコードとして、1つ以上の製造品の上または中に記憶され得る。
ホスト型アプリケーション用のシームレスなサムネイルを提供する方法およびシステムのある実施形態を説明してきたが、本開示の概念を組み込む他の実施形態が使用され得ることが、当業者に明白となるであろう。