特許第6542389号(P6542389)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シーメンス プロダクト ライフサイクル マネージメント ソフトウェアー インコーポレイテッドの特許一覧

特許6542389描画オブジェクトを推定するシステムおよび方法
<>
  • 特許6542389-描画オブジェクトを推定するシステムおよび方法 図000002
  • 特許6542389-描画オブジェクトを推定するシステムおよび方法 図000003
  • 特許6542389-描画オブジェクトを推定するシステムおよび方法 図000004
  • 特許6542389-描画オブジェクトを推定するシステムおよび方法 図000005
  • 特許6542389-描画オブジェクトを推定するシステムおよび方法 図000006
  • 特許6542389-描画オブジェクトを推定するシステムおよび方法 図000007
  • 特許6542389-描画オブジェクトを推定するシステムおよび方法 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6542389
(24)【登録日】2019年6月21日
(45)【発行日】2019年7月10日
(54)【発明の名称】描画オブジェクトを推定するシステムおよび方法
(51)【国際特許分類】
   G06F 17/50 20060101AFI20190628BHJP
   G06T 11/80 20060101ALI20190628BHJP
   G06F 3/0484 20130101ALI20190628BHJP
【FI】
   G06F17/50 610A
   G06T11/80 E
   G06F3/0484 120
【請求項の数】15
【全頁数】25
(21)【出願番号】特願2017-558459(P2017-558459)
(86)(22)【出願日】2016年5月6日
(65)【公表番号】特表2018-520412(P2018-520412A)
(43)【公表日】2018年7月26日
(86)【国際出願番号】US2016031102
(87)【国際公開番号】WO2016182875
(87)【国際公開日】20161117
【審査請求日】2017年12月21日
(31)【優先権主張番号】14/707,759
(32)【優先日】2015年5月8日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】504438288
【氏名又は名称】シーメンス プロダクト ライフサイクル マネージメント ソフトウェアー インコーポレイテッド
【氏名又は名称原語表記】Siemens Product Lifecycle Management Software Inc.
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100135633
【弁理士】
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ダレン ローデス
(72)【発明者】
【氏名】トマス ジェイムズ ブキャナン
(72)【発明者】
【氏名】スティーヴン ロバート ジャンコヴィッチ
【審査官】 田中 幸雄
(56)【参考文献】
【文献】 特開2010−118048(JP,A)
【文献】 特開平1−13682(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/50
G06F 3/0484
G06T 11/80
(57)【特許請求の範囲】
【請求項1】
描画オブジェクトのためのシステム(100)であって、
少なくとも1つのプロセッサ(102)を有しており、該少なくとも1つのプロセッサ(102)は、以下のようにコンフィギュレーションされている、すなわち、
・ディスプレイデバイス(108)によりワークスペース(114)上に表示された複数の先行オブジェクト(112)のタイプとサイズとを表すデータ、および、前記複数の先行オブジェクト(112)が前記ワークスペース(114)上に供給される順番を指定するデータに少なくとも部分的に基づき、入力デバイス(110)を介した少なくとも1つの入力(116)が、以下のような追加オブジェクト(122)に対応する、ということを決定し、すなわち該追加オブジェクト(122)は、前記先行オブジェクトのうち少なくとも1つの先行オブジェクトに対応する決められたタイプを有しており、かつ前記先行オブジェクトのうち前記少なくとも1つの先行オブジェクトに対応するという点について予め定められた許容範囲内にあるサイズを有するものであり、
・前記決定に応答して前記ディスプレイデバイスに、前記少なくとも1つの先行オブジェクトに対応するサイズおよび形状を有する前記追加オブジェクトの代わりに、前記ワークスペース上に置換オブジェクト(126)を表示させる、
描画オブジェクトのためのシステム(100)。
【請求項2】
前記少なくとも1つのプロセッサは、
前記追加オブジェクトのタイプを決定し、それぞれ異なるタイプの複数の先行オブジェクトを含む複数の先行オブジェクトから成る合から、前記追加オブジェクトと同じタイプを有する複数の先行オブジェクトから成る候補集合(134)を選択する、
ようにコンフィギュレーションされており、
前記少なくとも1つのプロセッサは、
前記少なくとも1つの先行オブジェクトを決定するために、前記追加オブジェクトのサイズおよび形状を、前記候補集合内の前記複数の先行オブジェクトの個々のサイズおよび形状と比較する、
ようにコンフィギュレーションされている、
請求項1記載のシステム。
【請求項3】
前記複数の先行オブジェクトを表すデータが、メモリ(106)、ストレージデバイス(726)、またはメモリ(106)とストレージデバイス(726)との組み合わせ、のうちの少なくとも1つに記憶されており、前記データはそれぞれ、前記複数の先行オブジェクトのタイプ、サイズ、形状およびポジション、ならびに各先行オブジェクトが前記ワークスペースに供給された個々の順番を指定し、
前記少なくとも1つのプロセッサは、
前記置換オブジェクトの個々のタイプ、サイズ、形状およびポジションを含むように、かつ前記置換オブジェクトが前記複数の先行オブジェクトのうち最新の先行オブジェクトであることを表すよう、記憶された前記データを変更する、
ようにコンフィギュレーションされている、
請求項2記載のシステム。
【請求項4】
前記少なくとも1つのプロセッサは、
先行オブジェクトの予め定められた最大数、前記順番、前記先行オブジェクトのポジションに対し相対的な前記追加オブジェクトのポジション、またはこれらの任意の組み合わせ、のうちの少なくとも1つに少なくとも部分的に基づき、前記追加オブジェクトと同じタイプを有する先行オブジェクトの総数よりも少ない前記候補集合内に含まれるよう、所定量の複数の先行オブジェクトを選択する、
ようにコンフィギュレーションされている、
請求項3記載のシステム。
【請求項5】
前記少なくとも1つのプロセッサは、以下のようにコンフィギュレーションされている、すなわち、
・前記追加オブジェクト(404)と、前記候補集合内の前記先行オブジェクト(402)のうち少なくとも2つの先行オブジェクトが、同じサイズおよび形状を有しかつ等間隔で整列されている、という点について予め定められた許容範囲内にある、ということを決定し、
・該決定に応答して、前記置換オブジェクトと、前記先行オブジェクトのうち前記少なくとも2つの先行オブジェクトとが、同じサイズおよび形状を有し、かつ等間隔で整列されているよう、前記置換オブジェクト(406)を前記ディスプレイデバイスにより表示させる、
請求項2から4までのいずれか1項記載のシステム。
【請求項6】
前記少なくとも1つのプロセッサは、以下のようにコンフィギュレーションされている、すなわち、
・前記追加オブジェクト(504)と、前記先行オブジェクトのうち少なくとも1つの先行オブジェクト(502)とが、同じサイズおよび形状を有しかつ互いに鏡像である、という点について予め定められた許容範囲内にある、ということを決定し、
・該決定に応答して、前記少なくとも1つの先行オブジェクトに対応するサイズおよび形状を有しかつ前記少なくとも1つの先行オブジェクトの鏡像である前記追加オブジェクトの代わりに、前記置換オブジェクト(506)を前記ディスプレイデバイスにより表示させる、
請求項2から5までのいずれか1項記載のシステム。
【請求項7】
メモリと、アプリケーションソフトウェアコンポーネントと、少なくとも1つの前記入力デバイスおよび前記ディスプレイデバイスから成るタッチスクリーンとを含み、
前記アプリケーションソフトウェアコンポーネントは命令を含んでおり該命令は、前記メモリに格納されて前記少なくとも1つのプロセッサにより実行されると、前記少なくとも1つのプロセッサ、ユーザによる前記タッチスクリーンのタッチを介して受信した入力に応答して、前記タッチスクリーン上に前記追加オブジェクトと前記置換オブジェクトと前記複数の先行オブジェクトとを表示させるようにし、
前記アプリケーションソフトウェアコンポーネントは、CADソフトウェアアプリケーションに対応しており、該CADソフトウェアアプリケーションは、前記タッチスクリーンを介した前記入力に少なくとも部分的に基づき、CAD描画を生成するように動作する、
請求項1から6までのいずれか1項記載のシステム。
【請求項8】
前記追加オブジェクトおよび前記先行オブジェクトのタイプは、幾何学的プリミティブタイプまたは幾何学的形状タイプに対応する、
請求項1から7までのいずれか1項記載のシステム。
【請求項9】
描画オブジェクトのための方法であって、当該方法は以下のステップを含む、すなわち、
a)少なくとも1つのプロセッサのオペレーションによって、ディスプレイデバイス(108)によりワークスペース(114)上に表示された複数の先行オブジェクト(112)のタイプおよびサイズを表すデータ、および、前記複数の先行オブジェクト(112)が前記ワークスペース(114)上に供給される順番を指定するデータに少なくとも部分的に基づき、少なくとも1つの入力デバイス(110)を介した少なくとも1つの入力(116)が、以下のような追加オブジェクト(122)に対応する、ということを決定するステップであって、すなわち該追加オブジェクト(122)は、前記先行オブジェクトのうち前記少なくとも1つの先行オブジェクトに対応する決められたタイプを有しており、かつ前記先行オブジェクトのうち少なくとも1つの先行オブジェクトに対応するという点について予め定められた許容範囲内にあるサイズを有するものである、ステップと、
b)前記少なくとも1つのプロセッサのオペレーションにより、前記ステップa)に応答して前記ディスプレイデバイスに、前記少なくとも1つの先行オブジェクトに対応するサイズおよび形状を有する前記追加オブジェクトの代わりに、前記ワークスペース上に置換オブジェクト(126)を表示させるステップと、
を含む、
描画オブジェクトのための方法。
【請求項10】
前記ステップa)は、
c)前記少なくとも1つのプロセッサのオペレーションにより、前記追加オブジェクトのタイプを決定するステップと、
d)前記少なくとも1つのプロセッサのオペレーションにより、それぞれ異なるタイプの先行オブジェクトを含む複数の先行オブジェクトから成る合から、前記追加オブジェクトと同じタイプを有する複数の先行オブジェクトから成る候補集合(134)を選択するステップと、
e)前記少なくとも1つのプロセッサのオペレーションにより、前記少なくとも1つの先行オブジェクトを決定するために、前記追加オブジェクトのサイズおよび形状を、前記候補集合内の前記先行オブジェクトの個々のサイズおよび形状と比較するステップと、
を含む、
請求項9記載の方法。
【請求項11】
前記複数の先行オブジェクトを表すデータが、メモリ(106)、ストレージデバイス(726)、またはメモリ(106)とストレージデバイス(726)との組み合わせ、のうちの少なくとも1つに記憶されており、前記データはそれぞれ、前記複数の先行オブジェクトのタイプ、サイズ、形状およびポジション、ならびに各先行オブジェクトが前記ワークスペースに供給された個々の順番を指定し、
さらに当該方法は、
f)前記少なくとも1つのプロセッサのオペレーションにより、前記置換オブジェクトの個々のタイプ、サイズ、形状およびポジションを含むように、かつ前記置換オブジェクトが前記複数の先行オブジェクトのうち最新の先行オブジェクトであることを表すよう、記憶された前記データを変更するステップ、
を含む、
請求項10記載の方法。
【請求項12】
前記ステップd)は、
先行オブジェクトの予め定められた最大数、前記順番、前記先行オブジェクトのポジションに対し相対的な前記追加オブジェクトのポジション、またはこれらの任意の組み合わせ、のうちの少なくとも1つに少なくとも部分的に基づき、前記追加オブジェクトと同じタイプを有する先行オブジェクトの総数よりも少ない前記候補集合内に含まれるよう、所定量の複数の先行オブジェクトを選択するステップ、
を含む、
請求項11記載の方法。
【請求項13】
前記ステップa)は、
g)前記少なくとも1つのプロセッサのオペレーションにより、前記追加オブジェクト(404)と、前記候補集合内の前記先行オブジェクト(402)のうち少なくとも2つの先行オブジェクトが、同じサイズおよび形状を有しかつ等間隔で整列されている、という点について予め定められた許容範囲内にある、ということを決定する、
ステップを含み、
前記ステップb)は、
前記ステップg)に応答して、前記置換オブジェクトと、前記先行オブジェクトのうち少なくとも2つの先行オブジェクトとが、同じサイズおよび形状を有しかつ等間隔で整列されているように、前記置換オブジェクト(406)を前記ディスプレイデバイスにより表示させるステップ、
を含む、
請求項9から12までのいずれか1項記載の方法。
【請求項14】
前記ステップa)は、
g)前記少なくとも1つのプロセッサのオペレーションにより、前記追加オブジェクト(504)と、前記少なくとも1つの先行オブジェクト(502)とが、同じサイズおよび形状を有しかつ互いに鏡像である、という点について予め定められた許容範囲内にある、ということを決定する、
ステップを含み、
前記ステップb)は、
h)前記ステップg)に応答して、前記少なくとも1つの先行オブジェクトに対応するサイズおよび形状を有しかつ前記少なくとも1つの先行オブジェクトの鏡像である前記追加オブジェクトの代わりに、前記置換オブジェクト(506)を前記ディスプレイデバイスにより表示させるステップ、
を含む、
請求項9から13までのいずれか1項記載の方法。
【請求項15】
タッチスクリーンが、前記少なくとも1つの入力デバイスとディスプレイデバイスとを有し、前記追加オブジェクトおよび前記先行オブジェクトのタイプは、幾何学的プリミティブタイプまたは幾何学的形状タイプに対応する、
請求項9から14までのいずれか1項記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、全般的にいえば、コンピュータ支援による設計、視覚化および製造システム、製品データマネージメント(PDM)システム、製品ライフサイクルマネージメント(“PLM”)システム、ならびに製品および他の項目のデータを生成および管理するために用いられる同等のシステム(これらをまとめて製品システムと称する)に関する。
【0002】
背景技術
コンピュータ支援設計(CAD)システムおよび他のタイプの描画システムは、製品の図面を生成可能なグラフィカルユーザインタフェース(GUI)を含むことができる。かかるグラフィカルユーザインタフェースは、改善によって恩恵を受けることができる。
【0003】
概要
ここで開示する様々な実施形態には、CADシステムまたは他のタイプの描画システムにおいてオブジェクトを描画するために用いることのできるシステムおよび方法が含まれる。1つの例によれば、システムは少なくとも1つのプロセッサを含むことができる。少なくとも1つのプロセッサを、以下のようにコンフィギュレーションすることができる。すなわち、ワークスペース上でディスプレイデバイスにより表示された複数の先行オブジェクトのタイプとサイズを表すデータに少なくとも部分的に基づき、入力デバイスを介した少なくとも1つの入力が、以下のような追加オブジェクトに対応する、ということを決定する。すなわちこの追加オブジェクトは、複数の先行オブジェクトのうち少なくとも1つの先行オブジェクトに対応する決められたタイプを有しており、かつ複数の先行オブジェクトのうち少なくとも1つの先行オブジェクトに対応する、という点について予め定められた許容範囲内のサイズを有するものである。少なくとも1つのプロセッサを、これに応答して、少なくとも1つの先行オブジェクトに対応するサイズおよび形状を有する追加オブジェクトの代わりに、ディスプレイデバイスがワークスペース上で置換オブジェクトを表示するように、コンフィギュレーションすることもできる。
【0004】
別の例によれば、少なくとも1つのプロセッサのオペレーションにより実施される様々なアクションを、1つの方法に含めることができる。かかる方法は、ワークスペース上でディスプレイデバイスにより表示された複数の先行オブジェクトのタイプとサイズを表すデータに少なくとも部分的に基づき、入力デバイスを介した少なくとも1つの入力が以下のような追加オブジェクトに対応する、ということを決定するステップを含むことができる。すなわちこの追加オブジェクトは、複数の先行オブジェクトのうち少なくとも1つの先行オブジェクトに対応する決められたタイプを有しており、かつ複数の先行オブジェクトのうち少なくとも1つの先行オブジェクトに対応する、という点について予め定められた許容範囲内のサイズを有するものである。同様にこの決定に応答して、この例示的な方法は、少なくとも1つの先行オブジェクトに対応するサイズおよび形状を有する追加オブジェクトの代わりに、ディスプレイデバイスがワークスペース上で置換オブジェクトを表示するステップ、を含むことができる。
【0005】
さらに別の例として、(たとえばストレージデバイスにおけるソフトウェアコンポーネントなどのように)実行時に少なくとも1つのプロセッサに上述の方法を実施させる実行可能な命令によってコーディングされた、非一時的なコンピュータ読み取り可能媒体を挙げることができる。
【0006】
これまでの記載は、以下の詳細な説明を当業者がよりよく理解できるよう、本開示の技術的特徴をどちらかといえば大雑把に略述したものである。各請求項の要旨を成す本開示の付加的な特徴および利点については、以下で述べることにする。当業者であれば理解できるように、当業者は開示された着想および特定の実施形態を、本開示と同じ目的を成し遂げるための変更または他の構造の設計のベースとして、ただちに使用することができる。さらに当業者であれば、かかる等価の構造が最も広い形態において本開示の着想および範囲から逸脱しないことを理解するであろう。
【0007】
以下の発明の詳細な説明に入る前に、本明細書全体を通して用いられる可能性のあるいくつかの用語や表現について、ここで定義しておくのがよいと思われる。たとえば用語「含む」および「有する」ならびにそれらの派生語は、制限なく含有を意味する。単数形である「1つの」および「前記の」は複数形も同様に含むことを意図しており、このことは文脈によって明らかにそうではないことを指さないかぎりあてはまる。さらにここで用いられる用語「および/または」は、関連する一覧項目のうちの1つまたは複数のありとあらゆる可能な組み合わせのことを指し、かつそれらを包含するものである。用語「または」は、文脈によって明らかに別のことを指さないかぎり、「および/または」の意味を含む。表現「と対応づけられた」および「それと対応づけられた」ならびにそれらの派生語は、含む、中に含まれている、相互接続されている、含有する、中に含有されている、に接続されている、または、と接続されている、に結合されている、または、と結合されている、と通信可能である、と共同する、交互配置する、並置する、に近接している、に結び付けられている、または、と結び付けられている、有する、を所有している、または同等のものを意味することができる。
【0008】
同様に、様々な要素、機能またはアクションを表すために、ここでは「第1の」、「第2の」、「第3の」といった用語が使われる場合もあるが、これらの用語によってそれらの要素、機能またはアクションが限定されるものではない。むしろこれらの数形容詞は、それぞれ異なる要素、機能またはアクションを互いに区別するために用いられる。たとえば、本開示の範囲から逸脱することなく、第1の要素、機能またはアクションを、第2の要素、機能またはアクションと称してもいいし、同様に第2の要素、機能またはアクションを、第1の要素、機能またはアクションと称してもよい。
【0009】
これらに加え、1つまたは複数の機能またはプロセスを実施するように「プロセッサがコンフィギュレーションされている」といった表現は、ソフトウェア、ファームウェアおよび/または結線された回路を介して、それらの機能またはプロセスを実施するように、プロセッサの動作がコンフィギュレーションされている、ということを意味することができる。たとえば、ある機能/プロセスを実施するようにコンフィギュレーションされたプロセッサを、その機能/プロセスをプロセッサに実行させるようにプログラミングされたソフトウェア/ファームウェアを能動的に実行するプロセッサに対応するものとすることができ、かつ/または、その機能/プロセスを実施するためにプロセッサにより実行されるように使用可能なメモリまたはストレージデバイス内に、ソフトウェア/ファームウェアを有するプロセッサに対応するものとすることができる。さらにここで述べておくと、1つまたは複数の機能またはプロセスを実施するように「コンフィギュレーションされている」プロセッサを、それらの機能またはプロセスを実施するために特別に製造されたまたは「配線された」プロセッサ回路に対応するものとすることができる(たとえばASICまたはFPGA設計)。
【0010】
用語「に隣接する」は、ある要素が別の要素と相対的に近いが、その要素とは接触していないこと、または文脈により明らかに別のことを指していないかぎり、その要素が別の部分と接触していないこと、を意味する。
【0011】
いくつかの用語および表現に対する定義は、本明細書全体にわたって規定されるものであり、当業者であれば理解できるように、かかる定義は、大部分の事例ではないにしても数多くの事例において、ここで定義した用語および表現の以前の使用にも将来の使用にも適用される。いくつかの用語は、幅広い種類の実施形態を含むことができるけれども、添付の特許請求の範囲は、それらの用語を特定の実施形態に明確に限定している場合もある。
【図面の簡単な説明】
【0012】
図1】描画オブジェクトを容易にする1つの例示的なシステムを示す機能ブロック図である。
図2】追加オブジェクトが描画され置換オブジェクトによって置き換えられるディスプレイデバイスの一連のビューを示す図である。
図3】追加オブジェクトが描画され置換オブジェクトによって置き換えられるディスプレイデバイスの一連のビューを示す図である。
図4】追加オブジェクトが描画され置換オブジェクトによって置き換えられるディスプレイデバイスの一連のビューを示す図である。
図5】追加オブジェクトが描画され置換オブジェクトによって置き換えられるディスプレイデバイスの一連のビューを示す図である。
図6】描画オブジェクトを容易にする例示的な方法論を示すフローチャートである。
図7】1つの実施形態を実現可能なデータ処理システムを示すブロック図である。
【0013】
詳細な説明
次に、描画システムに属する様々な技術について、図面を参照しながら説明する。それらの図中、同様の構成要素は全体を通じて同じ参照符号によって表されている。本開示の基本原理を記述するために、以下で説明する図面および種々の実施形態が用いられているが、これらは例示の目的で用いたにすぎず、いかなるかたちであっても本開示の範囲の限定を意図したものではない。当業者であれば理解できるように、本開示の基本原理を、適切に構成された任意の装置において実現することができる。ここで理解されたいのは、特定のシステム構成要素によって実行されるものと記載された機能を、複数の構成要素によって実施することができる、という点である。同様にたとえば、複数の構成要素によって実行されるものと記載された機能を実施するために、1つの構成要素をコンフィギュレーションしてもよい。本願の数多くの革新的な着想について、具体例として挙げた非限定的な実施形態を参照しながら説明する。
【0014】
(CADシステムなどのような)描画システムの多くの形態は、様々なタイプのビジュアルオブジェクトを操作するために動作する。かかるビジュアルオブジェクトとして、直線分、円弧、曲線およびスプラインなどのような幾何学的プリミティブを挙げることができる。かかるビジュアルオブジェクトとしてさらに、円、正方形、矩形、球、円錐、円筒、立方体、直方体などのような2D形状および3D形状を挙げることもできる。かかるビジュアルオブジェクトとしてさらに、複雑な2D構造または3D構造を形成するために、比較的単純なビジュアルオブジェクトの組み合わせを挙げることができる。したがって一般に、描画オブジェクトを、(たとえば表示画面などのような)ディスプレイデバイスにより表示可能な任意のタイプのグラフィカルオブジェクトに対応させることができ、そのようなオブジェクトを、入力デバイスによる入力を介して、形状、サイズ、配向および/またはポジションに関して、視覚的に操作することができる。
【0015】
図1を参照すると、オブジェクトの描画および操作を容易にする例示的なシステム100が示されている。システム100は少なくとも1つのプロセッサ102を含むことができ、このプロセッサは、本明細書で説明する種々の特徴を実施するために、メモリ106から1つまたは複数のアプリケーションソフトウェアコンポーネント104を実行するように、コンフィギュレーションされている。アプリケーションソフトウェアコンポーネント104は、CADソフトウェアアプリケーションなどのような描画ソフトウェアアプリケーションまたはその一部を含むことができる。かかるCADソフトウェアアプリケーションは、ユーザによって与えられた入力に少なくとも部分的に基づき、CAD図面を生成するように動作可能である。
【0016】
本明細書で説明する機能の少なくともいくつかを含むように適合可能なCAD/CAM/CAEソフトウェアの一例として、Siemens Product Lifecycle Management Software Inc. (Plano, Texas)から市販されているNX suite of applicationsが挙げられる。ただしここで理解されたいのは、かかる描画ソフトウェアアプリケーションを、他のタイプの描画ソフトウェアに対応させることができ、そのようなソフトウェアには、ベクタベースのイラストレーションソフトウェア、プレゼンテーションソフトウェア、図表作成ソフトウェア、ワードプロセッシングアプリケーション、ゲーム、ビジュアルプログラミングツール、および/または、オブジェクトの描画および操作を伴う他の任意のタイプのソフトウェアが含まれる、という点である。
【0017】
既述のシステムは、少なくとも1つの(表示画面などのような)ディスプレイデバイス108と、少なくとも1つの入力デバイス110とを含むことができる。たとえばプロセッサ102を、入力デバイスとディスプレイデバイスの双方として用いられるタッチスクリーンを含むハウジング内に組み込むことができる。かかるシステムの例として、携帯電話、タブレットおよびノート型コンピュータを挙げることができる。ただし、例示的な実施形態が他のタイプの入力デバイスおよびディスプレイデバイスを用いてもよい、という点を理解されたい。たとえばシステムは、LCDモニタまたはプロジェクタといったタッチスクリーンを含まない表示画面を備えたディスプレイデバイスを含むことができる。さらにシステムは、オブジェクトを操作するための入力を与える他のタイプの入力デバイスを用いることができ、たとえばマウス、ポインタ、タッチパッド、ドローイングタブレット、トラックボール、ジョイスティック、キーパッド、キーボード、カメラ、モーションセンシングデバイス、または本明細書で説明する入力を与えることのできる他の任意のタイプの入力デバイスを用いることができる。
【0018】
さらにここで述べておくと、本明細書で説明するプロセッサを、本明細書で説明するディスプレイデバイスおよび入力デバイスとは離れた場所にあるサーバ内に配置させてもよい。かかる例によれば、既述のディスプレイデバイスおよび入力デバイスを、クライアントデバイス内に含めてもよく、このクライアントデバイスは、(インターネットを含むことのできる)有線または無線のネットワークを介してサーバ(および/またはサーバ上で実行されるバーチャルマシン)と通信する。いくつかの実施形態によれば、かかるクライアントデバイスはたとえば、入力デバイスからサーバへ入力を送信し、かつサーバから視覚情報を受信してディスプレイデバイスにより表示する目的で、リモートデスクトップアプリケーションを実行することができ、またはサーバと共にリモートデスクトッププロトコルを実行することができる。かかるリモートデスクトッププロトコルの例として、Teradici社のPCoIP、Microsoft社のRDPおよびRFBプロトコルが挙げられる。かかる例によれば、本明細書で説明するプロセッサを、サーバのプロセッサにおいて実行されるバーチャルマシンのバーチャルプロセッサに対応させることができる。
【0019】
図1には、ディスプレイデバイス108における複数の異なるビュー(A〜C)が概略的に描かれており、これらのビューは、入力デバイス110を介して受信した様々な入力に応答して、プロセッサ102により表示させられたものである。たとえばディスプレイデバイス108のビューAの場合、入力デバイス110を介して受信した描画入力116に応答して、ディスプレイデバイス108がワークスペース114上にビジュアルオブジェクト112を表示させるように、プロセッサ102を(たとえば既述のアプリケーションソフトウェアコンポーネント104を介するなどして)コンフィギュレーションすることができる。かかるワークスペース114を、二次元の背景表面に対応させることができ、この表面上で、アプリケーションソフトウェアコンポーネント104のグラフィカルユーザインタフェースにおいて、オブジェクトが描画され、表示され、操作される。ただしここで理解されたいのは、3D描画のために、ワークスペースを三次元空間の二次元ビューに対応させることもでき、そこにおいてオブジェクトが、アプリケーションソフトウェアコンポーネント104のグラフィカルユーザインタフェースを用いて、視覚的に描画され、表示され、操作される、という点である。さらに別の例として、3Dワークスペースにおいて3D描画のレンダリングのために、3Dディスプレイを使用することもできる。
【0020】
例示的な実施形態によれば、ディスプレイデバイス108を介して表示されるビジュアルオブジェクト112は、入力デバイス110を介した描画入力116に応答して描画完了状態にしておくことができる先行オブジェクト118を含むことができる。先行オブジェクト118各々は、所定のタイプとサイズを有することができる。それら先行オブジェクトのタイプとサイズを表すオブジェクトデータ140を、プロセッサ102によって決定することができ、メモリ106(および/または描画ファイルなどのようないくつかの他のデータの場合にはストレージデバイス)に記憶させることができる。
【0021】
さらに、ワークスペース上の先行オブジェクトを、いくつかの先行時点でそれぞれ異なるプロセッサ、ディスプレイデバイスおよび入力デバイスにより描画され、目下のプロセッサ102を介してロードされたファイルに保存され、ディスプレイ108に表示されていたものとすることもできる、という点も理解されたい。同様に、先行オブジェクトを、インポート、ペースト、ロード、および/または先行オブジェクトをワークスペースに表示させる他の任意のタイプのオペレーションを介して、ワークスペース上に配置させることができる、という点も理解されたい。さらに先行オブジェクトを、入力デバイス110を介した入力によりさらに操作されていた、ワークスペース上にロードされたオブジェクトに対応させることができる。
【0022】
ある1つのオブジェクトに対応させるために決定することができるオブジェクトタイプデータの例として、以下のような幾何学的プリミティブタイプを挙げることができる。すなわち、直線、曲線、または直線の視覚的表現から決定可能な他の任意のプリミティブタイプ。ある1つのオブジェクトのために決定することのできるオブジェクトタイプデータの例としてさらに、以下のような幾何学的形状タイプを挙げることもできる。すなわち、矩形、三角形、他の多角形、円、楕円、および/または1つのオブジェクトを含む1つまたは複数の線のコンフィギュレーションから一貫して認識可能な他の任意の形状。同様に、ある1つのオブジェクトに対応するように決定することのできるサイズデータの例として、以下を挙げることができる。すなわち、オブジェクトの幅および高さ(たとえば矩形の場合)、オブジェクトの直径(たとえば円、楕円の場合)、製品(たとえば三角形または他の多角形など)の辺各々の長さおよび/または各辺間の角度、および/またはオブジェクトのサイズディメンションの定量化に使用することのできるその他の測定データ。
【0023】
ディスプレイデバイスのビューBに示されているように、入力デバイス110を介して、少なくとも1つの入力120を受信し、それに応答してディスプレイデバイス108が追加オブジェクト122を出力するように、プロセッサをコンフィギュレーションすることができる。追加オブジェクト122を描画するための入力120の供給をユーザが停止したときに、追加オブジェクトのタイプとサイズを決定するように、プロセッサをコンフィギュレーションすることができる。たとえば、入力デバイスがタッチスクリーンに該当するならば、ユーザが自身の指136(またはスタイラスペン)をタッチスクリーン表面から持ち上げたときに、アプリケーションソフトウェアコンポーネントが1つのイベントを受信することができ、それによりソフトウェアコンポーネントをトリガして、追加オブジェクト122のタイプとサイズの決定を開始させる。同様にマウスなどの入力デバイスについても、マウスボタンのアップイベント、または追加オブジェクトの少なくとも一部分が完成したことを表す他の入力に対応する検出イベントを受信すると、追加オブジェクトのタイプとサイズを決定するように、プロセッサをコンフィギュレーションすることができる。
【0024】
追加オブジェクトを、以前は存在しなかったワークスペース上の描画入力/ディジタルインキ入力により認識された新たなに描画されたオブジェクトに対応させることができる、という点を理解されたい。ただし、追加オブジェクトを、目下何らかの手法で操作されている先行して存在していたオブジェクトに該当させることもできる、という点も理解されたい。このため、操作された先行オブジェクトを、本明細書で説明する追加オブジェクトに該当させてもよい。
【0025】
これらの点に加え、追加オブジェクトを複数の異なる描画イベントで完成させてもよく、それらのイベントにおいてそのオブジェクトを描画するために、指、スタイラスペンまたはマウスが(別個のタッチまたはマウスクリックを介して)それぞれ異なる時点で用いられる、という点も理解されたい。したがって1つの例示的な実施形態によれば、アプリケーションソフトウェアコンポーネント104は、追加オブジェクトに対し別個に付加、消去および/または変更が行われるたびに、追加オブジェクトのタイプおよび形状を再評価することができる。
【0026】
1つの例示的な実施形態によれば、プロセッサ102を以下のようにコンフィギュレーションすることができる。すなわち、複数の先行オブジェクト118のタイプとサイズを表すデータに少なくとも部分的に基づき、少なくとも1つの入力120が以下のような追加オブジェクト122に対応している、ということを決定するようにコンフィギュレーションすることができる。すなわちこの追加オブジェクト122は、先行オブジェクトの少なくとも1つに対応する決定されたタイプと、先行オブジェクトのうち少なくとも1つのオブジェクトに対応するという点について予め定められた許容範囲内のサイズとを有する。
【0027】
たとえば図1に示されているように、追加オブジェクト122が矩形タイプのオブジェクトに対応する一般的な形状を有する、ということを決定するように、プロセッサをコンフィギュレーションすることができる。プロセッサは、先行オブジェクト112を表すデータから、先行オブジェクト118のうち少なくとも1つのオブジェクト124も矩形タイプのオブジェクトに対応する、ということを決定することができる。さらにこれらに加えて、追加オブジェクト122のサイズディメンションを決定し、それらのサイズディメンションを、対応する同じ矩形オブジェクトタイプの少なくとも1つの先行オブジェクト124について以前に決定されたサイズディメンションデータと比較する、ようにプロセッサをコンフィギュレーションすることができる。さらに、追加オブジェクトの矩形のサイズディメンション(幅および高さ)が、先行オブジェクト124と同じサイズを有するという点で10%以内(または他の許容範囲内)にある、ということを決定するように、プロセッサをコンフィギュレーションすることができる。
【0028】
先行オブジェクトは複数の異なるタイプの形状を含むことができる、という点を理解されたい。たとえば図1に示されているように、先行オブジェクトは、円タイプ128、2つのタイプの矩形タイプ124,130、および三角形タイプ132の描画オブジェクトを含む。この場合、追加オブジェクトのタイプを決定し、それぞれ異なるタイプの複数の先行オブジェクトを含む先行オブジェクト112のいっそう大きな集合から、追加オブジェクト122と同じタイプ(たとえば矩形タイプ)の先行オブジェクトの候補集合134を選択するように、プロセッサをコンフィギュレーションすることができる。かかる候補集合134は、共通のサイズまたは異なるサイズを有する2つ以上の先行オブジェクトを含むことができる。このため、追加オブジェクトのサイズを、候補集合134内の先行オブジェクト124,130の個々のサイズと比較して、候補集合内の少なくとも1つの先行オブジェクト124が追加オブジェクトにぴったりとマッチしている、ということを決定するように、プロセッサをコンフィギュレーションすることができる。
【0029】
ディスプレイデバイス108のビューCに示されているように、上述の決定(オブジェクトタイプおよび予め定められた許容範囲内のオブジェクトサイズのマッチ)に基づき、少なくとも1つの先行オブジェクト124に対応するサイズおよび形状を有する追加オブジェクトの代わりに、ディスプレイデバイスが置換オブジェクト126をワークスペース114上に出力するように、少なくとも1つのプロセッサをコンフィギュレーションすることができる。
【0030】
このようにすることでユーザは、完璧な対称的形状とはいえない形状(たとえば1つの矩形の対辺が同じ長さではない、かつ/または互いに完全に平行ではない)を、ワークスペース上にフリーハンド描画することができる。アプリケーションソフトウェアコンポーネント104はプロセッサに対し、(種々の線、頂点および他の描画フィーチャの配向およびロケーションに基づき)どのオブジェクトタイプが描画されたオブジェクトに最もぴったりマッチしているのか、を識別する形状認識アルゴリズムを実行させることができる。
【0031】
ただし追加オブジェクトを、決定された同じタイプのオブジェクトのいっそう滑らかに描画されたバージョンと単に置き換えるのではなく、追加オブジェクトを、決定された少なくとも1つの先行オブジェクトとマッチするサイズを有する滑らかに描画されたバージョンと置き換えるように、少なくとも1つのプロセッサをコンフィギュレーションすることができる。同様に、追加オブジェクトが複数の先行オブジェクトのうち1つの先行オブジェクトについて予め定められた許容範囲内になければ、プロセッサはオリジナルの追加オブジェクトをワークスペース上に残すことができ、またはその追加オブジェクトを、複数の先行オブジェクトのうち1つの先行オブジェクトのサイズではなく、追加オブジェクトとおおよそ同じサイズを有するいっそう滑らかに描画された置換オブジェクトの形状と、置換することができる、という点も理解されたい。
【0032】
1つの例示的な実施形態によれば、アプリケーションソフトウェアコンポーネントのユーザインタフェースは、(ワークスペースに加え)コンフィギュレーションメニュー、ウィンドウまたは他のグラフィカルユーザインタフェースコントロールを含むことができ、これによってユーザは、どのようなサイズで置換オブジェクト126を形成するのかを決定するために、描画されたいずれの先行オブジェクトがサイズに関して十分に類似しているのかの決定に使用するために、かかるサイズ許容範囲を設定および変更することができる。かかる許容範囲を、パーセンテージ範囲(たとえば10%以内)、距離(たとえば0.19インチ/5mm以内)、ピクセルサイズ(たとえば25ピクセル以内)、角度配向(たとえば10度以内)、または描画されたオブジェクトのディメンションの比較に使用可能な他の任意の値の範囲によって、指定することができる。
【0033】
1つの実施形態によれば、置換オブジェクト126は、複数の先行オブジェクト112のうち1つの先行オブジェクトになることができる。このためプロセッサを、メモリ106または他の場所に記憶されているオブジェクトデータ140をアップデートし、あとで描画される(または変更される)他の何らかのオブジェクトに対応づけられたタイプおよびサイズとの比較に用いるために、置換オブジェクト126に対応づけられたタイプおよびサイズを含むように、コンフィギュレーションすることができる。
【0034】
これらに加え、ワークスペース114上に各オブジェクトが描画された(または変更された)順番をオブジェクトデータ140中に含むように、プロセッサをコンフィギュレーションすることができる。かかる順番のデータを、各オブジェクトに割り当てられた漸増する順序番号、オブジェクトが描画/変更された時点のタイムスタンプ、および/または、オブジェクトが描画/変更された相対的な順序を決定するために使用できる他の任意のデータ、に対応させることができる。同様にプロセッサを、描画された各オブジェクトが配置されているワークスペース114上のポジションを表すポジションデータをオブジェクトデータ140内に含むように、コンフィギュレーションすることができる。よって、置換オブジェクトのためにプロセッサは、置換オブジェクトのオブジェクトタイプ、サイズおよびポジション、ならびに最も新しい描画/変更されたオブジェクトである置換オブジェクトを表す順番データ、を含むように、オブジェクトデータ140を変更することができる。
【0035】
例示的な実施形態によれば、追加オブジェクトと同じタイプを有する先行オブジェクトの総数よりも少ない候補集合134内に含まれるよう、所定量の複数の先行オブジェクトを選択するように、プロセッサ102をコンフィギュレーションすることができる。かかる最大数を、メモリ106または他の何らかのストレージロケーションに記憶された先行オブジェクトの予め定められた最大数に対応させることができる。1つの例示的な実施形態によれば、アプリケーションソフトウェアコンポーネントのユーザインタフェースは、コンフィギュレーションメニュー、ウィンドウまたは他のグラフィカルユーザインタフェースコントロールを含むことができ、これによってユーザは、候補集合134内に含まれるように、先行オブジェクトの予め定められたかかる最大数を設定および変更することができる。
【0036】
たとえば図2には、ディスプレイデバイス108によって与えられたワークスペース114の例示的なビュー200(A〜C)が示されている。ビューAの場合、ワークスペース114は、それぞれ異なるタイプ(円、三角形、矩形)の10個の先行オブジェクト202を含んでいる。例示の目的でこれらのオブジェクト各々は、各オブジェクトが描画された個々の順番の番号を含んでいる。ビューBの場合、ワークスペース114に、円タイプの追加オブジェクト204が付加されている。
【0037】
この例において、予め定められた先行オブジェクトの最大数が5という値に対応しているのであれば、アプリケーションソフトウェアコンポーネント104は、円に対応する候補集合の先行オブジェクトを選択することになり、それらは円というオブジェクトタイプの最も新しい5つの先行オブジェクトである。よって、この例の場合、候補集合には、先行オブジェクト206,208,210,212および214が含まれることになるが、先行の円216は含まれない。
【0038】
既述のとおり、アプリケーションソフトウェアコンポーネント104は、追加オブジェクト204のサイズ(たとえば直径)を、5つの先行オブジェクトから成る候補集合のサイズ(たとえば直径)と比較する。図2のディスプレイデバイス108のビューCに示されているように、追加オブジェクトのサイズが、候補先行オブジェクトのうち少なくとも1つのオブジェクトのサイズに対応するという点について予め定められた閾値内にあれば、プロセッサはその追加オブジェクトを、候補集合内の先行オブジェクトのうち少なくとも1つのオブジェクトと同じサイズの置換オブジェクト218と置換することになる。追加オブジェクトが、2つの異なるサイズの先行オブジェクトについて許容範囲内にあるならば、置換オブジェクトが最新の先行オブジェクトまたは最も近いサイズの先行オブジェクトのディメンションを使うように、プロセッサをコンフィギュレーションすることができる。
【0039】
さらに別の例示的な実施形態によれば、先行オブジェクトのポジションに対し相対的な追加オブジェクトのポジションに少なくとも部分的に基づき、追加オブジェクトと同じタイプの先行オブジェクトの総数よりも少ない候補集合内に含まれるよう、所定量の複数の先行オブジェクトを選択するように、プロセッサをコンフィギュレーションすることができる。
【0040】
たとえば図2を参照すると、同じタイプのいずれの先行オブジェクト202が追加オブジェクト204から予め定められた距離内にあるのかを決定するよう、プロセッサをコンフィギュレーションすることができる。かかる予め定められた距離を、追加オブジェクトの中心部に関して半径距離に対応させることができる。たとえば図2には、いずれの先行オブジェクトが追加オブジェクト204の予め定められた半径(たとえば4インチ/10.2cm)以内にあるのかが、破線円220で示されている。この例によれば、オブジェクト208および210だけが、(少なくとも部分的に)予め定められた距離(すなわち破線円220)内にある円タイプのオブジェクトに対応している。したがってこれら2つの先行オブジェクトのみが、追加オブジェクト204と比較される候補集合に対応している。
【0041】
同様に理解されたいのは、他の例において、予め定められた距離を、追加オブジェクトの予め定められた水平方向距離内の垂直方向辺によって規定され、かつ追加オブジェクトの予め定められた垂直方向距離内の水平方向辺によって規定されたボックスに対応させてもよい、という点である。さらに別の例示的な実施形態によれば、予め定められたいずれのオブジェクトが追加オブジェクトの予め定められた範囲内にあるのかを決定するために、他の空間的グループ分けを用いてもよい。
【0042】
1つの例示的な実施形態によれば、アプリケーションソフトウェアコンポーネントのユーザインタフェースは、コンフィギュレーションメニュー、ウィンドウまたは他のグラフィカルユーザインタフェースコントロールを含むことができ、これによってユーザは、候補集合内に含まれるように先行オブジェクトが選択される予め定められた上述の距離を、設定および変更することができる。
【0043】
同様に理解されたいのは、例示的な実施形態によれば、追加オブジェクトから予め定められた距離を有すること、および/または、ワークスペースに付加された最新の先行オブジェクトの予め定められた個数内にあること、に基づき、いずれの先行オブジェクトが候補集合内に含まれるようにするのかを選択することができる、という点である。
【0044】
さらに別の例示的な実施形態によれば、追加オブジェクトと、候補集合内の先行オブジェクトのうち少なくとも2つの先行オブジェクトとが、同じサイズおよび形状を有しかつ等間隔で整列されているという点について予め定められた許容範囲内にあることを決定するように、プロセッサ102をコンフィギュレーションすることができる。この決定に応答してプロセッサは、置換オブジェクトと、先行オブジェクトのうち少なくとも2つの先行オブジェクトが、同じサイズおよび形状を有し、かつ等間隔で整列されているように、ディスプレイデバイスによって置換オブジェクトを表示させることができる。
【0045】
たとえば図3には、ディスプレイデバイス108によって与えられたワークスペース114の例示的なビュー300(A〜C)が示されている。ビューAの場合、ワークスペース114は、離間された同じタイプ(たとえば三角形)の2つの先行オブジェクト302を含んでいる。これらのオブジェクト各々は同じサイズを有し、これらのオブジェクトは水平方向に整列されている。したがってこれらのオブジェクトのためのオブジェクトデータ140は、これらのオブジェクトの垂直方向ポジションに関して同じ垂直座標を含むことができる。
【0046】
ビューBの場合、ワークスペース114に、三角形タイプの追加オブジェクト304が付加されている。既述のようにプロセッサは、先行オブジェクトの双方が同じオブジェクトタイプをもち、追加オブジェクト304のサイズに対応するサイズを有するという点について予め定められた許容範囲内にある、ということを決定するように動作可能である。プロセッサはさらに、追加オブジェクト304と先行オブジェクト302とに対して決定されたポジションデータに応答して、追加オブジェクト304の垂直方向ポジションが、先行オブジェクト302の垂直方向ポジションから予め定められた距離内にある、ということを決定することができる。ビューCに示されているように、この決定に応答して、追加オブジェクト304を、先行オブジェクトと同じサイズおよび垂直方向ポジションを有する置換オブジェクト306と置換するように、プロセッサをコンフィギュレーションすることができる。
【0047】
プロセッサはさらに、追加オブジェクト304と先行オブジェクト302に対して決定されたポジションデータに応答して、各先行オブジェクト302間の水平方向間隔が、追加オブジェクト304と最も近い先行オブジェクト308との間の水平方向間隔について予め定められた距離内にある、ということを決定することができる。ビューCに示されているように、この決定に応答して、各先行オブジェクト302が離間されているのと等距離で置換オブジェクト306が先行オブジェクト308から離間されるよう、置換オブジェクト306を配置するように、プロセッサをコンフィギュレーションすることができる。
【0048】
同様に、同じサイズおよびタイプの先行オブジェクトに関して相応の整列および間隔を有する置換オブジェクトのポジションを決定する目的で、たとえば垂直方向または対角線方向に離間されたオブジェクトの整列などのように、オブジェクトの集合に関してこれとは別の整列および離間関係を決定するように、プロセッサをコンフィギュレーションすることができる、という点も理解されたい。
【0049】
1つの例示的な実施形態によれば、アプリケーションソフトウェアコンポーネントのユーザインタフェースは、コンフィギュレーションメニュー、ウィンドウまたは他のグラフィカルユーザインタフェースコントロールを含むことができ、これによってユーザは、以下のような予め定められた許容範囲(たとえば0.25インチ/0.64cm以内または他の距離内など)を設定および変更することができる。すなわちこの許容範囲内で、追加オブジェクトが同じタイプの先行オブジェクトに関して同じ垂直方向ポジションおよび/または間隔を有するか否か、が決定される。
【0050】
これらに加え、さらに別の例示的な実施形態によれば、追加オブジェクトと、候補集合内の先行オブジェクトのうち複数の(たとえば4個の)先行オブジェクトが、同じサイズおよび形状(および配向)を有し、かつそれぞれ異なるように整列および/またはそれぞれ異なるように離間されて描画されたオブジェクトの繰り返しパターンで整列および/または離間されている、という点について予め定められた許容範囲内にある、ということを決定するように、プロセッサをコンフィギュレーションすることができる。この決定に応答してプロセッサは、置換オブジェクトと複数の先行オブジェクトとが、同じサイズおよび形状(および配向)を有し、かつ置換パターンが置換オブジェクトの付加を継続できるようにする相互の整列および/または間隔を有するように、ディスプレイデバイスにより置換オブジェクトを表示させることができる。
【0051】
たとえば図4には、ディスプレイデバイス108によって与えられたワークスペース114の例示的なビュー400(A〜C)が示されている。ビューAの場合、ワークスペース114は、離間された同じタイプ(たとえば曲線)の4つの先行オブジェクト402を含んでいる。これらのオブジェクト各々は、同じサイズ(および同じ曲線形状と配向)を有し、かつ離間された2つの垂直方向ポジションと、交互に変化する間隔とを水平方向で繰り返している。したがってこれらのオブジェクトに対するオブジェクトデータ140は、これらのオブジェクトの垂直方向ポジションに関して、交互に変化する2つの異なる垂直座標を含むことができ、さらにポジションデータによって、これらのオブジェクト間の間隔が、第1の狭い方の間隔と第2の広い方の間隔とを繰り返す、ということを表すことができる。
【0052】
曲線タイプのオブジェクト(および他のタイプのオブジェクト)は、線の曲率に応じてそれぞれ異なる形状を有する可能性があるので、追加オブジェクトをかかる先行オブジェクトと比較する目的で、少なくとも1つのプロセッサは、先行オブジェクトに対するオブジェクトデータにおいて形状データを決定し記憶することもできる。曲線の場合、かかるデータは線の曲率量を含むことができる。(不規則な多角形などのように)もっと複雑な形状の場合、形状データは、線の相対的なロケーション、形状を形づくる線のサイズ、および/または、追加オブジェクトとの比較に用いるために形状を定量化する他のデータ、を含むことができる。
【0053】
また、曲線タイプのオブジェクト(および他のタイプのオブジェクト)は、それぞれ異なる回転角で配向できることから、少なくとも1つのプロセッサは、先行オブジェクトに対するオブジェクトデータにおいて配向データも決定して記憶させることができる。曲線タイプのオブジェクトの場合、かかる配向データは、曲線終点間の角度を含むことができる。ただし、それぞれ異なるタイプのオブジェクトは、オブジェクトの配向を決定するためにそれぞれ異なる判定基準を含むことができる、という点を理解されたい。
【0054】
よって、オブジェクトのサイズを比較することに加えて、先行オブジェクト402の曲線の曲率量および配向を決定するように、プロセッサをコンフィギュレーションすることができる(それらのデータをオブジェクトデータ140の一部として記憶させることができる)。さらにプロセッサを、追加オブジェクト404に対応する曲率量および配向を決定するように、コンフィギュレーションすることもできる。
【0055】
図4のビューBには、ワークスペース114に付加された曲線タイプの追加オブジェクト404が示されている。この例によればプロセッサは、先行オブジェクト402が同じオブジェクトタイプを有しており、かつ追加オブジェクト404のサイズ、形状および配向に対応するサイズ、形状および配向を有する、という点について予め定められた許容範囲内にある、ということを決定するように動作可能である。
【0056】
よって、図4のビューCに示されているようにプロセッサは、先行オブジェクト402と同じサイズ、形状および配向を有する置換オブジェクト406によって追加オブジェクト404を置き換えるように、動作可能である。
【0057】
これらに加えプロセッサは、追加オブジェクト404と先行オブジェクト402とに対して決定されたポジションデータに応答して、追加オブジェクト404の水平方向と垂直方向のポジションが、垂直方向で交互に変化する先行オブジェクト402のパターンを継続するポジションにあり、かつ各オブジェクト間で交互に変化する間隔パターンを継続する、という点について予め定められた距離内にある、ということを決定することができる。ビューCに示されているように、この決定に応答して、先行オブジェクトの集合と置換オブジェクトとが、先行オブジェクトに対応づけられた決められたポジションパターンをもち続けるように、追加オブジェクト404を1つのポジションにおいて置換オブジェクト406と置換するように、プロセッサをコンフィギュレーションすることができる。
【0058】
同様に、置換オブジェクトのポジションを決定する目的で、オブジェクトの集合に関して(曲線の次に続くパターンなど)さらに別の空間的パターンを決定するように、プロセッサをコンフィギュレーションすることができる、という点も理解されたい。さらに既述のコンフィギュレーショングラフィカルユーザインタフェースコントロールによって、予め定められた以下のような許容範囲(たとえば5インチ/1.27cm以内または他の距離内など)を設定および変更することもできる。すなわちこの許容範囲内で、追加オブジェクトが先行オブジェクトの空間的パターン配置内に含まれるべき一般的なロケーション内にあるか否か、が決定される。
【0059】
これまでの例によって示してきたのは、単純な形状を、ワークスペース上の先行オブジェクトに対応する置換オブジェクトによって置換する、というものである。また、もっと複雑な形状を有する追加オブジェクトを、同様に対応する先行オブジェクトと置き換えるように、アプリケーションソフトウェアコンポーネントが動作可能である、という点も理解されたい。
【0060】
これらに加え、組み合わせられていっそう複雑な1つのオブジェクトを形成する個々のプリミティブタイプオブジェクトに対し、適切な置換オブジェクトを見つけるようにするために、プリミティブレベル(線、円、円弧、楕円、スプライン)で動作するように、例示的な実施形態をコンフィギュレーションすることができる。この例によれば、ワークスペースに付加された追加プリミティブタイプオブジェクト各々を、同じタイプ(たとえば線、円、円弧、楕円、スプライン)の先行プリミティブタイプオブジェクトと比較して、同じサイズ、配向および/または曲率を有するという点について許容範囲内にある1つの先行プリミティブタイプオブジェクトを見つけ、追加プリミティブタイプオブジェクトに対する置換オブジェクトとして用いる。換言すれば、一連の個々の線/曲線をワークスペース上に付加していくことで、いっそう複雑な形状が構築されていくときに、完成した線/曲線という点について許容範囲内にある先行の線/曲線に基づき、完成した線/曲線各々を置換線/曲線とただちに置き換えるように、アプリケーションソフトウェアを動作させることができる。
【0061】
いっそう複雑な形状を複数のプリミティブタイプオブジェクトから描画するユーザの能力をさらに支援するために、プロセッサを以下のようにコンフィギュレーションすることができる。すなわち、1つまたは複数の先行プリミティブタイプオブジェクトと共線、平行および/または垂直であるという点について予め定められた許容範囲内にある、ワークスペース上の1つまたは複数の先行プリミティブタイプオブジェクトと共線、平行および/または平行な新たなポジションへ、(線などのような)追加プリミティブタイプオブジェクトを迅速に動かす(移動させる)ように、プロセッサをコンフィギュレーションすることができる。たとえば、追加楕円が先行楕円と平行であるという点について予め定められた許容範囲内にあるならば、楕円タイプオブジェクトを迅速に動かして、追加楕円の軸をワークスペース上の先行楕円と平行にすることができる。
【0062】
さらに別の例によれば、追加オブジェクトをワークスペース上の先行オブジェクトの鏡像配置と置換するように、プロセッサをコンフィギュレーションすることができる。たとえば図5には、ディスプレイデバイス108によって与えられたワークスペース114の例示的なビュー500(A〜B)が示されている。ビューAの場合、ワークスペース114は、先行オブジェクト502と追加オブジェクト504とを含んでいる。この例によれば、プロセッサは、追加オブジェクトと先行オブジェクトが同じサイズおよび形状を有しかつ互いに鏡像である、という点について予め定められた許容範囲内にある、ということを決定するようにコンフィギュレーションされている。
【0063】
ビューBに示されているように、この決定に応答して、追加オブジェクト504を、先行オブジェクトに対応するサイズおよび形状を有しかつ先行オブジェクトの鏡像である置換オブジェクト506と置換するように、プロセッサをコンフィギュレーションすることができる。
【0064】
次に図6を参照しながら、種々の例示的な方法論について呈示し説明する。これらの方法論を、1つのシーケンス内で実施される一連のアクションとして説明するけれども、これらの方法論はこのシーケンスの順序によって限定されるものではない、という点を理解されたい。たとえばいくつかのアクションを、ここで説明するのとは異なる順序で生じさせてもよい。これに加え、あるアクションを他のアクションと同時に生じさせてもよい。しかもいくつかの事例においては、ここで説明する方法論を実現するために、すべてのアクションが必要とされるわけでもない。
【0065】
ここで特に述べておきたいのは、本開示には、完全に機能的なシステムおよび/または一連のアクションに関連した説明が含まれているけれども、当業者であれば理解できるように、本開示におけるメカニズムおよび/または説明するアクションの少なくとも一部分は、機械で使用可能な、コンピュータで使用可能な、またはコンピュータで読み取り可能な、非一時的媒体内に含まれるコンピュータにより実行可能な命令として、任意の種類の形態で配布可能なものであること、さらに本開示は、特定のタイプの命令、信号担体または記憶媒体が使用されようとも、そのような配布物を実際に実行するために等しく適用されること、である。機械で使用可能/読み取り可能またはコンピュータで使用可能/読み取り可能な非一時的媒体の例を以下に挙げておく:ROM、EPROM、磁気テープ、フロッピーディスク、ハードディスクドライブ、SSD、フラッシュメモリ、CD、DVDおよびブルーレイディスク。コンピュータで実行可能な命令として、ルーチン、サブルーチン、プログラム、アプリケーション、モジュール、ライブラリ、実行スレッド、および/またはこれらと同等のもの、を挙げることができる。さらに、方法論のアクションの結果を、コンピュータ読み取り可能媒体に記憶することができ、ディスプレイデバイスに表示することができ、および/または同等のことを実施することができる。
【0066】
図6を参照すると、オブジェクトの描画を容易にする方法論600が示されている。ステップ602においてこの方法をスタートさせることができ、ステップ604において、この方法論は以下のアクションを含むことができる。すなわち、a)少なくとも1つのプロセッサのオペレーションにより、ワークスペース上でディスプレイデバイスにより表示された複数の先行オブジェクトのタイプとサイズを表すデータに少なくとも部分的に基づき、入力デバイスを介した少なくとも1つの入力が、以下のような追加オブジェクトに対応する、ということを決定する。すなわちこの追加オブジェクトは、複数の先行オブジェクトのうち少なくとも1つの先行オブジェクトに対応する決められたタイプを有しており、かつ複数の先行オブジェクトのうち少なくとも1つの先行オブジェクトに対応する、という点について予め定められた許容範囲内のサイズを有するものである。
【0067】
これに加え方法論600は、以下のアクション606を含むことができる。すなわち、b)少なくとも1つのプロセッサのオペレーションにより、アクションa)に応答して、少なくとも1つの先行オブジェクトに対応するサイズおよび形状を有する追加オブジェクトの代わりに、ディスプレイデバイスによりワークスペース上に置換オブジェクトを表示させる。ステップ608において、この方法論を終了させることができる。
【0068】
これらに加え、方法論600は、システム100に関してこれまで説明してきた他のアクションおよび特徴を含むことができる。たとえば既述のようにこの方法論は、以下のことを含むことができる。すなわち、追加オブジェクトのタイプを決定し、種々のタイプの複数の先行オブジェクトを含む複数の先行オブジェクトから成るいっそう大きい集合から、追加オブジェクトと同じタイプを有する複数の先行オブジェクトから成る候補集合を選択する。さらにこれに加えこの方法論は、以下のことを含むことができる。すなわち、追加オブジェクトのサイズおよび形状を、候補集合内の複数の先行オブジェクトの個々のサイズおよび形状と比較して、少なくとも1つの先行オブジェクトを決定する。
【0069】
複数の先行オブジェクトを表すデータを、メモリ、ストレージデバイス、またはそれらの組み合わせのうちの少なくとも1つに記憶することもでき、かかるデータはそれぞれ以下を特定することができる。すなわち、複数の先行オブジェクトのタイプ、サイズ、形状およびポジション、ならびに各々がワークスペースに供給された個々の順番。この方法論は以下を含むことができる。すなわち、記憶されたデータを変更して、置換オブジェクトの個々のタイプ、サイズ、形状およびポジションを含むようにし、さらに置換オブジェクトが複数の先行オブジェクトのうち最新のものである、ということを表すようにする。
【0070】
例示的な実施形態によれば、この方法論はさらに以下を含むこともできる。すなわち、予め定められた最大数の先行オブジェクトに少なくとも部分的に基づき、追加オブジェクトと同じタイプを有する先行オブジェクトの総数よりも少ない候補集合内に含まれるように、所定量の複数の先行オブジェクトを選択する。かかるアクションを以下に対応させることもできる。すなわち、先行オブジェクトが描画された順番に少なくとも部分的に基づき、追加オブジェクトと同じタイプを有する先行オブジェクトの総数よりも少ない候補集合内に含まれるように、所定量の複数の先行オブジェクトを選択する。
【0071】
さらに別の例示的な実施形態によれば、この方法論は以下を含むことができる。すなわち、先行オブジェクトのポジションに対し相対的な追加オブジェクトのポジションに少なくとも部分的に基づき、追加オブジェクトと同じタイプを有する先行オブジェクトの総数よりも少ない候補集合内に含まれるように、所定量の複数の先行オブジェクトを選択する。
【0072】
さらにこの方法論は以下を含むこともできる。すなわち、追加オブジェクトと、候補集合内の先行オブジェクトのうち少なくとも2つの先行オブジェクトとが、同じサイズおよび形状を有しかつ等間隔で整列されている、という点について予め定められた許容範囲内にある、ということを決定する。この決定に応答して、この方法論は以下を含むことができる。すなわち、置換オブジェクトと、先行オブジェクトのうち少なくとも2つの先行オブジェクトとが、同じサイズおよび形状を有し、かつ等間隔で整列されているように、ディスプレイデバイスによって置換オブジェクトを表示させることができる。
【0073】
さらに別の例によれば、この方法論は以下を含むことができる。すなわち、追加オブジェクトと、候補集合内の先行オブジェクトのうち少なくとも4つの先行オブジェクトとが、同じサイズおよび形状を有し、かつそれぞれ異なるように整列および/またはそれぞれ異なるように離間されて描画されたオブジェクトの繰り返しパターンにおいて整列および/または離間されたものである、という点について予め定められた許容範囲内にある、ということを決定する。この決定に応答して、この方法論は以下を含むことができる。すなわち、置換オブジェクトと、先行オブジェクトのうち少なくとも4つの先行オブジェクトとが、同じサイズおよび形状を有し、かつ置換パターンが置換オブジェクトの付加を継続できるようにする相互の整列および/または間隔を有するように、ディスプレイデバイスにより置換オブジェクトを表示させる。
【0074】
別の例によれば、この方法論は以下を含むことができる。すなわち、追加オブジェクトと少なくとも1つの先行オブジェクトとが、同じサイズおよび形状を有しかつ互いに鏡像であるという点について予め定められた許容範囲内にある、ということを決定する。これに応答して、この方法論は以下を含むことができる。すなわち、少なくとも1つの先行オブジェクトに対応するサイズおよび形状を有しかつ少なくとも1つの先行オブジェクトの鏡像である先行オブジェクトの代わりに、ディスプレイデバイスに置換オブジェクトを表示させる。
【0075】
既述のとおり、これらの方法に対応づけられたかかるアクションを、1つまたは複数のプロセッサによって実行することができる。かかる1つまたは複数のプロセッサを、1つまたは複数のデータ処理システムに含めることができ、このデータ処理システムはたとえば、上述のアクションが1つまたは複数のプロセッサによって実施されるように動作するソフトウェアコンポーネントを実行する。1つの例示的な実施形態によれば、かかるソフトウェアコンポーネントを、Java, JavaScript, Python, C, C#, C++などのようなソフトウェア環境/言語/フレームワークにおいて、またはここで説明したアクションおよび特徴を実行するようにコンフィギュレーションされたコンポーネントおよびグラフィカルユーザインタフェースを生成可能な他の任意のソフトウェアツールにおいて、記述することができる。
【0076】
図7には、データ処理システム700(コンピュータシステムとも称する)のブロック図が示されている。このシステムに、たとえば本明細書で説明したプロセスを実行するためにソフトウェアまたは他の何らかの手段によって動作がコンフィギュレーションされたPLM、CADおよび/または描画システムの一部分として、1つの実施形態を実装することができる。この図に描かれたデータ処理システムは、少なくとも1つのプロセッサ702(たとえばCPU)を含んでおり、これを1つまたは複数のブリッジ/コントローラ/バス704(たとえばノースブリッジ、サウスブリッジ)と接続することができる。バス704の1つとして、PCI Expressバスなどのような1つまたは複数のI/Oバスを挙げることができる。図示の例によれば、様々なバスに接続されるものとして、メインメモリ706(RAM)およびグラフィックスコントローラ708を挙げることができる。グラフィックスコントローラ708を、1つまたは複数のディスプレイデバイス710と接続することができる。同様にここで述べておきたいのは、いくつかの実施形態によれば、1つまたは複数のコントローラ(たとえばグラフィックス、サウスブリッジ)を(同じチップまたはダイにおける)CPUと統合できる、という点である。CPUアーキテクチャの例には、IA−32、x86−64およびARMプロセッサアーキテクチャが含まれる。
【0077】
1つまたは複数のバスに接続される他の周辺機器として、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、セルラネットワークおよび/または他の有線または無線のネットワーク714と接続するように動作する通信コントローラ712(イーサネットコントローラ、WiFiコントローラ、セルラコントローラ)、または通信機器を挙げることができる。
【0078】
種々のバスに接続されるさらに別のコンポーネントとして、1つまたは複数のI/Oコントローラ716、たとえばUSBコントローラ、ブルートゥースコントローラ、および/または(スピーカおよび/またはマイクロフォンと接続される)専用オーディオコントローラなどを挙げることができる。同様に、様々な周辺機器を(種々のUSBポートを介して)USBコントローラに接続することができる、という点も理解されたい。それらの周辺機器として、入力デバイス718(たとえばキーボード、マウス、タッチスクリーン、トラックボール、カメラ、マイクロフォン、スキャナ)、出力デバイス720(たとえばプリンタ、スピーカ)、あるいは入力を供給するまたはデータ処理システムからの出力を受信するように動作する他の任意のタイプのデバイスが挙げられる。さらに、入力デバイスまたは出力デバイスと呼ばれる多くのデバイスが、入力を供給することができ、かつデータ処理システムとの通信の出力を受信することができる、という点を理解されたい。さらに理解されたいのは、I/Oコントローラ716に接続される他の周辺ハードウェア722として、データ処理システムと通信するようにコンフィギュレーションされた任意のタイプのデバイス、機械またはコンポーネントを挙げることができる、という点である。
【0079】
種々のバスに接続される付加的なコンポーネントとして、1つまたは複数のストレージコントローラ724(たとえばSATA)を挙げることができる。ストレージコントローラをストレージデバイス726と接続することができ、たとえば1つまたは複数のストレージドライブ、および/または機械で使用可能または機械で読み取り可能な任意の適切な非一時的ストレージ媒体とすることができる任意の対応するリムーバル媒体、などと接続することができる。例として挙げられるのは、不揮発性デバイス、揮発性デバイス、リードオンリーデバイス、書き込み可能デバイス、ROM、EPROM、磁気テープストレージ、フロッピーディスクドライブ、ハードディスクドライブ、ソリッドステートドライブ(SSD)、フラッシュメモリ、光ディスクドライブ(CD、DVD、ブルーレイ)、および他の公知の光学的、電気的、または磁気的なストレージデバイスドライブおよび/またはコンピュータ媒体である。いくつかの例によれば、SSDなどのようなストレージデバイスを、PCI ExpressバスなどのようなI/Oバス704へ、ダイレクトに接続することもできる。
【0080】
本開示の1つの実施形態によるデータ処理システムとして、オペレーティングシステム728、ソフトウェア/ファームウェア730、およびデータストア732(これらをストレージデバイス726に記憶させることができる)を挙げることができる。かかるオペレーションシステムは、コマンドラインインタフェース(CLI)シェルおよび/またはグラフィカルユーザインタフェース(GUI)シェルを採用することができる。GUIシェルは、複数のディスプレイウィンドウをグラフィカルユーザインタフェースにおいて同時に表示させることができ、各ディスプレイウィンドウによって、それぞれ異なるアプリケーションに対するインタフェースが提供され、または同じアプリケーションの異なるインスタンスに対するインタフェースが提供される。マウスまたはタッチスクリーンなどのようなポインティングデバイスによって、ユーザはグラフィカルユーザインタフェースのカーソルまたはポインタを操作することができる。この場合、カーソル/ポインタのポジションを変更することができ、かつ/または、望ましいレスポンスを生じさせるために、マウスボタンのクリックまたはタッチスクリーンのタッチといったイベントを発生させることができる。データ処理システムにおいて使用することのできるオペレーティングシステムの例として、Microsoft Windows, Linux, UNIX, iOSおよびAndroidオペレーティングシステムを挙げることができる。
【0081】
通信コントローラ712を(データ処理システム700の一部ではない)ネットワーク714に接続することができ、このネットワークを、インターネットを含め当業者に周知の任意のパブリックまたはプライベートのデータ処理システムネットワークまたはそれらのネットワークの組み合わせとすることができる。データ処理システム700はネットワーク714を介して、(やはりデータ処理システム700の一部ではない)サーバ734などのような1つまたは複数の他のデータ処理システムと通信することができる。ただし、1つの択一的なデータ処理システムを、分散システムの一部として実装された複数のデータ処理システムに対応させることができ、そのような分散システムにおいて、複数のデータ処理システムに対応づけられた複数のプロセッサを、1つまたは複数のネットワークコネクションを介して通信状態にすることができ、それらのプロセッサは、単一のデータ処理システムによって実施されるものとして説明したタスクを、共同で実施することができる。よって、1つのデータ処理システムについて言及するときには、かかるシステムを、ネットワークを介して互いに通信状態にある分散システム内に構築された複数のデータ処理システム全体にわたって実装されたものとしてもよい、という点を理解されたい。
【0082】
なお、用語「コントローラ」とは、このデバイスがハードウェア、ファームウェア、ソフトウェア、またはそれらのうち少なくとも2つの何らかの組み合わせとして実現されていようが、少なくとも1つのオペレーションをコントロールする任意のデバイス、システムまたはそれらの一部分のことを意味する。さらにここで述べておきたいのは、いずれかの特定のコントローラと結び付けられた機能を、ローカルであろうとリモートであろうと、集中させてもよいし分散させてもよい、という点である。
【0083】
これらに加え、データ処理システムを、バーチャルマシンアーキテクチャまたはクラウド環境においてバーチャルマシンとして実装することができる、という点を理解されたい。たとえばプロセッサ702および付随するコンポーネントを、1つまたは複数のサーバのバーチャルマシン環境において実行される1つのバーチャルマシンに対応させることができる。バーチャルマシンアーキテクチャの例として挙げられるのは、VMware ESCi, Microsoft Hyper- V, Xenおよび KVMである。
【0084】
当業者であれば理解できるように、データ処理システムについて図示したハードウェアを、特定の実装形態に合わせて変更することができる。たとえばこの例におけるデータ処理システム700を、コンピュータ、ワークステーションおよび/またはサーバに対応させることができる。ただしここで理解されたいのは、データ処理システムの択一的な実施形態を、相応のコンポーネントまたは択一的なコンポーネントによってコンフィギュレーションすることができる、という点であり、たとえば携帯電話、タブレット、コントローラボード、またはデータを処理しかつデータ処理システム、コンピュータ、プロセッサおよび/または本明細書で説明したコントローラのオペレーションと対応づけられた、本明細書で説明した機能および特徴を実施するように動作する他の任意のシステムの形態として、コンフィギュレーションすることができる。図示されている実施例は、例示目的で示されているにすぎず、本開示に関して構造上の制限を意図したものではない。
【0085】
本明細書で用いた用語「コンポーネント」および「システム」は、ハードウェア、ソフトウェアまたはハードウェアとソフトウェアの組み合わせを包含することを意図している。したがってたとえば、システムまたはコンポーネントをプロセス、プロセッサ上で実行されるプロセス、またはプロセッサとすることができる。これらに加え、コンポーネントまたはシステムを、単一のデバイス上に局所化してもよいし、複数のデバイスにわたって分散させてもよい。
【0086】
同様に、ここで用いられているプロセッサは、データを処理するためにハードウェア回路、ソフトウェアおよび/またはファームウェアを介してコンフィギュレーションされた任意の電子デバイスに相応する。たとえば、本明細書で説明したプロセッサを、マイクロプロセッサ、CPU、FPGA、ASIC、あるいは、コントローラボード、コンピュータ、サーバ、携帯電話、および/または他の任意のタイプの電子デバイスの形態を有することができるデータ処理システムにおいてデータを処理可能である他の任意の集積回路(IC)または他のタイプの回路、のうちの1つまたは複数(またはこれらの組み合わせ)に対応させることができる。
【0087】
さらに当業者であれば理解できるとおり、簡潔かつ明瞭にするため、本開示に用いるために適したあらゆるデータ処理システムの構造およびオペレーションのすべてを、本明細書において描いたわけではなく、または説明したわけではない。そうではなく、データ処理システムのうち、本開示に特有のところだけを、または本開示の理解に必要なところだけを、描いて説明したにすぎない。データ処理システム700の構造およびオペレーションのその他の部分は、この分野で周知の現在行われている様々な実装形態および実施手法の任意のものに適合させることができる。
【0088】
これまで本開示の例示的な実施形態について詳しく説明してきたが、当業者であれば理解できるように、最も広い形態としての本開示の着想および範囲を逸脱することなく、様々な変更、置き換え、変形ならびに本明細書で開示した改善を行うことができる。
【0089】
本願の記載内容のいずれも、何らかの特定の部材、ステップ、アクションまたは機能が特許請求の範囲に含まれなければならない必須の要素である、という趣旨で読まれるべきではない。本発明の範囲は、特許付与された請求項によってのみ定められるものである。しかも、厳密な語「のための手段」の次に分詞が続かないのであれば、これらの請求項のいずれも、ミーンズ・プラス・ファンクション・クレーム(means plus function claim)の構造が適用されることを意図したものではない。
図1
図2
図3
図4
図5
図6
図7