(57)【特許請求の範囲】
【請求項１】
コンピュータに，
モデルの３次元形状を示す複数のフィーチャが作業順に記録されたヒストリ型データから，各作業のフィーチャが，作業で設定された穴径が予め登録された穴あけ用の工具サイズと一致する，穴あけ作業に対応する製造要件フィーチャに該当するかを判定し，
前記穴あけ作業に対応する製造要件フィーチャに該当すると判定された前記フィーチャの作業順を，前記ヒストリ型データの他のフィーチャの作業順の後に，前記穴あけ作業に対応する製造要件フィーチャに該当すると判定された前記フィーチャ間の作業順を保持して移動させる処理を，実行させる
ことを特徴とする３次元形状作成支援プログラム。
【請求項２】
コンピュータに，
モデルの３次元形状を示す複数のフィーチャが作業順に記録されたヒストリ型データから，各作業のフィーチャが，製造要件である旨の情報が付与されている製造要件フィーチャに該当するかを判定し，
前記製造要件フィーチャに該当すると判定された前記フィーチャの作業順を，前記ヒストリ型データの他のフィーチャの作業順の後に，前記製造要件フィーチャに該当すると判定された前記フィーチャ間の作業順を保持して移動させる処理を，実行させる
ことを特徴とする３次元形状作成支援プログラム。
【請求項３】
コンピュータに，
モデルの３次元形状を示す複数のフィーチャが作業順に記録されたヒストリ型データから，各作業のフィーチャが製造要件フィーチャに該当するかを判定し，前記判定をする際に非製造要件である旨の情報が付与されているフィーチャを前記製造要件フィーチャに該当しないフィーチャと判定し，
前記製造要件フィーチャに該当すると判定された前記フィーチャの作業順を，前記ヒストリ型データの他のフィーチャの作業順の後に，前記製造要件フィーチャに該当すると判定された前記フィーチャ間の作業順を保持して移動させる処理を，実行させる
ことを特徴とする３次元形状作成支援プログラム。
【請求項４】
コンピュータに，
モデルの３次元形状を示す複数のフィーチャが作業順に記録されたヒストリ型データから，各作業のフィーチャが，ユーザ操作によって製造要件として選択された製造要件フィーチャに該当するかを判定し，
前記製造要件フィーチャと判定された前記フィーチャの作業順を，前記ヒストリ型データの他のフィーチャの作業順の後に，前記製造要件フィーチャに該当すると判定された前記フィーチャ間の作業順を保持して移動させる処理を，実行させる
ことを特徴とする３次元形状作成支援プログラム。
【請求項５】
コンピュータに，
モデルの３次元形状を示す複数のフィーチャが作業順に記録されたヒストリ型データから，各作業のフィーチャが予め特定された製造要件フィーチャに該当するかを判定し，
前記製造要件フィーチャに該当すると判定された前記フィーチャの作業順を，前記ヒストリ型データにおける前記製造要件フィーチャの作業順内で，残りの製造要件フィーチャの作業順の後に位置するように移動させる処理を，実行させる
ことを特徴とする３次元形状作成支援プログラム。
【請求項６】
コンピュータに，
モデルの３次元形状を示す複数のフィーチャが作業順に記録されたヒストリ型データから，各作業のフィーチャが製造要件フィーチャに該当するかを判定し，
前記製造要件フィーチャと判定された前記フィーチャの作業順を，前記ヒストリ型データの他のフィーチャの作業順の後に，前記製造要件フィーチャに該当すると判定された前記フィーチャ間の作業順を保持して移動させ，
前記製造要件フィーチャに該当すると判定された前記フィーチャの作業順の移動をする前後の前記ヒストリ型データにもとづいて，移動前の立体形状と移動後の立体形状を示すモデルをそれぞれ作成し，該作成した２つのモデルを比較し，該２つのモデルの対応する部分のベース形状が一致しない場合に，該一致しない部分をハイライト表示する処理を，実行させる
ことを特徴とする３次元形状作成支援プログラム。
【請求項７】
コンピュータが，
モデルの３次元形状を示す複数のフィーチャが作業順に記録されたヒストリ型データから，各作業のフィーチャが，作業で設定された穴径が予め登録された穴あけ用の工具サイズと一致する，穴あけ作業に対応する製造要件フィーチャに該当するかを判定し，
前記穴あけ作業に対応する製造要件フィーチャに該当すると判定された前記フィーチャの作業順を，前記ヒストリ型データの他のフィーチャの作業順の後に，前記穴あけ作業に対応する製造要件フィーチャに該当すると判定された前記フィーチャ間の作業順を保持して移動する処理を，実行する
ことを特徴とする３次元形状作成支援方法。
【請求項８】
モデルの３次元形状を示す複数のフィーチャが作業順に記録されたヒストリ型データから，各作業のフィーチャが，作業で設定された穴径が予め登録された穴あけ用の工具サイズと一致する，穴あけ作業に対応する製造要件フィーチャに該当するかを判定する処理部と，
前記穴あけ作業に対応する製造要件フィーチャに該当すると判定された前記フィーチャの作業順を，前記ヒストリ型データの他のフィーチャの作業順の後に，前記穴あけ作業に対応する製造要件フィーチャに該当すると判定された前記フィーチャ間の作業順を保持して移動する処理部とを備える
ことを特徴とする３次元形状作成支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，３次元形状作成を支援するためのデータ処理技術に関する。
【背景技術】
【０００２】
３次元ＣＡＤシステムは，３次元形状を定義するデータのタイプから，概ね２つのタイプ，ヒストリ型ＣＡＤシステムとノンヒストリ型ＣＡＤシステムとに分けられる。
【０００３】
ヒストリ型ＣＡＤシステムでは，３次元形状を生成する際に対象物に与えられるフィーチャの履歴やフィーチャの階層関係を保持し，フィーチャ設定のプロセスにより最終形状を定義するデータを生成する。ノンヒストリ型ＣＡＤシステムでは，生成の際に対象物に与えられるフィーチャの履歴や親子関係を保持せず，最終的な幾何形状を定義するデータを生成する。
【０００４】
ここで，フィーチャとは，対象物の３次元形状の構成要素であり，ある形状特性を示す属性である。フィーチャとしては，押出し，カット，ジョイン，フィレット，抜き勾配等がある。なお，各フィーチャは異なった指定方法でパラメータが設定される。
【０００５】
ヒストリ型ＣＡＤシステムが出力するデータ（ヒストリ型データ）には，３次元形状作成時の作業履歴が記録され，対象物に設定したフィーチャの設定履歴を含む。そのため，設計者にとっては，ヒストリ型データをみて作業プロセスを確認したり，３次元形状の修正が，関連するフィーチャのみの変更によって行えるという利点がある。したがって，ヒストリ型データの特徴を生かすことにより，３次元形状作成や修正を効率的に行うことができる。特に，３次元形状の簡単な修正をする場合には，修正したいフィーチャを再設定するだけでよいため，修正作業が容易になる。
【０００６】
なお，ノンヒストリ型データは，ヒストリ型データに比べてデータ量が少なく，製造工程では，ノンヒストリ型データが利用される。例えば，従来の一手法として，ヒストリ型データからノンヒストリ型データへの変換処理を行い，変換する際に，幾何形状の要素毎にフィーチャ情報から構成部品との対応を示す属性情報を抽出して付加し，属性情報以外の情報を削除することが知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−１９６３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
３次元形状を修正する場合に，現在のモデルを示すヒストリ型データに記録されている作業履歴から，変形したい形状に関連するフィーチャを設定した作業を特定し，フィーチャのパラメータを変更することにより行われる。
【０００９】
図１８は，ヒストリ型ＣＡＤシステムにおけるヒストリ型データの表示画面例を示す図である。図１８に示す表示画面の例では，左側の欄に，ヒストリ型データに含まれる作業履歴が作業名の一覧として表示され，右側の欄に，各作業履歴の階層関係が表示される。
【００１０】
ヒストリ型データでは，モデルの形状が複雑になるほど，作業の履歴数が膨大になり，階層関係も複雑になる。また，図１８に示す表示画面のように，各作業履歴が識別番号と共に表示されるが，同一名の作業が多数表示されるため，修正したい作業履歴を特定するという作業が非効率である。そのため，実際の修正作業では，フィーチャを修正する以前の修正したい作業履歴を特定する時間が長くなり，修正工数が多大になってしまうという問題がある。特に，他者が設計した３次元形状のヒストリ型データを再利用したい場合には，他者がどのような手順で形状を作成したかを知ることは困難であり，ヒストリ型データから修正したい作業履歴を特定する作業にさらに長時間かかる。
【００１１】
さらに，ヒストリ型データは，作業順に従ってフィーチャが記録されるという特徴を有する。そのため，ベース形状を決定した後に製造要件を指定するという設計手順に従って作業されていない場合には，その後の３次元形状の修正によって製造要件違反を生じる可能性があるという問題がある。
【００１２】
製造要件とは，モデルの製造工程で必要となる要件をいう。例えば，金型からの引き抜き条件，ネジ穴の大きさや深さの条件等である。形状特性を示すフィーチャの中には，フィレット，ネジ穴，抜き勾配等のように，製造要件となるフィーチャがある。以下の説明では，製造要件を示すフィーチャを，製造要件フィーチャと呼ぶことがある。
【００１３】
図１９は，設計手順により生じる設計要件違反例を示す図である。図１９（Ａ）は，縦壁に隣接するボス（突起部）のモデル及びモデルの上面を表す図，図１９（Ｂ）は，設計作業の手順例を示す図，図１９（Ｃ）は，修正後のモデルの上面を表す図である。
【００１４】
図１９（Ａ）の設計時には，その後の修正，例えば縦壁の厚みの変更を想定しておらず，図１９（Ｂ）に示す手順で設計されたとする。すなわち，まず，「ボス」のベース形状を決定し（手順１），製造要件に従ったネジ穴で「ボス」に対しフィーチャ「穴あけ」を設定して（手順２），ボス形状を完成させる。その後に，「縦壁」のベース形状を決定し（手順３），「縦壁」を，「ボス」に対してネジ穴を塞がない位置で結合する（手順４）。この場合に，ヒストリ型データには，図１９（Ａ）の３次元形状を示す，手順１，手順２，手順３，手順４の作業履歴が記録される。
【００１５】
モデルの「縦壁」の厚みを変更する場合は，ユーザが，図１９（Ｂ）に示す作業履歴を記録したヒストリ型データから，手順３の履歴を特定し，「縦壁」の厚みの設定（押出し）を修正する。しかし，次の手順４の内容は元のままであるため，図１９（Ｃ）に示すように，「押出し」のパラメータ増加により「縦壁」が「ボス」のネジ穴に干渉し，製造要件違反となってしまう。これは，製造要件であるネジ穴の設定後に，縦壁のベース形状を設計したことに起因している。
【００１６】
上述のように，ヒストリ型データにより立体形状が定義されているモデルを修正する場合に，モデル設計時の作業手順を覚えておいたり，他者の作業手順を理解したりして，修正するべきフィーチャを特定して修正しなければならず，立体形状の修正作業前の作業工数が大きくなる。特に，作業履歴が長いモデルの場合には，修正するべきフィーチャを特定する工数が，より大きなものとなる。
【００１７】
また，製造要件を示すフィーチャの設定に関する作業以降に，モデルのベース形状の設定に関する作業があると，フィーチャ設定の修正によって製造要件違反を引き起こす恐れがある。
【００１８】
本発明の目的は，製造要件フィーチャが見つけやすく，かつ，製造要件違反を生じないようなヒストリ型データを提供して，効率的な３次元形状作成を支援することである。
【課題を解決するための手段】
【００１９】
本発明の一態様として開示される，３次元形状作成支援プログラムは，コンピュータに，モデルの３次元形状を示す複数のフィーチャが作業順に記録されたヒストリ型データから，各作業のフィーチャが，作業で設定された穴径が予め登録された穴あけ用の工具サイズと一致する，穴あけ作業に対応する製造要件フィーチャに該当するかを判定し，前記穴あけ作業に対応する製造要件フィーチャに該当すると判定された前記フィーチャの作業順を，前記ヒストリ型データの他のフィーチャの作業順の後に，前記穴あけ作業に対応する製造要件フィーチャに該当すると判定された前記フィーチャ間の作業順を保持して移動させる処理を，実行させるものである。
【００２０】
また，本発明の別の態様として開示される，３次元形状作成支援方法は，コンピュータが，モデルの３次元形状を示す複数のフィーチャが作業順に記録されたヒストリ型データから，各作業のフィーチャが，作業で設定された穴径が予め登録された穴あけ用の工具サイズと一致する，穴あけ作業に対応する製造要件フィーチャに該当するかを判定し，前記穴あけ作業に対応する製造要件フィーチャに該当すると判定された前記フィーチャの作業順を，前記ヒストリ型データの他のフィーチャの作業順の後に，前記穴あけ作業に対応する製造要件フィーチャに該当すると判定された前記フィーチャ間の作業順を保持して移動する処理を，実行するものである。
【００２１】
さらに，本発明の別の態様として開示される，３次元形状作成支援装置は，モデルの３次元形状を示す複数のフィーチャが作業順に記録されたヒストリ型データから，各作業のフィーチャが，作業で設定された穴径が予め登録された穴あけ用の工具サイズと一致する，穴あけ作業に対応する製造要件フィーチャに該当するかを判定する処理部と，前記穴あけ作業に対応する製造要件フィーチャに該当すると判定された前記フィーチャの作業順を，前記ヒストリ型データの他のフィーチャの作業順の後に，前記穴あけ作業に対応する製造要件フィーチャに該当すると判定された前記フィーチャ間の作業順を保持して移動する処理部とを備える。
【発明の効果】
【００２２】
本発明の一態様として開示される３次元形状作成支援プログラムによれば，ヒストリ型データを用いて３次元形状を作成する場合に，作業効率を高める作業環境を提供することができ，もって，３次元形状作成作業の工数増大を防止することができるという効果を奏する。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施例における３次元形状作成支援装置のブロック構成例を示す図である。
【図２】本実施例において，処理対象となる部品の３次元形状を示す図である。
【図３】ヒストリ型データのデータ構成例を示す図である。
【図４】ヒストリ型データの作業履歴の関係及び各作業履歴のモデルイメージ例を示す図である。
【図５】３次元形状作成支援装置の概要処理フロー例を示す図である。
【図６】製造要件が設定されたヒストリ型データの例を示す図である。
【図７】製造要件フィーチャのうち，ネジ用の穴あけの判定処理の処理フロー例を示す図である。
【図８】ヒストリ型データにもとづく作業履歴のフィーチャの表示例を示す図である。
【図９】非製造要件が設定されたヒストリ型データの例を示す図である。
【図１０】ヒストリ型データの作業履歴の関係及び各作業履歴のモデルイメージ例を示す図である。
【図１１】作業履歴の並び替え例を示す図である。
【図１２】特定の製造要件フィーチャの作業履歴の並び替え例を示す図である。
【図１３】ヒストリ型データにもとづく作業履歴の関係及び各作業履歴のモデルイメージの例を示す図である。
【図１４】ベース形状の不一致及びハイライト表示例を示す図である。
【図１５】処理済みヒストリ型データの例を示す図である。
【図１６】３次元形状作成支援装置１のハードウェア構成の一例を示す図である。
【図１７】３次元形状作成支援装置による製造要件違反の抑制を説明するための図である。
【図１８】ヒストリ型ＣＡＤシステムにおけるヒストリ型データの表示画面例を示す図である。
【図１９】設計手順により生じる設計要件違反例を示す図である。
【発明を実施するための形態】
【００２４】
以下，本発明の一態様として開示する３次元形状作成支援装置について説明する。
【００２５】
図１は，本発明の一実施例における３次元形状作成支援装置のブロック構成例を示す図である。
【００２６】
３次元形状作成支援装置１は，データ取得部１１，判定部１２，並べ替え部１３，モデル表示部１５，データ保存部１６を備える。
【００２７】
データ取得部１１は，ヒストリ型データ２を，ヒストリ型ＣＡＤシステム，記憶媒体等（図１に図示しない）から取得する。
【００２８】
ヒストリ型データ２は，ヒストリ型ＣＡＤシステムで対象物の３次元形状を作成した際の作業履歴であって，作業毎に対象物に対して設定したフィーチャに関する情報を記録したデータである。ヒストリ型データ２のデータ構造等の詳細は，後述する。
【００２９】
判定部１２は，データ取得部１１が取得したヒストリ型データ２に記録された作業履歴で設定された各フィーチャが，製造要件フィーチャであるかを判定する。製造要件フィーチャは，製造上の制約である製造要件を示すフィーチャであり，例えば，「穴あけ」，「フィレット」，「抜き勾配」等の形状特性を示すフィーチャである。
【００３０】
判定部１２は，製造要件フィーチャを，作業で設定されたコマンドにもとづいて判定することができる。例えば，「カット」と「押出し」のコマンド（「押出し（カット）」と表す）の組は，「穴あけ」と判定される。「フィレット」及び「抜き勾配」のコマンドは，それぞれ，「フィレット」，「抜き勾配」のフィーチャと判定される。
【００３１】
さらに，判定部１２は，「穴あけ」の場合に，「押出し（カット）」で設定された穴径が，予め登録された「穴あけ」用の工具サイズ（例えばドリルのミル径）と一致する場合に，該当する作業履歴のフィーチャを製造要件フィーチャと判定することができる。
【００３２】
さらに，判定部１２は，ヒストリ型データ２の作業履歴のフィーチャに，製造要件である旨の情報（製造要件：Ｍ）が付与されている場合に，そのフィーチャを製造要件フィーチャとして判定し，非製造要件である旨の情報（非製造要件：Ｄ）が付与されている場合に，そのフィーチャを製造要件フィーチャと判定しないことができる。
【００３３】
さらに，判定部１２は，ヒストリ型データ２に記録された作業履歴のフィーチャを表示装置に表示したり，製造要件フィーチャと判定したフィーチャを表示装置（図１に図示しない）に表示したりして，入力装置（図１に図示しない）を介して得たユーザ指定にもとづいて，表示したフィーチャに製造要件Ｍであるか非製造要件Ｄであるかを設定することができる。
【００３４】
並べ替え部１３は，ヒストリ型データ２から製造要件フィーチャと判定された作業履歴を抽出し，ヒストリ型データ２に記録されている他のフィーチャの作業履歴の作業順の後に，抽出した製造要件フィーチャの作業履歴間の作業順を保持して移動する。
【００３５】
さらに，並べ替え部１３は，移動した製造要件フィーチャの作業履歴間で，特定の製造要件フィーチャの作業履歴を，残りの製造要件フィーチャの作業履歴の後に位置するように移動することができる。
【００３６】
モデル表示部１５は，ヒストリ型データ２をもとに処理対象の３次元形状モデルを生成し，表示装置に表示する。
【００３７】
さらに，モデル表示部１５は，製造要件フィーチャの作業履歴の移動をする前後のヒストリ型データ２にもとづいて移動前の立体形状モデルと移動後の立体形状モデルをそれぞれ作成し，２つのモデルを比較し，２つのモデルに含まれる対応する部分であってベース形状が一致しない部分をハイライト表示することができる。ここで，ハイライト表示とは，通常の表示態様と異なる表示態様を示し，異なる表示色，表示模様，点滅等のあらゆる表示態様を含むものとする。
【００３８】
データ保存部１６は，ヒストリ型データ２内で製造要件フィーチャの作業履歴を移動させた処理済みヒストリ型データ３を所定のデータ処理装置に出力又は所定のデータ記憶部に格納する。
【００３９】
図２は，本実施例において，処理対象となる部品の３次元形状を示す図である。部品は，ネジ穴を有するボスと縦壁とが結合したものである。
【００４０】
図３は，ヒストリ型データ２のデータ構成例を示す図である。図３は，図２に示す部品のヒストリ型データ２の例である。ヒストリ型データ２の各行は，各作業の作業履歴のデータを示す。ヒストリ型データ２は，作業履歴を識別するための「ＩＤ（識別番号）」，作業において処理対象となったモデルの形状を示す「ベース形状」，作業における処理コマンドを示す「コマンド」，コマンドで設定されたパラメータを示す「パラメータ」，製造要件であるか非製造要件であるかの情報を示す「製造要件」等のデータ項目を備える。
【００４１】
データ取得部１１は，「ＩＤ，ベース形状，コマンド，パラメータ」のデータ項目を含むヒストリ型データ２を取得した場合には，取得したヒストリ型データ２に「製造要件」のデータ項目を追加する。
【００４２】
図３に示すヒストリ型データ２は，ＩＤ“０１”，“０２”，…“０７”の順で作業が実行されたことを表している。また，作業履歴として，例えば，ＩＤ＝０４の作業は，ＩＤが０１〜０３の作業で処理されたベース形状（ｂａｓｅ３）に対して，３ｍｍ（ミリメートル）の「フィレット」と呼ばれるフィーチャを設定した作業であることを示す。
【００４３】
図４（Ａ）は，図３に示すヒストリ型データ２の作業履歴の関係を示す図，図４（Ｂ）は，各作業履歴のモデルイメージ例を示す図である。図４（Ａ）及び図４（Ｂ）の数字“０１：，０２：，…”は，図２に示すヒストリ型データ２の「ＩＤ」を表す。
【００４４】
図４（Ａ）に示す作業履歴の関係から，ＩＤ＝０４の作業がＩＤ＝０３の作業後になされたものであることがわかる。また，図４（Ｂ）に示すモデルイメージから，ＩＤ＝０４の作業により作成された３次元形状，すなわち，ベース形状（ｂａｓｅ３）にフィレットを施した後の３次元形状を表している。
【００４５】
図５は，３次元形状作成支援装置１の概要処理フロー例を示す図である。
【００４６】
３次元形状作成支援装置１のデータ取得部１１は，図３に示すヒストリ型データ２を取得する（ステップＳ１）。
【００４７】
判定部１２は，ヒストリ型データ２に記録されている各作業履歴のフィーチャが，製造要件フィーチャに該当するかを判定する（ステップＳ２）。
【００４８】
判定部１２は，ステップＳ２の製造要件判定処理として，以下のような処理を行うことができる。
【００４９】
第１の判定処理として，判定部１２が，作業で実行された「コマンド」から各作業履歴のフィーチャが製造要件フィーチャであるかを判定する。
【００５０】
判定部１２は，製造要件フィーチャとするコマンドの種別を予め保持しておく。例えば，製造要件フィーチャが，ネジ用の穴あけ，フィレット，抜き勾配等である場合に，該当するコマンドとして，「押出し（カット）」，「フィレット」，「抜き勾配」のコマンドが設定されているとする。
【００５１】
より詳しくは，判定部１２は，ヒストリ型データ２の先頭のデータから順にコマンドを調べ，コマンドが「押出し（カット）」，「フィレット」，「抜勾配」のいずれかに該当する作業履歴のフィーチャを製造要件フィーチャと判定する。
【００５２】
一例として，判定部１２は，図３のヒストリ型データ２のＩＤ＝０１の作業履歴について，そのコマンドが上記のコマンド（押出し（カット），フィレット，抜き勾配）に該当しないので，ＩＤ＝０１の作業履歴のフィーチャは製造要件フィーチャではないと判定する。次に，判定部１２は，ＩＤ＝０２の作業履歴について，そのコマンドが上記のコマンド（押出し（カット））に該当するので，ＩＤ＝０２の作業履歴のフィーチャは製造要件フィーチャであると判定する。
【００５３】
ここで，コマンド「押出し（カット）」のフィーチャが，常にネジ用の穴あけの製造要件に該当するとは限らない。そこで，判定部１２は，コマンドから製造要件フィーチャと判断した作業履歴について，フィーチャがネジ用の穴あけであるかをさらに判定することが好ましい。なお，フィーチャがネジ用の穴あけであるかの判定処理の詳細は後述する。
【００５４】
判定部１２は，ＩＤ＝０２の作業履歴のフィーチャがネジ用の穴あけに該当すると判定した場合は，判定部１２は，図３のヒストリ型データ２のＩＤ＝２の「製造要件」に製造要件である旨を示す情報“Ｍ”を設定する。一方，ＩＤ＝０２の作業履歴がネジ用の「穴あけ」に該当しないと判定した場合は，判定部１２は，ＩＤ＝０２の「製造要件」に非製造要件である旨を示す情報“Ｄ”を設定する。
【００５５】
同様にして，判定部１２は，ヒストリ型データ２の残りの作業履歴データについてもコマンドを調べ，そのフィーチャが製造要件フィーチャであると判定した場合に，「製造要件」に“Ｍ”を設定する。
【００５６】
図６は，製造要件または非製造要件が設定されたヒストリ型データの例を示す図である。図６のヒストリ型データ２では，判定部１２の判定結果により，ＩＤが“０２，０４，０６，０７”の作業履歴のフィーチャに製造要件である旨の情報“Ｍ”が設定されている。
【００５７】
上述の処理により，３次元形状作成支援装置１は，ヒストリ型データ２に記録される作業履歴数が膨大であっても，製造要件に関連するフィーチャを漏れなくかつ自動的に抽出することができる。
【００５８】
図７は，製造要件フィーチャのうち，ネジ用の穴あけの判定処理の処理フロー例を示す図である。
【００５９】
判定部１２は，コマンド「押出し（カット）」に該当する作業履歴（ＩＤ＝０２）のフィーチャの設定結果を示すモデル（部品）から円弧中心を拾い（ステップＳ２０），さらに部品のワイヤフレームから円弧中心を含む平面を定義する（ステップＳ２１）。次に，判定部１２は，予め登録されているネジ穴用の工具サイズ，例えばドリルのミル径，に相当する球体を定義する（ステップＳ２２）。そして，判定部１２は，平面の円弧中心と球体中心とを一致させて（ステップＳ２３），平面を所定の間隔（数ｍｍ（ミリメートル））で数回オフセットさせる（ステップＳ２４）。
【００６０】
判定部１２は，オフセットさせた各平面で，平面と穴あけによる開口部の側面（円弧との交差から円弧中心を認識するかを調べる（ステップＳ２５）。オフセットさせた平面のいずれかで，円弧中心を認識しなかった場合には（ステップＳ２５のＮ），判定部１２は，この作業（穴あけ）による開口部（穴）が，所定の深さを有するネジ用の貫通孔（ネジ穴）ではないとして，製造要件フィーチャではないと判断し，ヒストリ型データ２の「製造要件」に非製造要件（Ｄ）を設定する（ステップＳ２６）。
【００６１】
一方，オフセットさせた平面で円弧中心を認識した場合には（ステップＳ２５のＹ），判定部１２は，オフセットさせた平面の円弧中心を結び法線ベクトルを定義し（ステップＳ２７），球体中心を法線ベクトルに沿って移動させ（ステップＳ２８），球体が穴あけによる開口部（穴）と干渉するかを調べる（ステップＳ２９）。球体が穴あけによる開口部（穴）と干渉しない場合は（ステップＳ２９のＮ），判定部１２は，この作業（穴あけ）による開口部（穴）がネジ穴であるとして，製造要件フィーチャと判断し，ヒストリ型データ２の「製造要件」に製造要件（Ｍ）を設定する（ステップＳ２１０）。
【００６２】
一方，球体が穴あけによる開口部（穴）と干渉とする場合は（ステップＳ２１０のＹ），判定部１２は，モデルを表示処理，球体と干渉が発生した箇所をハイライト表示で表示し，ユーザに，ネジ穴であるか否かの指定を促す（ステップＳ２１１）。
【００６３】
ユーザ操作により，ネジ穴であるとの指定を取得した場合は（ステップＳ２１２のＹ），ステップＳ２１０の処理へ進み，ネジ穴ではないとの指定を取得した場合は（ステップＳ２１２のＮ），ステップＳ２６の処理へ進む。
【００６４】
なお，ステップＳ２１１，Ｓ２１２の処理は，後述するユーザによる製造要件フィーチャの選択処理や，モデル表示処理（図５のステップＳ６）において実行されるようにしてもよい。
【００６５】
上述の処理により，３次元形状作成支援装置１は，開口部を作成する「押出し（カット）」のコマンドによるフィーチャのうち，ネジ用の穴あけを設定したフィーチャのみを製造要件フィーチャとして自動的に抽出すること，又は，ネジ用の穴であるかをユーザに確認させることができる。
【００６６】
第２の判定処理として，判定部１２は，ヒストリ型データ２に記録されている作業履歴のフィーチャから製造要件フィーチャに該当するものを抽出し，抽出した製造要件フィーチャを表示して，ユーザに製造要件フィーチャであるか否かを指定させる。ここで，製造要件フィーチャに該当するフィーチャの抽出処理は，第１の判定処理と同様に，コマンドにもとづいて抽出するものとする。
【００６７】
なお，判定部１２は，ヒストリ型データ２に記録されている作業履歴の全てのフィーチャを表示して，ユーザに製造要件フィーチャであるか否かを指定させるようにしてもよい。
【００６８】
図８は，図６に示すヒストリ型データ２にもとづく作業履歴のフィーチャの表示例を示す図である。図８では，作業履歴のフィーチャのうち，コマンドにより製造要件フィーチャと判定された作業履歴を角丸矩形で囲み表している。
【００６９】
ここで，ＩＤ＝０４の作業履歴の「フィレット」は，製造上の制約によるものではなく，デザインの観点から設定されたものであるとする。
【００７０】
判定部１２は，入力装置を介したユーザ操作により，ＩＤ＝０４の作業履歴の「フィレット」が，非製造要件ではないとの指定を取得すると，図９に示すように，ヒストリ型データ２のＩＤ＝０４の「製造要件」に非製造要件（Ｄ）を設定する。その結果，ヒストリ型データ２のＩＤ“０２”，“０６”，“０７”の作業履歴のフィーチャが，製造要件フィーチャと設定される。
【００７１】
図１０（Ａ）は，ユーザ指定後の作業履歴の表示例を示す図，図１０（Ｂ）は，製造要件フィーチャと判断された作業履歴のモデルイメージ例を示す図である。図１０（Ａ）では，図８と同様に，製造要件フィーチャと判定された作業履歴を角丸矩形で囲み表している。
【００７２】
上述の処理により，製造要件フィーチャとなるフィーチャであってもユーザによって異なる用途で用いられたフィーチャを，製造要件フィーチャから排除することができるため，製造要件フィーチャの抽出精度をより高くすることができる。
【００７３】
図５の処理フローにおいて，ステップＳ２の判定処理の後，並べ替え部１３は，判定部１２が処理したヒストリ型データ２の「製造要件」の設定情報をもとに，製造要件フィーチャである作業履歴のデータを抽出する（ステップＳ３）。
【００７４】
そして，並べ替え部１３は，抽出した作業履歴のデータを，ヒストリ型データ２の残りの作業履歴の作業順の後に移動して，ヒストリ型データ２の作業履歴を並び替える（ステップＳ４）。
【００７５】
図１１は，ヒストリ型データの作業履歴の並び替え例を示す図である。図１１の左側は，製造要件フィーチャの作業履歴の移動前のヒストリ型データ２を表し，図１１の右側は，製造要件フィーチャの作業履歴の移動後のヒストリ型データ２を表す。図１１の左側に示すヒストリ型データから抽出されたＩＤが“０２”，“０６”，“０７”の作業履歴は，図１１の右側に示すように，抽出していない作業履歴の最後の作業履歴（ＩＤ＝０５）の後ろに，“０２”，“０６”，“０７”の作業順で移動する。その結果，ヒストリ型データ２に記録された作業履歴は，ＩＤで示すと“０１，０３，０４，０５，０２，０６，０７”となる。
【００７６】
次に，並べ替え部１３は，移動させた作業履歴について，予め設定された特定の製造要件フィーチャの作業履歴を，さらに後の順番になるように移動させる（ステップＳ５）。ここで，特定の製造要件フィーチャとして「フィレット」が設定されているとする。並べ替え部１３は，移動したＩＤ＝０６の「フィレット」にかかる作業の履歴データを，ヒストリ型データ２の作業順の最後に移動させる。
【００７７】
図１２は，特定の製造要件フィーチャの作業履歴の並び替え例を示す図である。図１２の左側は，製造要件フィーチャの作業履歴の移動後のヒストリ型データ２を表し，図１２の右側は，特定の製造要件フィーチャの作業履歴の移動後のヒストリ型データ２を表す。
【００７８】
並べ替え部１３は，移動した製造要件フィーチャの作業履歴の「コマンド」から，特定の製造要件フィーチャのコマンド（フィレット）に該当する作業履歴（ＩＤ＝０６）を取り出し，図１２の右側に示すように，最後の作業データ（ＩＤ＝０７）の後ろに移動させる。
【００７９】
さらに，並べ替え部１３は，移動した製造要件フィーチャの作業履歴（ＩＤ＝０２，０６，０７）のＩＤを付け直して“０８，０９，１０”とし，各作業のベース形状を，作業履歴にもとづいて再設定する。
【００８０】
図１３は，図１２の右側に示すヒストリ型データ２にもとづく，部品の作業履歴の関係及び各作業履歴のモデルイメージの例を示す図である。
【００８１】
次に，モデル表示部１５は，製造要件フィーチャの作業順を入れ替えたヒストリ型データ２をもとに，部品の３次元形状モデルを生成し，表示装置に表示させる（ステップＳ６）。
【００８２】
ユーザは，製造要件フィーチャの作業履歴の入れ替え結果を，部品のモデルイメージからも確認することができる。
【００８３】
さらに，ステップＳ６の処理において，モデル表示部１５は，製造要件フィーチャの作業履歴の移動の前後のヒストリ型データ２にもとづいて，部品のそれぞれの３次元形状モデルを生成し，２つのモデルを比較して，モデルのベース形状が一致しない部分をハイライト表示するように，表示を切り替えてもよい。
【００８４】
図１４は，ベース形状の不一致が生じた部分のハイライト表示例を示す図である。図１４の左側は，製造要件フィーチャの作業履歴の移動前のヒストリ型データ２にもとづく部品の上面の例を示し，図１４の右側は，製造要件フィーチャの作業履歴の移動後のヒストリ型データ２にもとづく部品の上面の例を示す。図１４に示すように，製造要件フィーチャの作業履歴の移動により，「縦壁」の位置が変更され部品のベース形状の不一致が生じた場合には，図１４の右側に示す部品のモデルをハイライト表示し，ユーザが確認できるようにする。
【００８５】
上述の処理により，ユーザは，製造要件フィーチャの作業履歴の入れ替えによる影響を確認したり，修正したりすることができる。
【００８６】
次に，データ保存部１６は，製造要件フィーチャの作業履歴を移動させたヒストリ型データ２を処理済みヒストリ型データ３として出力又は所定のデータ記憶部に保存する（ステップＳ７）。
【００８７】
図１５は，処理済みヒストリ型データ３の例を示す図である。
【００８８】
出力又は保存された処理済みヒストリ型データ３は，ヒストリ型データ２と同様に，データ取得部１１により３次元形状作成支援装置１に入力して，再利用することができる。処理済みヒストリ型データ３では作業履歴が，ベース形状の決定，製造要件の設定の順序で並ぶため，データ再利用時に，ヒストリ型データの特徴を活かして３次元形状作成を行うことができる。
【００８９】
特に，処理済みヒストリ型データ３では，製造要件を示すフィーチャがデザイン上の観点から使用されている場合に，その作業履歴について非製造要件を示す情報（Ｄ）が設定されているため，製造要件フィーチャの確認をより効率的に行うことができる。
【００９０】
図１６は，３次元形状作成支援装置１のハードウェア構成の一例を示す図である。
【００９１】
３次元形状作成支援装置１は，図１６に示すコンピュータ１００として実施することができる。コンピュータ１００は，例えば，演算装置（ＣＰＵ：Central Processing Unit）１０１，メモリ１０２，入力装置１０３，出力装置１０４，外部記憶装置１０５，ネットワーク接続装置１０６，媒体駆動装置１０７などを備え，これらの各装置がバス１０８に接続された構成を有する。
【００９２】
ＣＰＵ１０１は，コンピュータ１００の全体を制御する。メモリ１０２は，プログラムの実行やデータ更新などの処理において，外部記憶装置１０５や可搬型のデータ記憶媒体に記憶されているプログラムやデータを一時的に格納するＲＡＭ（Random Access Memory）などである。メモリ１０２は，ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラム，アプリケーションプログラム，ＣＰＵ１０１による処理に必要な各種データの少なくとも一部が一時的に格納される。
【００９３】
入力装置１０３は，例えばキーボード，マウス，タッチパネルなどである。出力装置１０４は，例えばディスプレイなどである。外部記憶装置１０５は，例えばハードディスク装置などである。外部記憶装置１０５には，プログラムやデータが格納される。
【００９４】
ネットワーク接続装置１０６は，インターネットなどのネットワークに接続し，外部の情報処理装置とプログラムやデータの送受信を行う。
【００９５】
媒体駆動装置１０７は，可搬型記憶媒体に記憶されたプログラムやデータを読み出す。可搬型記憶媒体は，例えば，ＦＤ（フレキシブルディスク），ＣＤ−ＲＯＭ，ＤＶＤ，光磁気ディスクなどの媒体である。
【００９６】
コンピュータ１００のＣＰＵ１０１は，メモリ１０２に読み出したプログラムやデータを用いて，３次元形状作成支援装置１の上述した実施例に示す処理を含む各種処理を実行する。
【００９７】
３次元形状作成支援装置１のデータ取得部１１，判定部１２，並べ替え部１３，モデル表示部１５，データ保存部１６等は，プログラムで構成することができ，これらのプログラムがメモリ１０２にロードされてＣＰＵ１０１で実行されることにより，３次元形状作成支援装置１が有する各機能が実現される。また，３次元形状作成支援装置１のヒストリ型データ２，処理済みヒストリ型データ３は，外部記憶装置１０５に記憶される。
【００９８】
なお，３次元形状作成支援装置１の各処理及び機能を実現するプログラム及びデータは，必ずしも外部記憶装置１０５に記憶されている必要はなく，可搬型記憶媒体に記憶されているプログラム及びデータが，媒体駆動装置１０７によって読み取られ，メモリ１０２に格納されるようにしてもよい。さらに，ネットワーク接続装置１０６が，公衆回線，インターネット，ＬＡＮ，ＷＡＮなどのネットワークを介して他のコンピュータなどに記憶された上述のプログラム及びデータを取得するようにしてもよい。
【００９９】
以上説明したように，３次元形状作成支援装置１によれば，ヒストリ型ＣＡＤシステムが出力したヒストリ型データ２において３次元形状がどのような手順で作成されていても，ベース形状を決定し，その後に製造要件を設定するという設計手順となるようにヒストリ型データに記録された作業履歴を並べ替え，ユーザに提供することができる。そのため，ヒストリ型ＣＡＤシステムの特徴を活かした３次元形状作成作業の実現を支援することができる。
【０１００】
具体的には，３次元形状作成支援装置１によれば，ヒストリ型データ２に記録された製造要件フィーチャの作業履歴が作業手順の後ろにまとめられるため，モデル修正の際に，修正したい作業履歴（製造要件フィーチャ）の特定が，従来に比べて短時間に行えるようになる。
【０１０１】
さらに，ヒストリ型データ２に記憶された作業履歴のうち，製造要件となるフィーチャであってもデザイン上の観点て用いられたフィーチャによるものについては，非製造要件である旨の情報が設定されるため，データの再利用時に，製造要件フィーチャをより精度よくまとめることができる。
【０１０２】
さらに，３次元形状作成支援装置１によれば，ヒストリ型データ２に記録された製造要件フィーチャの作業履歴が作業手順の後ろにまとめられるため，モデル修正の際にフィーチャの設定を変更しても，製造要件違反の発生を抑制することができる。
【０１０３】
図１７は，製造要件違反の抑制を説明するための図である。
【０１０４】
図１７（Ａ）は，図１９（Ｂ）に示す作業手順を記録したヒストリ型データ２を，３次元形状作成支援装置１によって処理した場合のヒストリ型データ２における作業手順の例を示す図，図１７（Ｂ）は，図１７（Ａ）のヒストリ型データ２を用いて，図１９（Ａ）のモデルを修正した場合のモデルの上面の例を表す図である。
【０１０５】
図１７（Ａ）のヒストリ型データ２では，製造要件フィーチャの作業履歴である手順２が，作業順の最後に移動して，「ボス」のベース形状を決定し（手順１），「縦壁」のベース形状を決定し（手順３），「ボス」と「縦壁」とを結合して（手順４），部品全体の形状が決定した後に，製造要件に従ったネジ穴で「ボス」に対しフィーチャ「穴あけ」を設定している（手順２）。
【０１０６】
図１９（Ａ）に示すモデルの「縦壁」を修正する場合に，ユーザが，図１７（Ａ）に示すヒストリ型データ２の手順３で，「押出し」のパラメータを変更しても，修正されたベース形状に対して製造要件フィーチャ（穴あけ）が設定される。その結果，図１７（Ｂ）に示すように，厚みを増加させた「縦壁」がネジ穴に干渉せず，製造要件違反を生じないことがわかる。
【０１０７】
以上のように，本発明の一態様として開示した３次元形状作成支援装置１によれば，ヒストリ型データによる３次元形状作成作業において，製造要件フィーチャに関する作業履歴の特定を容易にし，製造要件違反が生じにくいヒストリ型データを提供することができ，３次元形状作成の作業効率を向上させ，もって，作業工数の増加を抑止するという効果を奏する。
【０１０８】
以上，本発明の一態様として開示した３次元形状作成支援装置１について詳細に説明したが，本発明は上述する実施形態に限定されず，本発明の要旨を逸脱しない範囲において，各種の改良および変更を行ってもよいことは当然である。
【符号の説明】
【０１０９】
１  ３次元形状作成支援装置
１１  データ取得部
１２  判定部
１３  並べ替え部
１５  モデル表示部
１６  データ保存部
２  ヒストリ型データ
３  処理済みヒストリ型データ
【図１】
0005962057.tif 000002
【図２】
0005962057.tif 000003
【図３】
0005962057.tif 000004
【図４】
0005962057.tif 000005
【図５】
0005962057.tif 000006
【図６】
0005962057.tif 000007
【図７】
0005962057.tif 000008
【図８】
0005962057.tif 000009
【図９】
0005962057.tif 000010
【図１０】
0005962057.tif 000011
【図１１】
0005962057.tif 000012
【図１２】
0005962057.tif 000013
【図１３】
0005962057.tif 000014
【図１４】
0005962057.tif 000015
【図１５】
0005962057.tif 000016
【図１６】
0005962057.tif 000017
【図１７】
0005962057.tif 000018
【図１８】
0005962057.tif 000019
【図１９】
0005962057.tif 000020