(57)【要約】【課題】対象となる角への丸み付けを効率化する仕組みを提供すること【解決するための手段】複数の線で描画された図形データを表示する情報処理装置は、丸み付けの設定値を受け付ける設定受付手段と、丸み付けをする角を為す線に基づき決定された丸み付け可能な値を取得する値取得手段と、前記設定受付手段で受け付けられた設定値で丸み付けができない角と、前記値取得手段で取得した丸み付け可能な値を表示する表示手段と、前記表示手段により表示された丸み付けができない角について丸み付けさせるべく、前記設定値を変更させて前記丸み付けができない角について丸み付けを実行制御する実行制御手段とを備える。【選択図】図３
2018106548.tif 000002
【特許請求の範囲】
【請求項１】
複数の線で描画された図形データを表示する情報処理装置のプログラムであって、
前記情報処理装置を、
丸み付けの設定値を受け付ける設定受付手段と、
丸み付けをする角を為す線に基づき決定された丸み付け可能な値を取得する値取得手段と、
前記設定受付手段で受け付けられた設定値で丸み付けができない角と、前記値取得手段で取得した丸み付け可能な値を表示する表示手段と、
前記表示手段により表示された丸み付けができない角について丸み付けさせるべく、前記設定値を変更させて前記丸み付けができない角について丸み付けを実行制御する実行制御手段
として機能させるためのプログラム。
【請求項２】
前記表示手段は、前記設定受付手段で受け付けられた設定値で丸み付けできる角と丸み付けできない角とを一覧表示し、
前記実行制御手段は、前記丸み付けできる角について丸み付けを実行制御し、
更に、前記表示手段は、前記実行制御手段による丸み付けの実行制御後に、丸み付けができない角を一覧表示することを特徴とする請求項１に記載のプログラム。
【請求項３】
前記実行制御手段は、段階的に丸み付けできない角の丸み付けを実行制御することを特徴とする請求項１又は２に記載のプログラム
【請求項４】
前記表示手段で、角の指定を受け付ける角指定受付手段と、
前記角指定受付手段により受け付けた角を為す線の線情報を取得する線情報取得手段と、
前記線情報取得手段により取得された線情報に従って、前記図形における選択を制御する選択制御手段と
を更に備えることを特徴とする請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
前記設定値は、指定半径による丸み付け、最大半径による丸み付け、最小半径による丸み付けのいずれかの選択による値であって、
前記指定半径による丸み付けの場合に設定された指定半径値と、前記値取得手段で取得した丸み付け可能な値とに従って、丸み付けができない角を特定する角特定手段を更に備え、
前記表示手段は、前記角特定手段により特定された角に対して丸み付けができない旨を示す情報を表示することを特徴とする請求項１乃至４のいずれか１項に記載のプログラム。
【請求項６】
複数の線で描画された図形データを表示する情報処理装置であって、
丸み付けの設定値を受け付ける設定受付手段と、
丸み付けをする角を為す線に基づき決定された丸み付け可能な値を取得する値取得手段と、
前記設定受付手段で受け付けられた設定値で丸み付けができない角と、前記値取得手段で取得した丸み付け可能な値を表示する表示手段と、
前記表示手段により表示された丸み付けができない角について丸み付けさせるべく、前記設定値を変更させて前記丸み付けができない角について丸み付けを実行制御する実行制御手段と
を備えることを特徴とするプログラム。
【請求項７】
複数の線で描画された図形データを表示する情報処理装置の処理方法であって、
丸み付けの設定値を受け付ける設定受付ステップと、
丸み付けをする角を為す線に基づき決定された丸み付け可能な値を取得する値取得ステップ手段と、
前記設定受付ステップで受け付けられた設定値で丸み付けができない角と、前記値取得ステップで取得した丸み付け可能な値を表示する表示ステップと、
前記表示ステップにより表示された丸み付けができない角について丸み付けさせるべく、前記設定値を変更させて前記丸み付けができない角について丸み付けを実行制御する実行制御ステップと
を含むことを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図形データの角の丸み付けを支援する技術に関する。
【背景技術】
【０００２】
ＣＡＤソフトには、製品形状のモデリング過程で発生する輪郭を描画する際や製図作業を実施する際に平面空間のスケッチとして直線と直線の端点が一致する角を丸み付けるコマンドが一般的に備わっている。
このコマンドは「フィレット」などで呼称されるが、コマンドは処理の対象となる角の選択と具体的な丸みの半径の指定を受けつけ、角に丸み付けを行う。
【０００３】
このような丸み付けの先行技術として、特許文献１があげられる。特許文献１は、３次元モデルに含まれる稜線に対して丸み付けを行う際の負担を軽減する技術が述べられている。この手法は既に立体化されたモデルに対して丸み付けを予めデータ化することで操作者が作業を行う際にはモデルに対して丸み付けを操作者の作業を伴わず実行することを可能とし、有効な角と無効な角とを一覧表示するなどによって操作者の作業効率向上を促す仕組みである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２３０５２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＣＡＤソフトにおいて、一度のコマンド処理においては多数の角の選択を同時に受け付けることも可能であるが、半径については一つの値を受け付けるのみである。すなわち、直線の長短やなす角の大小に関わらず、複数の角に対して丸み付けを行う際の半径は一つであるため、その半径によっては受け付けた全ての角に対して丸み付けを実行することができない場合がある。
【０００６】
具体的には２本の直線長さが受け付けた半径に対して十分に長くない場合や直線同士のなす角が十分に大きくない場合、丸み付けを実行した際に直線部が残らないほどの丸み付けが行われてしまうためである。
【０００７】
ＣＡＤソフトではこのように受け付けた角の一部に対して丸み付けを正常に実施できなかった場合、コマンドエラーとして全ての角に対する丸み付けが解消されるか、または実施可能な角にだけ丸み付けを行うなどの結果が得られる。
【０００８】
しかし、丸み付けが解消され、再度丸み付けを実行する場合、或いは、丸み付けを行えなかった部分に対して再度丸み付けを実行する場合、具体的にどの程度の半径であれば丸み付けが可能であるかを把握するためにはそれぞれの角を構成する直線の長さを把握する必要があるため対応が困難である。
【０００９】
また、特許文献１においても、丸み付けが無効な角に対して具体的にどの程度の半径であれば丸み付けが可能になるかについて考慮されておらず、丸み付けの作業負担を軽減することはできない。
【００１０】
そこで、本発明の目的は、対象となる角への丸み付けを効率化する仕組みを提供することである。
【課題を解決するための手段】
【００１１】
複数の線で描画された図形データを表示する情報処理装置は、丸み付けの設定値を受け付ける設定受付手段と、丸み付けをする角を為す線に基づき決定された丸み付け可能な値を取得する値取得手段と、前記設定受付手段で受け付けられた設定値で丸み付けができない角と、前記値取得手段で取得した丸み付け可能な値を表示する表示手段と、前記表示手段により表示された丸み付けができない角について丸み付けさせるべく、前記設定値を変更させて前記丸み付けができない角について丸み付けを実行制御する実行制御手段とを備える。
【発明の効果】
【００１２】
本発明によれば、対象となる角への丸み付けを効率化することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態における、ＣＡＤシステム１００のシステム構成の一例を示す図である。
【図２】本実施形態における、各種装置のハードウェア構成の一例を示す図である。
【図３】本実施形態における、情報処理装置の機能構成の一例を示す図である。
【図４】本実施形態における、基本処理の一例を示すフローチャートである。
【図５】本実施形態における、直線リスト作成処理の一例を示すフローチャートである。
【図６】本実施形態における、コーナーリスト作成処理の一例を示すフローチャートである。
【図７】本実施形態における、設定入力受け付けダイアログを示す図である。
【図８】本実施形態における、直線エンティティリストテーブルを示す図である。
【図９】本実施形態における、コーナーリストテーブルを示す図である。
【図１０】本実施形態における、丸み付け前のスケッチの一例を示す図である。
【図１１】本実施形態における、設定入力受け付けダイアログの、設定ごとの表示内容を示す図である。
【図１２】本実施形態における、丸み付け後のスケッチの結果の一例を示す図である。
【図１３】本実施形態における、設定入力受け付けダイアログのグリッド選択受け付け時の状態を示す図である。
【図１４】本実施形態における、丸み付け後にＮＧがあった場合の設定入力受け付けダイアログとコーナーリストテーブルの変化の一例を示す図である。
【図１５】本実施形態における、直線リスト作成処理における直線エンティティリストテーブルの変化の一例を示す図である。
【図１６】本実施形態における、コーナーリスト作成処理におけるコーナーリストテーブルの変化の一例を示す図である。
【図１７】本実施形態における、すべての角に丸み付けがされた場合のスケッチの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本実施形態の一例について説明する。
【００１５】
図１は、本実施形態のＣＡＤシステム１００のシステム構成の一例を示す図である。本実施形態のＣＡＤシステム１００は、情報処理装置１０１、サーバ１０２が設置されており、それら装置はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワーク１０３を介して相互にデータ通信可能に接続されている。図１のネットワーク１０３上に接続される各種端末あるいはサーバの構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。また、ＣＡＤシステムとしては、２次元または３次元のＣＡＤシステムであってもよいことは言うまでもない。
【００１６】
情報処理装置１０１は、オペレーティングシステム上でＣＡＤアプリケーション３００と丸み付け支援プログラム３１０を実行する装置である。ＣＡＤアプリケーション３００と丸み付け支援プログラム３１０は後述する図２のＲＯＭ２０２または外部メモリ２１１に記憶されており、ユーザからの指示に応じて、ＣＰＵ２０１がＲＡＭ２０３に読み出して各種動作を行う。なお、クラウド環境でプログラムを実行させる場合には、サーバ１０２にＣＡＤアプリケーション３００と丸み付け支援プログラム３１０がインストールされ、情報処理装置１０１からの要求により実行されるものとする。また、丸み付け支援プログラム３１０は、ＣＡＤアプリケーション３００にアドインされ、ＣＡＤアプリケーション３００と協働して実行されるものとする。
【００１７】
オペレーティングシステムは、情報処理装置１０１を動作させるための基本的なアプリケーションである。オペレーティングシステム上でＣＡＤアプリケーション３００と丸み付け支援プログラム３１０、その他各種プログラムを動作させることができる。
【００１８】
ＣＡＤアプリケーション３００は、ユーザからの操作に応じて、設計物の立体形状を示す３次元モデルの作成や構築、また３次元モデルに基づく輪郭線、或いはユーザ任意に操作して作成した複数の線で描画された２次元データ（２次元図面）の作成を行う。更に、ＣＡＤアプリケーション３００では、３次元モデルを表示し、ユーザからの操作によって、任意の表示方向に変更することができる。
【００１９】
丸み付け支援プログラム３１０は、ＣＡＤアプリケーション３００のＡＰＩを用いて、ＣＡＤアプリケーション３００に命令を出力することが可能であり、例えば、丸み付け支援プログラム３１０が提供する画面で指定された指定半径で対象となる角に対するコーナーの作成要求を行うことができる。
【００２０】
また、丸み付け支援プログラム３１０は、ＣＡＤアプリケーション３００により実行された丸み付けの結果を受け付け、丸み付け結果を丸み付け支援プログラム３１０が提供する画面で表示することができる。
【００２１】
サーバ１０２は、情報処理装置１０１で作成された各種データを記憶管理する装置である。３次元モデルや２次元図面は、複数のユーザによって作成される場合があり、その場合には１つのサーバ１０２に各ユーザの情報処理装置１０１で作成された３次元モデルや２次元図面を一元管理する。
【００２２】
尚、情報処理装置１０１が、サーバ１０２の構成を含んでもよいし、サーバ１０２が情報処理装置１０１の構成を含んでもよい。また、本実施形態においては、情報処理装置１０１に各種データが記憶され、ユーザからの操作によって動作させる形態に基づいて説明を行う。
【００２３】
また、本実施形態では２次元図面で描画される線を用いた２次元データを用いた説明とするが、３次元データを用いて、面と面が共有するエッジ（面と面が接する部分）についても適用可能である。この場合エッジからの角面の奥行の長さによって、エッジに対する丸み付けの最大値が変わる。
【００２４】
図２は、本発明の実施形態における各種端末のハードウェア構成を示す図である。
【００２５】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２６】
また、ＲＯＭ２０２あるいは外部メモリ２１１（記憶）には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムプログラム（以下、ＯＳ）や、各サーバ或いは各ＰＣの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
また、入力コントローラ（入力Ｃ）２０５は、キーボード２０９や不図示のマウス等のポインティングデバイスからの入力を制御する。
【００２７】
ビデオコントローラ（ＶＣ）２０６は、ＣＲＴディスプレイ（ＣＲＴ）２１０等の表示器への表示を制御する。表示器はＣＲＴだけでなく、液晶ディスプレイでも構わない。これらは必要に応じて管理者が使用するものである。
【００２８】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフロッピーディスク（登録商標  ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２９】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。
【００３０】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ＣＲＴ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ＣＲＴ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３１】
本発明の情報処理装置１０１が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００３２】
次に、情報処理装置１０１の機能構成図について、図３を用いて説明する。尚、図３の機能構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【００３３】
情報処理装置１０１は、オペレーティングシステム、ＣＡＤアプリケーション３００、丸み付け支援プログラム３１０を有し、ＣＰＵ２０１が実行制御する。丸み付け支援プログラム３１０は、ＣＡＤアプリケーション３００のＡＰＩを用いて、ＣＡＤデータへの制御を実行する。また、丸み付け支援プログラム３１０は、設定受付部３０１、値取得部３０２、表示部３０３、実行制御部３０４、角指定受付部３０５、線情報取得部３０６、選択制御部３０７、角特定部３０８の機能部を有している。以下、それぞれの機能部について、説明する。
【００３４】
まず、丸み付け支援プログラム３１０は、複数の線で描画された図形データを表示する情報処理装置で実行可能なプログラムである。
設定受付部３０１は、丸み付けの設定値を受け付ける機能部である。
値取得部３０２は、丸み付けをする角を為す線に基づき決定された丸み付け可能な値を取得する機能部である。
表示部３０３は、設定受付部３０１で受け付けられた設定値で丸み付けができない角と、値取得部３０２で取得した丸み付け可能な値を表示する機能部である。
実行制御部３０４は、表示部３０３により表示された丸み付けができない角について丸み付けさせるべく、前記設定値を変更させて前記丸み付けができない角について丸み付けを実行制御する機能部である。
【００３５】
また、表示部３０３は、設定受付部３０１で受け付けられた設定値で丸み付けできる角と丸み付けできない角とを一覧表示する機能部である。
また、実行制御部３０４は、前記丸み付けできる角について丸み付けを実行制御する機能部である。
更に、表示部３０３は、実行制御部３０４による丸み付けの実行制御後に、丸み付けができない角を一覧表示する機能部である。
更に、実行制御部３０４は、段階的に丸み付けできない角の丸み付けを実行制御する機能部である。
【００３６】
角指定受付部３０５は、表示部３０３で、角の指定を受け付ける機能部である。
線情報取得部３０６は、角指定受付部３０５により受け付けた角を為す線の線情報を取得する機能部である。
選択制御部３０７は、線情報取得部３０６により取得された線情報に従って、前記図形における選択を制御する機能部である。
なお、設定値は、指定半径による丸み付け、最大半径による丸み付け、最小半径による丸み付けのいずれかの選択による値である。
【００３７】
角特定部３０８は、前記指定半径による丸み付けの場合に設定された指定半径値と、値取得部３０２で取得した丸み付け可能な値とに従って、丸み付けができない角を特定する機能部である。
また、表示部３０３は、角特定部３０８により特定された角に対して丸み付けができない旨を示す情報を表示する機能部である。
【００３８】
なお、本実施形態では、一例として、丸み付け支援プログラム３１０に特徴となる機能を有する構成としたが、ＣＡＤアプリケーション３００自身が機能を有して実行する構成であってもよい。
【００３９】
次に、本実施形態における情報処理装置１０１によって行われる基本処理について、図４に示すフローチャートを用いて説明する。尚、Ｓ４０１からＳ４１５の各ステップは情報処理装置１０１におけるＣＰＵ２０１が、情報処理装置１０１にインストールされたＣＡＤアプリケーション３００及び丸み付け支援プログラム３１０を実行するものとする。丸み付け支援プログラム３１０は、例えばＣＡＤアプリケーション３００にアドイン（アドオンともいう）されているものとする。
【００４０】
ステップＳ４０１では、操作者によるコマンド起動処理を受け付けることによって処理の対象となる２次元データをＣＡＤアプリケーション３００上で表示し、また、当該ＣＡＤアプリケーション３００の画面において丸み付け支援プログラム３１０の起動操作を受け付けることによって丸み付け支援プログラム３１０を起動する。そして、ステップＳ４０２へ処理を移行する。
ステップＳ４０２では、丸み付け支援プログラム３１０が、図７に示す設定入力受け付けダイアログを表示し、ステップＳ４０３へ処理を移行する。
【００４１】
ここで図７を用いて設定入力受け付けダイアログ７００を説明する。対象選択ボタン７０１の押下によりＣＡＤアプリケーション３００の操作受付状態へと移行し、ＣＡＤアプリケーション３００上から操作者によって選択されるスケッチ要素（例えば、丸み付けをしたい角を為す線要素を含む２次元データ）を取得してボタン上に対象の名称を表示する。なお、線要素を個々に選択するようにしてもよい。ＣＡＤデータに含まれるスケッチ要素には、スケッチ名が設定されている。また、スケッチ要素（正面、側面、上面、モデル平面など）は、ＣＡＤデータには複数あるので、その中から選択するものである。
【００４２】
テキストボックス７０２は、丸み付けを行う際の半径を受け付け、オプションボタン７０３は丸み付けの設定切り替えを受け付け、グリッド７０４は後述する丸み付け評価の結果を表示し、実行ボタン７０５はグリッド７０４に表示された内容で丸み付処理を実行し、復元ボタン７０６は直前に実行した丸み付け処理を無効化し、閉じるボタン７０７は全ての処理を終了してダイアログ７００を閉じる。
【００４３】
ステップＳ４０３では、対象選択ボタン７０１の押下を受け付けることによりＣＡＤアプリケーション３００の操作受付状態へと移行し、ＣＡＤアプリケーション３００上から操作者によって選択されるスケッチ要素を取得し、その名称を対象選択ボタン７０１のキャプションへ反映しステップＳ４０４へ処理を移行する。なお、図１０は説明に用いるスケッチの一例である。
【００４４】
ステップＳ４０４の直線リスト作成処理とは、直線エンティティリストテーブル（図８）を用いてステップＳ４０３で受け付けたスケッチ要素の中から直線要素を抽出し、この直線要素のデータテーブルを作成し、ステップＳ４０５へ処理を移行する。ステップＳ４０４の処理については図５で後述する。
【００４５】
ステップＳ４０５の最大半径リスト作成処理とは、コーナーリストテーブル（図９）を用いてステップＳ４０４で更新した直線エンティティリストテーブルから直線同士で構成される接点、すなわちコーナーをデータテーブルとして作成し、コーナーごとに有効な丸み付けの最大半径をデータテーブル内へ格納してステップＳ４０６へ処理を移行する。ステップＳ４０５の処理については図６の説明で後述する。なお、ステップＳ４０５は、丸み付けをする角を為す線に基づき決定された丸み付け可能な値を取得する値取得処理の一例を示すものである。
【００４６】
ステップＳ４０６では、図７のテキストボックス７０２及びオプションボタン７０３によって操作者から丸み付けを行う際の指定半径と丸み付けの処理内容の選択を受け付け、ステップＳ４０７へ処理を移行する。
【００４７】
オプションボタン７０３では、指定半径による丸み付け、最大半径による丸み付け、最小半径による丸み付けのいずれかの選択が可能である。テキストボックス７０２の値（指定半径）は、オプションボタン７０３で指定半径による丸み付けが選択された場合に有効とする。
すなわち、ステップＳ４０６は、丸み付けの設定値を受け付ける設定受付処理の一例を示すものである。
【００４８】
ステップＳ４０７では、ステップＳ４０５で更新したコーナーリストテーブル（図９）に対してステップＳ４０６で受け付けた丸み付けの設定を参照させることによってコーナーごとの丸み付け判定結果を図７のグリッド７０４へ表示し、ステップＳ４０８へ処理を移行する。
ここで、図１１を用いてステップＳ４０６の受け付け結果に基づいたグリッド７０４の変化について説明する。
【００４９】
ダイアログ１１０１の状態はステップＳ４０６までの処理結果に基づいてグリッド７０４を更新した場合の一例であり、グリッド７０４へコーナーＮｏ、最大Ｒ、実行Ｒをヘッダとして表示する。グリッド７０４のＮｏはコーナーリストテーブル９００のレコードＮｏ９０１を表示し、最大Ｒには最大半径９０５を表示し、オプションボタン７０３で「指定半径」の選択を受け付けた場合で、テキストボックス７０２で受け付けた値が対象レコードの最大半径を下回る場合は実行Ｒにはテキストボックス７０２の値を表示する。実行Ｒに数値を表示することはすなわち表示する半径によって当該コーナーを丸み付けすることを示唆する。一方、対象レコードの最大半径９０５がテキストボックス７０２の値を下回る場合は実行Ｒには「ＮＧ」を表示する。実行Ｒに「ＮＧ」を表示することは当該コーナーには丸み付けしない（できない）ことを示唆する。すなわち、設定値で丸み付けできる角と丸み付けできない角とを一覧表示する表示処理の一例を示すものである。また、指定半径による丸み付けの場合に設定された指定半径値と、取得した丸み付け可能な値（最大半径）とに従って、丸み付けができない角を特定する角特定する処理の一例を示すものである。「ＮＧ」は、丸み付けができない旨を示す情報である。
【００５０】
オプションボタン７０３で「最大半径」の選択を受け付けた場合、グリッド７０４の実行Ｒはそれぞれのレコードの最大Ｒに表示する値をそのまま表示する。最大Ｒはそれぞれのコーナーに丸み付けをすることが有効な最大半径である。オプションボタン７０３に対する「最大半径」の受け付けとは、すなわちそれぞれのコーナーを可能な限り大きな半径によって丸み付け処理を行うことを示唆する。
【００５１】
ダイアログ１１０２の状態はステップＳ４０６においてオプションボタン７０３が「最大半径」を受け付けた場合のステップＳ４０７におけるグリッド７０４の表示状態の一例である。
【００５２】
オプションボタン７０３で「最小半径」の選択を受け付けた場合、グリッド７０４の実行Ｒはレコード全体の最大Ｒの中で最小の値をすべての実行Ｒに表示する。オプションボタン７０３に対する「最小半径」の受け付けとは、すなわちそれぞれのコーナーに等しく有効な半径の中で最も大きい半径によって丸み付け処理を行うことを示唆する。
【００５３】
ダイアログ１１０３の状態はステップＳ４０６においてオプションボタン７０３が「最小半径」を受け付けた場合のステップＳ４０７におけるグリッド７０４の表示状態の一例である。
すなわち、ステップＳ４０７は、設受け付けられた設定値で丸み付けができない角と、取得した丸み付け可能な値を表示する表示処理の一例を示すものである。
【００５４】
ステップＳ４０８では、ステップＳ４０３から４０７までの処理結果に対して実行ボタン７０５の押下による操作者の丸み付け処理の実行を受け付ける。押下を受け付けた場合はステップＳ４０９へ処理を移行し、受け付けなかった場合はステップＳ４１３へ処理を移行する。
【００５５】
ステップＳ４０９では、図７のグリッド７０４に表示する丸み付け内容に沿ってステップＳ４０３で受け付けたスケッチ要素に対してコーナーの丸み付け処理を行う。具体的にはＣＡＤアプリケーション３００のＡＰＩを用いてコーナーごとにグリッド７０４に表示する半径によって丸み付けを行い、ステップＳ４１０へ処理を移行する。ここで図１２にステップＳ４０９の処理結果の一例を示す。１２００は実行前の状態を示し、１２１０は実行後の状態を示す。１２１１に示す通り、ＮＧのコーナーには丸み付けがされていないことがわかる。すなわち、丸み付けできる角について丸み付けを実行制御する実行制御処理の一例を示すものである。また、丸み付けできない角に対して、設定を変更して繰り返し丸み付けの実行制御をする。すなわち、段階的に丸み付けできない角の丸み付けを実行制御する実行制御処理の一例を示すものである。
【００５６】
ステップＳ４１０では、ステップＳ４０９で行った丸み付け処理結果に対して復元ボタン７０６の押下による操作者の丸み付け復元の実行を受け付ける。押下を受け付けた場合はステップＳ４１２へ、受け付けなかった場合はステップＳ４１１へ処理を移行する。
【００５７】
ステップＳ４１１では、図７のグリッド７０４の表示する実行半径でＮＧとなるグリッドが含まれていたか否かを判定し、含まれていなかった場合は処理を終了し、図７の閉じるボタン７０７の押下を受け付けた場合はダイアログを閉じる。含まれていた場合はステップＳ４１５へ処理を移行する。
【００５８】
ステップＳ４１２では、ステップＳ４０９で行った丸み付け処理を無効化し（元に戻し）、処理直前の状態へＣＡＤデータを復元する。具体的にはＣＡＤアプリケーション３００のＡＰＩを用いて一般的にＵｎＤｏと呼ばれる処理を実行することで実現する。なお、ＵｎＤｏの実行回数は丸み付けを行ったコーナーの数に準じ処理を繰り返し、ステップＳ４１３へ処理を移行する。
【００５９】
ステップＳ４１３では、図７のグリッド７０４による操作者からのグリッド選択受付処理行う。グリッドの選択を受け付けた場合はステップＳ４１４へ、受け付けなかった場合はステップＳ４０６へ処理を移行する。すなわち、角の指定を受け付ける角指定受付処理の一例を示すものである。
【００６０】
ステップＳ４１４では、ステップＳ４１３で選択を受け付けたグリッド行のコーナーを構成するスケッチ要素（角を為す線）の情報を取得する。すなわち、受け付けた角を為す線の線情報を取得する線情報取得処理の一例を示すものである。
【００６１】
そして、取得したスケッチの情報に基づく選択要求をＣＡＤアプリケーション３００に行い、ＣＡＤアプリケーション３００で選択状態にする。すなわち、取得された線情報に従って、前記図形における選択を制御する選択制御処理の一例を示すものである。
【００６２】
これにより操作者に対象の位置を認識させ、ステップＳ４０６へ処理を移行する。ここで図１３にステップＳ４１４による処理結果の一例を示す。１３００は、グリッド７０４でのコーナーを選択前の状態を示す。１３２０は、グリッド７０４で１３１０のＮＧのコーナーを選択した場合の状態を示す。１３２１のようにコーナー（角）を為す線が選択状態で表示されている。
【００６３】
ステップＳ４１５では、ステップＳ４０５で更新したコーナーリストテーブルをステップＳ４０９の実行結果に基づいて更新する。具体的には丸み付けを行ったスケッチ要素をコーナーリストテーブルから削除し、丸み付けを行わなかったスケッチ要素にコーナーリストテーブルを更新し、ステップＳ４０６へ処理を移行する。ここで図１４にステップＳ４１５による処理結果の一例を示す。実行ボタン７０５の押下前の状態が１４００で、コーナーリストテーブルの状態は１４０１である。実行ボタン７０５の押下後の状態が、１４１０で、コーナーリストテーブルの状態は１４１１である。１４１０で示す通り、ＮＧのコーナーがグリッド７０４に表示される。すなわち、丸み付けの実行制御後に、丸み付けができない角を一覧表示する表示処理の一例を示すものである。
【００６４】
また、ステップＳ４１５の後に、ステップＳ４０９を実行する処理は、表示された丸み付けができない角について丸み付けさせるべく、設定値を変更させて丸み付けができない角について丸み付けを実行制御する実行制御処理の一例を示すものである。
【００６５】
これにより、ＮＧのコーナーに対して、再度、指定半径を受け付け、丸み付けを実行することが可能となり、丸み付けを効率化することができる。ＮＧのコーナーに対してステップＳ４０６で丸み付け設定し、実行ボタン７０５が押下された状態を示す図が、図１７である。すべてのコーナーに丸み付けがされていることがわかる。以上が図４の説明である。
【００６６】
次に図５を参照して、直線リスト作成処理の流れについて説明する。尚、ステップＳ５０１〜Ｓ５０６の各ステップは、情報処理装置１０１におけるＣＰＵ２０１が、情報処理装置１０１にインストールされた丸み付け支援プログラム３１０の機能を用いて実行するものとする。
【００６７】
ステップＳ５０１では、ステップＳ４０３で受け付けたスケッチをＣＡＤアプリケーション３００のＡＰＩを用いて取得し、ステップＳ５０２へ処理を移行する。
【００６８】
ステップＳ５０２では、ステップＳ５０１で取得したスケッチを構成するすべてのスケッチ要素から１つのスケッチ要素をエンティティとして取得し、ステップＳ５０３へ処理を移行する。
【００６９】
ステップＳ５０３では、直前で取得したエンティティが直線であるかの判定を行い、直線である場合は、図８に示す直線エンティティリストテーブル８００へ所定のＮｏ９０１のレコードとして内部ＩＤ８０２を追加してステップＳ５０４へ移行する。直線でない場合はレコードとして追加せずにステップＳ５０６へ処理を移行する。直線であるかの判定を詳しく説明すると、スケッチ要素には直線や円弧やスプラインや点が含まれており、それぞれをＣＡＤアプリケーション３００ではスケッチ内のエンティティとして管理している。ＣＡＤアプリケーション３００の内部ではこれらのエンティティが直線であるか円弧であるかの属性を明示的に定義しており、ＡＰＩによってそのエンティティの定義をプロパティとして取得することにより直線であるか否かを判定する。
【００７０】
ステップＳ５０４では、ＣＡＤアプリケーション３００のＡＰＩによって直線の始点座標を取得し、図８の始点Ｘ８０３と始点Ｙ８０４へ格納し、同様に終点座標についても取得し、図８の終点Ｘ８０５と終点Ｙ８０６へ格納し、ステップＳ５０５へ処理を移行する。
【００７１】
ステップＳ５０５では、ＣＡＤアプリケーション３００のＡＰＩによって対象の直線の長さを取得し、図８の長さ８０７へ格納し、ステップＳ５０６へ処理を移行する。
【００７２】
ステップＳ５０６では、処理中のスケッチエンティティがスケッチ内の最後のエンティティであるかの判定を行い、最後のエンティティであれば処理を終了し、最後のエンティティでなければステップＳ５０２へ処理を移行する。ここで図１５にステップＳ５０２〜５０６による処理結果の一例を示す。１５０１は、ステップＳ５０４の処理を実行した後の直線エンティティリストテーブルの状態である。１５０２は、ステップＳ５０５の処理を実行した後の直線エンティティリストテーブルの状態である。１５０３は、すべてのエンティティに対して処理を実行した後の直線エンティティリストテーブルの状態である。以上が図５の説明である。
【００７３】
次に、図６を参照して、コーナーリスト作成処理の流れについて説明する。尚、ステップＳ６０１〜Ｓ６０８の各ステップは、情報処理装置１０１におけるＣＰＵ２０１が、情報処理装置１０１にインストールされた丸み付け支援プログラム３１０の機能を用いて実行するものとする
【００７４】
ステップＳ６０１では、ステップＳ４０３で受け付けたスケッチを取得し、ステップＳ６０２へ処理を移行する。
【００７５】
ステップＳ６０２では、ステップＳ６０１で取得したスケッチ内に含まれる点を取得し、ステップＳ６０３へ処理を移行する。点の情報としては座標を示すものとするが、点を識別する点ＩＤなどを用いる形態であってもよい。この場合、点ＩＤとこの点を持つ線要素とが関連付いているものとする。
【００７６】
ステップＳ６０３では、ステップＳ６０２で取得した点を共有するエンティティの一覧をＣＡＤアプリケーション３００のＡＰＩを用いて取得し、異なる２つのエンティティで構成されているかを判定し、構成されている場合はステップＳ６０４へ、構成されていない場合はステップＳ６０８へ処理を移行する。具体的には、点はスケッチ要素として単独で位置する場合と、エンティティ同士の接点として位置する場合があり、また接点として位置する場合でも２つ以上のエンティティ同士の接点として位置する場合がある。３つ以上のエンティティによって構成される接点の場合、後述する丸み付けを実行することは輪郭の崩れをきたす要因となるため丸み付けをしないように制御する。そのため、本実施形態では２つのエンティティによって構成される点に対して処理を行うものとする。
【００７７】
ステップＳ６０４では、ステップＳ６０２で取得した点を構成する２つのエンティティがいずれも直線であるかの判定を行い、２つとも直線である場合はステップＳ６０５へ、いずれかもしくは片方が直線でない場合はステップＳ６０８へ処理を移行する。
【００７８】
ステップＳ６０５では、ステップＳ６０４で判定した２つの直線エンティティの内部ＩＤを図９のコーナーリストテーブル９００へ所定のＮｏ９０１のレコードとして内部ＩＤ１  ９０２と内部ＩＤ２  ９０３へ格納し、ステップＳ６０６へ処理を移行する。
【００７９】
ステップＳ６０６では、ステップＳ６０４で判定した２つの直線エンティティの内角（０度＜角度＜１８０度）をＣＡＤアプリケーション３００のＡＰＩを用いて取得し、ステップＳ６０５で追加したレコードの内角９０４へ格納し、ステップＳ６０７へ処理を移行する。
【００８０】
ステップＳ６０７では、ステップＳ６０６までにコーナーリストテーブル９００へ格納したレコードをもとに、ステップＳ６０２で取得した点（すなわちコーナー）で丸み付けを行う際に有効となる最大半径を算出し、コーナーリストテーブル９００の最大半径９０５へ格納し、ステップＳ６０８へ処理を移行する。具体的には、内部ＩＤ１  ９０２及び内部ＩＤ２  ９０３に格納した情報をもとに、直線エンティティリストテーブル８００を検索し、内部ＩＤが一致するレコードの長さに格納した値を「Ｌ１」、「Ｌ２」として取得し、ステップＳ６０６で取得した内角を「θ」として以下の算出式で内部ＩＤ１及び２の直線エンティティに絞った場合の最大半径１及び２を取得し、算出結果の値が小さい方を当該コーナーの最大半径として９００の最大半径９０５へ格納する。
式：最大半径＝（Ｌ／２）ｔａｎ（θ／２）
【００８１】
ステップＳ６０８では、処理中の点がスケッチ内の最後の点エンティティであるかの判定を行い、最後の点エンティティであれば処理を終了し、最後の点エンティティでなければステップＳ６０２へ処理を移行する。ここで図１６にステップＳ６０２〜６０８による処理結果の一例を示す。１６０１は、ステップＳ６０５の処理を実行した後のコーナーリストテーブルの状態である。１６０２は、ステップＳ６０６の処理を実行した後のコーナーリストテーブルの状態である。１６０３は、ステップＳ６０７の処理を実行した後のコーナーリストテーブルの状態である。１６０４は、全エンティティに対して処理を実行した後のコーナーリストテーブルの状態である。以上が図６の説明である。
【００８２】
以上説明したように、本実施形態によれば、対象となる角への丸み付けを効率化することができる。
【００８３】
特に、ＣＡＤアプリケーション３００上のスケッチ要素に対して丸み付けを行う際、任意の半径で丸み付けを行うことができないコーナーを操作者が事前に、容易に認識することができる。またそれらを段階的に繰り返し行うことやすべてのコーナーに丸み付けが有効となる最大半径を容易に認識することができるため、コーナーを丸み付けする作業を容易にすることができる。
【００８４】
また、複数の角に対して均一の半径で丸み付けを行う作業において任意の半径による丸み付けが実施できない場合、半径をどの程度変化させることが可能かの判断の負担を解消することができる。
【００８５】
例えば、指定半径に対して丸み付けが実施できない角を丸み付けの対象から取り除き、丸み付けを行った後、丸み付けが実施できない角に対して、最大半径、最小半径、指定半径のモードを選択させて、丸み付けをさせることが可能となる、丸み付けにおける負担を軽減できる。
【００８６】
本実施形態は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【００８７】
なお、本実施形態は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００８８】
したがって、本実施形態の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００８９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００９０】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００９１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本実施形態のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００９２】
また、本実施形態のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００９３】
また、本実施形態のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００９５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００９６】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。例えば、本実施形態では、直線同士で共有する点（角）に対する丸み付け処理としたが、直線と円弧の組み合わせで行ってもよい。
【符号の説明】
【００９７】
１００  ＣＡＤシステム
１０１  情報処理装置
１０２  サーバ
１０３  ネットワーク
２０１  ＣＰＵ
３００  ＣＡＤアプリケーション
３１０  丸み付け支援プログラム
【図１】
2018106548.tif 000003
【図２】
2018106548.tif 000004
【図３】
2018106548.tif 000005
【図４】
2018106548.tif 000006
【図５】
2018106548.tif 000007
【図６】
2018106548.tif 000008
【図７】
2018106548.tif 000009
【図８】
2018106548.tif 000010
【図９】
2018106548.tif 000011
【図１０】
2018106548.tif 000012
【図１１】
2018106548.tif 000013
【図１２】
2018106548.tif 000014
【図１３】
2018106548.tif 000015
【図１４】
2018106548.tif 000016
【図１５】
2018106548.tif 000017
【図１６】
2018106548.tif 000018
【図１７】
2018106548.tif 000019