(57)【要約】【課題】以後にオブジェクトで実行される既存のオペレーション、または、イベントに反応するときの仕方を、ランタイムに定義できるようにする。【解決手段】その時点以降にオブジェクトが示すことを望む動作を指定するコードをオブジェクトに付加できるようにしている（ステップ１５３）。新しいまたは追加の動作のフィーチャを定義しているコードはアプリケーションソフトウェアによって解釈され、イベントまたはオペレーションがそのオブジェクトで実行されるたびに、オブジェクトがそれと関連付けられたユーザ指定の動作を持っていることを、システムが認識できるようにしている（ステップ１６１）。望みの動作を指定している新しいコードは、その入力時に、システムによって即時に呼び出し可能で、実行可能になっている（ステップ１６３）。【選択図】図３
2006099798.tif 000002
【特許請求の範囲】
【請求項１】
グラフィカルユーザインタフェース上でシステムによって表示されるオブジェクトが、該オブジェクトの設計プロセス中に該オブジェクト上で実行されたイベントに対し応答する仕方を、ランタイムに定義するコンピュータシステムのオペレーション方法であって、前記コンピュータシステムは、前記オブジェクトを作成または操作するアプリケーションプログラムを利用し、前記コンピュータシステムは、ユーザによる入力を受け付ける入力手段と、前記グラフィカルユーザインタフェースを表示する表示手段と、情報を記憶する記憶手段と、前記入力手段、前記表示手段、前記記憶手段を制御するプロセッサとを備え、前記プロセッサが前記記憶手段から前記アプリケーションプログラムを読み出して実行するときに、前記方法は、
前記プロセッサが、前記入力手段を介して入力を受け付け、該入力に従いオブジェクトを選択するステップと、
前記アプリケーションプログラムにより特定のイベントが前記表示手段における前記オブジェクト上で実行されたとき、前記プロセッサが、前記表示手段を介して前記イベントを表示し、前記オブジェクトに示させる動作を規定するステップと、
前記プロセッサが、前記動作の情報を、前記記憶手段における、前記オブジェクトに関連付けられたデータ構造にストアするステップとを備え、
前記動作を規定するステップは、アプリケーションプログラムの実行中に実行され、
前記プロセッサが、前記グラフィカルユーザインタフェース上のダイアログボックスをアクティベートするように前記表示手段を制御するステップと、
前記プロセッサが、キーボードのアクティベーションを通して前記ダイアログボックスにおける前記動作の入力を受け付けるステップと、
前記動作の入力に従い、前記プロセッサが、スクリプト言語の形で書かれた実行可能コンピュータ命令を受け付けるステップとを含む
ことを特徴とするコンピュータシステムのオペレーション方法。
【請求項２】
コンピュータ支援設計システムをダイナミックに適応させる方法であって、
前記コンピュータ支援設計システムは、オブジェクト上のコンピュータ支援設計機能用に、コーディングされたアプリケーションプログラムを実行し、前記コンピュータ支援設計システムは、ユーザによる入力を受け付ける入力手段と、グラフィカルユーザインタフェースを表示する表示手段と、情報を記憶する記憶手段と、前記入力手段、前記表示手段、前記記憶手段を制御するプロセッサとを備え、前記プロセッサが前記記憶手段から前記アプリケーションプログラムを読み出して実行するときに、前記コンピュータ支援設計機能を実行するために、前記方法は、
前記入力手段はキーボードを含み、前記プロセッサが、キーボードの使用を通して入力を受け付けるステップであって、前記入力は前記オブジェクトのための動作ルールを含み、該動作ルールが指定のイベントが発生したとき実行させたい動作を規定し、前記プロセッサが、前記表示手段上にダイアログボックスをグラフィカルに表示し、該ダイアログボックスの使用を通して前記動作ルールをシステムに入力するステップと、
前記プロセッサが、前記アプリケーションプログラムの実行中に前記動作ルールが該アプリケーションプログラムに組み入れられるように、前記入力に従いスクリプト言語の形で書かれた実行可能コンピュータ命令を受け付けるステップと
を備えたことを特徴とするコンピュータ支援設計システムをダイナミックに適応させる方法。
【請求項３】
コンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記コンピュータは、ユーザによる入力を受け付ける入力手段と、グラフィカルユーザインタフェースを表示する表示手段と、情報を記憶する記憶手段と、前記入力手段、前記表示手段、前記記憶手段を制御するプロセッサとを備え、前記プロセッサが前記記録媒体から前記プログラムを前記記憶手段にロードし、前記記憶手段から前記プログラムを読み出して実行するときに、
前記プログラムは、
前記プロセッサが、オブジェクトの設計プロセス中に付加的動作を規定するコードを入力可能とするインタフェースを前記表示手段に表示し、前記表示手段上で前記インタフェースをユーザに提供するステップであって、その間前記コードを実行し、前記インタフェースはビジュアルディスプレイに表示されるグラフィカルオブジェクトを含むステップと、
前記プロセッサが、前記コードの入力を前記入力手段から受け付けるステップであって、前記入力手段はキーボードを含むステップと、
前記プロセッサが、前記入力に従いスクリプト言語の形で書かれた前記コードを受け付け、前記オブジェクトが前記コードで規定された追加的動作を行うように該コードを実行するステップと
を備えたことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータソフトウェアのユーティリティプログラムに関し、さらに具体的には、コンピュータ支援設計 (CAD)、コンピュータ支援製造 (CAM)、コンピュータ支援エンジニアリング (CAE)、およびプログラムデータ管理ソフトウェアシステムの分野におけるプログラムに関する。
【背景技術】
【０００２】
上述の発明の属する技術分野のようなシステムでは、設計プロセスの対象となっているフィーチャ（feature）やオブジェクトは、アプリケーションソフトウェアで指定されている通りに、さまざまな方法でオペレータが操作できるようになっている。一般的に、このような操作はイベントとも呼ばれている。例えば、CAD/CAMシステムでは、ユーザは、例えば、穴などの、ある種のオブジェクトやフィーチャをシステムで設計中のオブジェクトに入れることを望んでいる場合があるが、そのようなオブジェクトはビデオディスプレイからグラフィカルに表示されているのが典型的である。システムアプリケーションコードは、ユーザがフィーチャやオブジェクトに対してある種のイベントを発生させるように書かれている。例えば、ユーザは「ドラッグアンドドロップ」イベントを穴に対して発生する場合があり、その効果として穴のコピーが別のロケーションに置かれている。公知のシステムでは、ユーザは穴の上にカーソルを置き、マウスのボタンをクリックし、その後カーソルを動かして、ユーザが穴を置こうとしているオブジェクト上に穴をドラッグしている。フィーチャのデータ構造は、穴がオブジェクト上にドロップされるときその穴の動作 (behavior) を指示するコードを収めている。例えば、フィーチャのコードは、穴がそこに置かれた部品の幅に相当する長さを穴がもつことを規定している。このようにすると、選択されたフィーチャは、ある種のユーザ選択のイベントがそのフィーチャで行われるとき、以前に書かれ、コンパイルされたシステムアプリケーションコードが規定しているように動作することになる。
【０００３】
作成または操作している特定の、選択されたフィーチャに知識や追加の動作特性を、アプリケーションを実行している途中で付加すると、特定の選択されたフィーチャやオブジェクトが、定義された状況にあるときや、ユーザが要求した定義済みイベントまたはアクションが起こったとき、特定の別の動作を示すようになるので、非常に便利であることが分かっている。この追加の動作特性は、例えば、スクリプトや他の解釈言語 (interpreted language) のように、特定のイベントが特定のオブジェクトやフィーチャに対して行われるときシステムによって解釈されるソフトウェアコードの断片で表され、オブジェクトやフィーチャがスクリプトで定義されたとおりに動作するようにしている。
【０００４】
公知のシステムでは、知識や動作をオブジェクトに付加するためには、ユーザはアプリケーションプログラムを終了させ、特定の選択されたオブジェクトの動作を追加するプログラムコードを書き、その結果のプログラムをコンパイルし、リンクしてから、作業中であったアプリケーションをリスタートしなければならない。これは煩わしく、時間のかかる作業であり、ユーザの設計プロセスを中断させることになる。さらに、多くのユーザは、アプリケーションソフトウェアを修正するのに必要なプログラミング知識がないときには、設計プロセスが苦痛になっている。また、ユーザは使用しているアプリケーションのコードにアクセスできるようになっている必要がある。
【０００５】
追加の動作のコードをマクロで書くことも知られており、ユーザがイベントを引き起こすたびにそのマクロを指定できるようになっている。しかし、マクロの使用は、ユーザがマクロの実行のたびにイベントのコンテキストを指定しなければならないので、煩わしく、不十分である。従って、マクロを使用すると、アプリケーション全体のカスタマイズが可能になる一方で、ある特定のフィーチャに動作を追加することができない。
【０００６】
従って、ユーザがフィーチャに知識や動作特性を追加することを可能にし、追加の動作を特定のフィーチャに対して一度だけ指定すればよいようにする、使いやすいシステムが要望されている。さらに、アプリケーションから出なくてもユーザがフィーチャに対して追加の動作を指定することを可能にし、追加の動作が選択されたフィーチャとイベントに対して即時に示されるようにするシステムが要望されている。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のシステムには上述したような種々の問題があり、さらなる改善が望まれている。
【０００８】
そこで本発明の目的は、新しい動作をオブジェクトと即時に関連付け中断することなく設計作業を続けることが可能な、オブジェクトの動作を強化するためにランタイム期間にアプリケーション内にコードを追加する、コンピュータシステムのオペレーション方法を提供することにある。
【課題を解決するための手段】
【０００９】
以上に鑑みて、本発明は、ユーザが作業中のアプリケーションから出なくても、特定のイベントがアプリケーション実行の途中で特定のオブジェクトと関連付けられるたびに、そのオブジェクトやフィーチャに示させる動作や知識ベースの特性を記述したコードを準備できるようにするシステム、方法および装置を提供している。ユーザは、オブジェクトの作成時にも、あとで既存のオブジェクトを選択するときにも、コードを準備することができる。
【００１０】
一般的に、本発明の一側面によれば、追加の動作はオブジェクトと永続的に関連付けられ、オブジェクトのコピーが作られると、追加の知識と動作もコピーされ、コピーされたオブジェクトが動作が変更された初期オブジェクトと同じになるようにしている。
【００１１】
本発明の別の側面によれば、ユーザは、あるオブジェクトを選択するとスクリーンに表示される動作作成アイコンまたはシンボルを選択することによって、オブジェクトの動作を作成できるようになっている。このアイコンを選択すると、ダイアログボックスが表示されるので、そこで動作コードやスクリプトを書くことができる。コードを書くことを完了した後、ユーザがダイアログボックスから出ると、アプリケーションは、オブジェクト、イベント、および動作コードを動作データ構造 (behavior data structure) にストアする。上述したように、新しい動作はオブジェクトと即時に関連付けられるので、中断することなく設計作業を続けることができる。
【発明の効果】
【００１２】
以上、説明したように、本発明によれば、ユーザが作業中のアプリケーションから出なくても、特定のイベントがアプリケーション実行の途中で特定のオブジェクトと関連付けられるたびに、そのオブジェクトやフィーチャに示させる動作や知識ベースの特性を記述したコードを準備する。
【００１３】
このため、ユーザは、オブジェクトの作成時にも、後で既存のオブジェクトを選択するときにも、コードを準備することができる。
【００１４】
また、追加の動作はオブジェクトと永続的に関連付けられ、オブジェクトのコピーが作られると、追加の知識と動作もコピーされるので、コピーされたオブジェクトが動作が変更された初期オブジェクトと同じになるようにできる。
【００１５】
また、ユーザは、あるオブジェクトを選択するとスクリーンに表示される動作作成アイコンまたはシンボルを選択することによって、オブジェクトの動作を作成できるようになっている。このアイコンを選択すると、ダイアログボックスが表示されるので、そこで動作コードやスクリプトを書くことができる。コードを書くことを完了した後、ユーザがダイアログボックスから出ると、アプリケーションは、オブジェクト、イベント、および動作コードを動作データ構造にストアする。
【００１６】
このため，新しい動作はオブジェクトと即時に関連付けられるので、中断することなく設計作業を続けることができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。
【００１８】
図１に示すように、従来のCAD/CAMシステムのユーザが採用しなければならない方法が概略図で示されている。アプリケーションの実行中に、ユーザは、ステップ５０に示すように、作成中の設計に組み入れることを望んでいるオブジェクトを選択することができる。この場合、ユーザは、ステップ５１に示すように、選択されたオブジェクトに動作特性を追加するのかどうかを判断しなければならない。ユーザが知識または動作を追加することを望んでいない場合には、ユーザは、ステップ５２に示すように、アプリケーションの実行を続けることで設計プロセスを継続することができる。しかし、ステップ５３から５７までに示すように、ユーザがオブジェクトに対して動作を生成することを望んでいる場合には、ユーザはアプリケーションから出なければならない。これを行うには、そのときの現在状態で設計をセーブしてから、アプリケーションを終了させ、アプリケーションコードにアクセスし、追加コードを入れようとするコード内の該当ロケーションを判断し、オブジェクトに対して強化した動作を指定している新しいコードを書き、その新しいオブジェクトを特定のイベントおよび動作とリンクさせ、コードをコンパイルしてから、アプリケーションをリスタートする必要がある。結果的には、アプリケーションのソースコードが変更され、追加した動作特性をもつ新バージョンのオブジェクトが作成されたことになる。ユーザは、その時点から以降は、設計プロセス期間中にどのバージョンのオブジェクトにアクセスしたいのか、つまり、オリジナルオブジェクトにアクセスしたいのか、動作を修正したオブジェクトにアクセスしたいのかを知っている必要がある。このプロセスは、新しい動作がオブジェクトと関連付けられるたびに行わなければならない。
【００１９】
図２に示すように、コンピュータシステム１００の物理リソースが示されている。コンピュータ１００はプロセッサホストバス１０２に接続された中央プロセッサ１０１を実装し、このバスを通してデータ、アドレスおよびコントロールのシグナルが受け渡しされている。プロセッサ１０１は、従来の汎用シングルチップマルチプロセッサにすることも、マルチチップマルチプロセッサにすることも可能である。そのようなものとして、例えば、Pentium（登録商標）シリーズのプロセッサ、K6プロセッサ、MIPS（登録商標）プロセッサ、Power PC（登録商標）プロセッサ、ALPHA（登録商標）プロセッサなどがある。さらに、プロセッサ１０１は、ディジタルシグナルプロセッサやグラフィックスプロセッサなどの、従来の特殊目的マイクロプロセッサにすることも可能である。マイクロプロセッサ１０１は、従来のアドレス、データ、およびコントロールのラインでプロセッセホストバス１０２に結合することができる。
【００２０】
コンピュータ１００は、RAMメモリコントローラ１０４が組み込まれているシステムコントローラ１０３を装備することが可能である。システムコントローラ１０３はホストバス１０２に接続できるので、ランダムアクセスメモリ１０５とのインタフェースとなることができる。システムコントローラ１０３は、ペリフェラルバスブリッジ機能 (peripheral bus bridging functions) とのホストバスとなることもできる。このようにして、コントローラ１０３は、プロセッサホストバス１０２上のシグナルを、プライマリペリフェラルバス１１０上のシグナルと互換性をもってやりとりすることを可能にしている。ペリフェラルバス１１０は、例えば、ペリフェラルコンポーネント相互接続 (PCI) バスにすることも、業界標準アーキテクチャ (ISA) バスにすることも、マイクロチャネルバスにすることも可能である。さらに、コントローラ１０３は、ホストバス１０２とペリフェラルバス１１０の間でデータをバッファリングし、データ転送レートを整合する働きもする。このようにして、コントローラ１０３は、例えば、64ビット66 MHzインタフェースをもち、データ転送レートが533Mバイト/秒であるプロセッサ１０１が、データ通路のビット幅、クロックスピード、またはデータ転送レートが異なるデータ通路をもつPCIバス１１０とのインタフェースとなることを可能にしている。
【００２１】
例えば、ハードディスクドライブ１１３に結合されたハードディスクドライブ制御インタフェース１１１、ビデオディスプレイ１１５に結合されたビデオディスプレイコントローラ１１２、およびキーボードとマウスコントローラ１２１を含むアクセサリデバイスはバス１２０に接続し、プロセッサ１０１に制御させることができる。コンピュータシステムは、コンピュータシステムネットワーク、イントラネットまたはインターネットへのコネクションを装備することが可能である。データと情報はこのコネクションを通して送信し、受信することができる。
【００２２】
また、コンピュータ１００は不揮発性ROMメモリ１２２を装備して、基本的コンピュータソフトウェアルーチンをそこに格納しておくこともできる。ROM １２２としては、EEPROM（電気的消去可能プログラマブルリードオンリメモリ）などの、変更可能メモリがあり、そこにコンフィギュレーションデータを格納しておくことができる。BIOSルーチン１２３はROM １２２に入れておき、基本的なコンピュータ初期設定、システムテスト、および入出力 (I/O) のサービスを提供することができる。BIOS １２３には、オペレーティングシステムをディスク１１３から「ブート」することを可能にするルーチンを含めておくことも可能である。高水準オペレーティングシステムの例としては、Microsoft Windows（登録商標） 98、Windows（登録商標） NT、UNIX（登録商標）、LINUX（登録商標）、Apple MacOS（登録商標）オペレーティングシステムや、その他のオペレーティングシステムがある。
【００２３】
オペレーティングシステムは全体をRAMメモリ１０５にロードすることも、その一部をRAMメモリ１０５、ディスクドライブストレージ１１３、またはネットワーク上のロケーションに置かれたストレージに置いておくことも可能である。オペレーティングシステムは、ソフトウェアアプリケーション、ソフトウェアシステムおよびソフトウェアシステムのツールを実行する機能をもたせることができる。ソフトウェア機能はビデオディスプレイコントローラ１１２およびコンピュータシステム１００の他のリソースにアクセスして、ビデオコンピュータディスプレイ１１５上で設計のモデリングを行うことを可能にしている。
【００２４】
次に、図３を参照して説明すると、本発明を達成するための方法が概略図で示されている。CAD/CAMアプリケーションプログラムを実行している途中で、ユーザは、いつでも、なんらかの方法で操作したいオブジェクトを選択することができる（ステップ１５０）。このとき、ユーザは、アプリケーションコードの中でまだコーディングされていない追加の動作を、そのオブジェクトが示すのを望むかどうかを判断しなければならない（ステップ１５１）。オブジェクトが、アプリケーションソフトウェアにコーディングされている通りに動作を続けることをユーザが望んでいる場合には、ユーザは、例えば、オブジェクトで実行したいアクションを選択することで、アプリケーションの実行を続けるだけである（ステップ１６０）。しかし、ユーザがオブジェクトに動作を追加することを望んでいる場合には（ステップ１５１）、アプリケーションは動作データ構造をオープンして、ユーザの入力を受け取る（ステップ１５２）。この場合は、ユーザは、例えば、ある種の特定イベントが実行されたときオブジェクトに示させる動作を指定したコードをキーボードからタイプインして、コードを書くことになる（ステップ１５３）。このコードは、例えば、スクリプト言語などの、どの解釈コンピュータ言語で書くこともできる。ユーザがコードを書くことを終えると、アプリケーションはそのコードを動作データ構造にストアするが（ステップ１５４）、そこには選択されたオブジェクトと特定イベントが示されている。本発明によれば、動作を指定するオペレーションは、アプリケーションプログラムから出ることなく、ユーザによって実行され、オブジェクトの新しい動作は、コーディングされたイベントが、その時点から以降に設計プロセスでユーザによって選択されたとき即時に現れることになる。オブジェクトに対してイベントを実行することをユーザが指示するたびに（ステップ１６０）、本発明のアプリケーションプログラムは、追加の動作のコードが入っている動作データ構造が、選択されたオブジェクトに対して存在するかどうかをチェックするようになっている（ステップ１６１）。存在しなければ、アプリケーションは、アプリケーションソフトウェアの中に存在する既存コードに従って、オブジェクトに対して要求アクションを実行することになる。しかし、オブジェクトおよび要求されたイベントに対して動作データ構造が存在する場合には、アプリケーションプログラムは、選択されたイベントに対応する該当コードを呼び出し、実行するので（ステップ１６２、１６３）、オブジェクトは望みの動作を示すことになる。
【００２５】
次に、図４〜図８を参照して説明する。以下では、本発明の好適実施形態に示されているビデオディスプレイイメージを参照しながら、図示の例を基にして本発明の例について説明する。図４〜図８において、ユーザが動作を追加しようとしているオブジェクトは穴であり、その追加の動作が関連付けられるイベントはドラッグアンドドロップイベントである。まず、図４に示すように、CAD/CAMディスプレイ２００は、CAD/CAMプログラムの実行中に表示させることができる。CAD/CAMディスプレイには、コンピュータ生成モデルまたは部品２００を含めることが可能である。また、ディスプレイ２００には、ユーザが穴の設計パラメータを指定できるようにするダイアログボックス２４０も示されている。例えば、図４のダイアログボックス２４０に示すように、ユーザは、穴のサイズなどの、穴の属性に関する値を入力することができ、穴の角度や、例えば、テーパ穴であるか、くり広げ穴 (counter-bored hole) であるかといった、穴のタイプを示すデータを指定することも可能である。ユーザは、設計している部品２２０上に穴２５０を位置付けるときに使用される、穴のアンカー点を示すデータを入力することも可能である。
【００２６】
次に、図5に示すように、以前に作られた穴２５０がそこに位置決めされている部品が示されている。図５は、ドラッグアンドドロップイベントがその穴に適用されたとき、なにが行われるかを示している。ドラッグアンドドロップイベントを開始するには、ユーザは移動可能カーソルまたはアイコンを、選択されたフィーチャ、この例では、穴２５０の上に置く。カーソルまたは移動可能アイコンの位置を、マウスや他のポインティングデバイスを使用して決めることも可能である。その後ユーザは、コマンド、すなわち、選択されたフィーチャを別のロケーションにコピーすることを要求するコマンドを、コンピュータシステム１００に対して出す。このケースでは、カーソルを穴の上に置いている間、マウスのボタンを押すことによりコマンドが出される。ユーザは、次に、置きたい別の穴の位置にカーソルを移動し、マウスボタンを離す。コンピュータシステムは、アプリケーションソフトウェアの指示を受けて、穴２５０のコピー２６０を新しい位置に置くことになる。新しい穴２６０は、コピーされた穴２５０の属性をすべて含む。
【００２７】
上述したように、ユーザは穴２５０に動作を追加したい場合がある。一例として、ドラッグアンドドロップイベントが穴上で実行されるとき、ドロップされる部品の属性に応じて、穴のある種の属性を変更することを指定したい場合がある。例えば、穴が木製の部品上にドロップされる場合には、ユーザが穴のタイプをテーパ穴に変更するように指定したい場合もあれば、穴がスチール製の部品上にドロップされる場合には、ユーザが穴をくり広げ穴にするように指定したい場合もある。別の例として、穴の深さと径を、穴がドロップされようとしているオブジェクトの長さまたは体積に応じてユーザが変更したい場合もある。
【００２８】
次に、図６を参照して説明すると、オブジェクト、この例では、穴２５０が選択された後で、ユーザがその穴に動作を追加することを望んでいる場合には、ユーザは、コードを書いて、入力できるようにするダイアログボックス３００がビデオディスプレイに表示されることを指定したコマンドを、コンピュータシステムに対して出すことになる。このコマンドは、例えば、アイコン２７０などのアイコンをクリックするか、ツールバーのメニュー２８０からコマンドを選択することで、出すことができる。図示のように、ダイアログボックスには、動作３１０の名前を入力できるようにするフィールド、および新しい動作が適用されるイベント３２０を指定したデータを入力できるようにするフィールドを含めることも可能である。また、ダイアログボックスには、新しい動作を指定したコードをユーザがタイプインするフィールド３３０を含めることも可能である。図６の３４０に示すように、コードはスクリプト言語である、Visual Basic（登録商標）で書かれており、ドラッグアンドドロップイベントが、選択された穴で実行されたとき、“Ｉ am called”というメッセージが表示されること、および穴のタイプを“type = 2”（この例では、これはくり広げ穴である）に変更することを指定している。ユーザがコードを書き終えた後で、ダイアログボックスをクローズすると、新しい動作はストアされ、ドラッグアンドドロップイベントが穴２５０で実行されると、呼び出されるようになっている。この新しい動作は穴２５０と、穴２５０のコピーが作られていれば、そのコピーによって示されるが、ユーザが他の穴にその動作を追加することを選択していなければ、設計内の他の穴には適用されない。
【００２９】
図６には、コンピュータディスプレイ上のエリア２３０も示されているが、そこには表示される部品が仕様ツリー (specification tree) として記述されたものが示され、そこでは各ノードは、ユーザによって処理できるオブジェクトに対応付けられている。例えば、穴は、仕様ツリーの中では、穴がそこから投影しているオブジェクトまたは部品を表しているノードの個所に表示される。この仕様ツリーはコンピュータ生成部品２２０の投影平面 (projection plane) を選択するためにも使用できる。
【００３０】
次に、図７を参照して説明すると、メッセージボックス３５０のディスプレイは、ドラッグアンドドロップイベントが、コーディングされた新しい動作に従って穴２５０で実行されたとき表示される。さらに、図８に示すように、新しい動作のコードに従って穴２５０がドロップされると、図８に３６０で示す穴２５０のコピーはくり広げ穴の形状になる。
【００３１】
下に示したのは、本発明の好適実施形態による、新しい動作に対するコードのサンプルコピーである。これはVisual Basic（登録商標）で書かれ、ドラッグアンドドロップイベントを引き起こし、穴に関してコーディングされている。
【００３２】
msgbox("I am called")
if Event.GetTargetOfType("CATIAPad").FirstLimit.Dimension.Value > 20 then
Event.GetDroppedFeature.Diameter.Value = 10
Event.GetDroppedFeature.Type = 2
Event.GetDroppedFeature.HeadDiameter.Value =
Event.GetTargetOfType("CATIAPad").FirstLimit.Dimension.Value / 2
else
Event.GetDroppedFeature.Type = 0
Event.GetDroppedFeature.Diameter.Value =
Event.GetTargetOfType("CATIAPad").FirstLimit.Dimension.Value / 3
end if
Event.GetDroppedFeature.BottomLimit.Dimension.Value =
Event.GetTargetOfType("CATIAPad").FirstLimit.Dimension.Value - 5
【００３３】
このコードは、ドロップされたオブジェクトと、そのプロパティの一部を取り出すことを指定している。ステートメント“GetTargetOfType”は、穴がそこにドロップされた部品の属性を指定しているデータを取り出している。このコードは、“CATIAPad”部品の選択された寸法が20の値より大であれば、穴の径を10の値にセットし、そのタイプを“Type = 2”（この例では、これはくり広げ穴である）に変更することを指定している。また、コードは、くり広げ穴のヘッド径を、“CATIAPad”部品の選択された寸法の値の1/2にセットすることも指定している。コードは、さらに、“CATIAPad”部品の選択された値が20より大きい値にセットされていなければ、穴のタイプを“Type = 0”にセットし、穴の径を“CATIAPad”部品の選択された寸法の値の1/3にセットするようにしている。最後に、コードは、ドロップされた穴の長さを、“CATIAPad”部品の長さから5の値を差し引いた値にセットすることを指定している。
【００３４】
本発明の好ましい実施形態では、新しい動作を追加するコードは、Visual Basic（登録商標）やJava（登録商標）Scriptなどのスクリプト言語で書かれている。しかし、例えば、Java（登録商標）のように、他のタイプの解釈言語を使用することも可能である。
【００３５】
当然に理解されるように、CAD/CAMシステムで定義できるオブジェクトまたはフィーチャならば、いずれも本発明の主題となることができ、CAD/CAMシステムで起こる、どのイベントに対しても動作を指定することが可能である。変更が可能なオブジェクトの別の例としては、ネジ、ボルト、ギヤ、ボックス、ロッド、ビームなどがある。イベントの別の例としては、作成、削除、コピー、インスタンス生成（つまり、リンクをもつオブジェクトのコピー）、オブジェクトのハイライト（強調表示）、およびオブジェクトのパラメータ（長さ、名前、質量など）の変更がある。
【００３６】
本発明は、ディジタル電子回路で実現することも、コンピュータハードウェア、ファームウェア、ソフトウェアで実現することも、これらの組み合わせで実現することも可能である。本発明の装置は、プログラマブルプロセッサで実行するためにマシン可読ストレージデバイスの形で明白に具現化されているコンピュータプログラムプロダクトで実現することが可能である。また、本発明の方法ステップは、命令のプログラムを実行するプログラマブルプロセッサに実行させ、入力データに演算を施し、出力を生成することによって本発明の機能を実行するようにすることができる。
【００３７】
本発明は、データストレージシステムとの間でデータと命令を受け渡しするように結合された少なくとも１つのプログラマブルプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含んでいるプログラマブルシステムで実行可能な１つまたは２つ以上のコンピュータプログラムで実現できるという利点がある。アプリケーションプログラムは、高水準手続き型プログラムミング言語またはオブジェクト指向プログラミング言語で書くことも、必要ならば、アセンブリ言語やマシン言語で書くことも可能であるが、いずれの場合も、言語はコンパイル言語または解釈言語（インタープリタ）にすることができる。上述したように、動作に関するコードを書くためにユーザが使用するプログラミング言語は、解釈言語でなければならない。
【００３８】
一般的に、プロセッサはリードオンリメモリおよび/またはランダムアクセスメモリから命令とデータを受け取る。コンピュータプログラム命令とデータを明白に具現化するのに適しているストレージデバイスとしては、あらゆる形体の不揮発性メモリがあり、その例としては、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスクや取り外し可能ディスクなどの磁気ディスク、磁気光学ディスク、CD-ROMディスクなどがある。これらは、いずれも、特殊設計ASIC（専用集積回路）で補強することも、そこに内蔵させることも可能である。
【００３９】
以上、本発明のいくつかの実施形態について説明してきたが、以上の説明から理解されるように、本発明の趣旨と範囲を逸脱しない限り、種々態様の変更が可能である。従って、他の実施形態も本発明の範囲に属するものである。
【図面の簡単な説明】
【００４０】
【図１】あるイベントが起こったときに示させる動作をオブジェクトに追加するためには、ユーザはソフトウェアアプリケーションを終了しなければならないようになっている、従来のコンピュータ支援設計プロセスを示す概略図である。
【図２】本発明実施形態で使用できるコンピュータシステムを示すブロック図である。
【図３】本発明実施形態の、システムを示す概略図である。
【図４】本発明実施形態の、穴を定義するデータを入力するためのダイアログボックスの例が示されている、CAD/CAMディスプレイに表示されるコンピュータ生成モデルまたは部品の透視図である。
【図５】本発明実施形態の、「ドラッグアンドドロップ」イベントとも呼ばれ、この例では穴の例示のオブジェクトに対して実行されるイベントの例を示す図である。
【図６】本発明実施形態の、オブジェクトの動作を指定するコードを入力するためのダイアログボックスツールがある、CAD/CAMディスプレイを示す図である。
【図７】本発明実施形態の、ユーザが追加した動作コードに従ってメッセージを表示するメッセージボックスがある、CAD/CAMディスプレイを示す図である。
【図８】本発明実施形態の、追加の動作がユーザによって追加されたイベントの、対象となったときに、オブジェクトが示すユーザ追加の動作の例を示すグラフィックディスプレイを示す図である。
【符号の説明】
【００４１】
１００  コンピュータシステム
２００  CAD/CAMディスプレイ
２２０  コンピュータ生成モデルまたは部品
２４０  ダイアログボックス
２５０  穴
２６０  穴のコピー
２７０  アイコン
２８０  メニュー
３００  ダイアログボックス
３１０  動作
３３０  フィールド
３５０  メッセージボックス
３６０  穴のコピー
【図１】
2006099798.tif 000003
【図２】
2006099798.tif 000004
【図３】
2006099798.tif 000005
【図４】
2006099798.tif 000006
【図５】
2006099798.tif 000007
【図６】
2006099798.tif 000008
【図７】
2006099798.tif 000009
【図８】
2006099798.tif 000010