(57)【要約】【課題】演算量の低減化を図ること。【解決手段】推定装置１００は、設計データを参照して、組立体１０１をある方向から見た場合の部品Ｐａｒｔ１の第１の面積を算出するとともに、ある方向から他の部品によって視野がさえぎられない状況で見た場合の部品Ｐａｒｔ１の第２の面積を算出する。＋Ｘｌ方向について、推定装置１００は、組立体１０１を＋Ｘｌ方向から見た場合の部品Ｐａｒｔ１の第１の面積を、ａ１＿ｐｘｌと算出する。また、推定装置１００は、＋Ｘｌ方向から部品Ｐａｒｔ２によって視野がさえぎられない状況で見た場合の部品Ｐａｒｔ１の第２の面積を、ａ２＿ｐｘｌと算出する。続けて、推定装置１００は、ある部品をある方向から取り外す場合の取り外し易さの程度を、第１の面積ａ１＿ｐｘｌと第２の面積ａ２＿ｐｘｌとの比に基づき算出する。【選択図】図１
2014092887.tif 000002
【特許請求の範囲】
【請求項１】
ある部品を構成要素に含む組立体に関する設計データを用いた部品の取り外し易さの程度の推定プログラムにおいて、
前記設計データを参照して、該ある部品をある方向から取り外す場合の取り外し易さの程度を、前記組立体を前記ある方向から見た場合の該ある部品の面積と、該ある方向から他の部品によって視野がさえぎられない状況で見た場合の該ある部品の面積との比に基づき算出する、
部品の取り外し易さの程度の推定プログラム。
【請求項２】
前記設計データを参照して、複数の部品に対して取り外し易さを算出し、算出結果から最も取り外し易い部品を特定する、
請求項１に記載の部品の取り外し易さの程度の推定プログラム。
【請求項３】
部品を取り外し易い順に取り外していき、部品を取り外した順とは逆順に並び替えて組立順序を特定する、
請求項２に記載の部品の取り外し易さの程度の推定プログラム。
【請求項４】
前記設計データに含まれる各部品が締結部品か否かを示す情報を含み、
前記締結部品は、前記締結部品が締結する対象の部品を取り外すタイミングで取り外す、
請求項１に記載の部品の取り外し易さの程度の推定プログラム。
【請求項５】
複数の方向で取り外せる部品がある場合、直前に取り外した部品を取り外した方向を優先する、
請求項１に記載の部品の取り外し易さの程度の推定プログラム。
【請求項６】
取り外せる部品が複数存在する場合、直前に取り外した部品を取り外した方向で取り外せる部品を優先する、
請求項１に記載の部品の取り外し易さの程度の推定プログラム。
【請求項７】
取り外せる部品が複数存在する場合、前記組立体の部品の位置から前記組立体から取り外せたと判定する位置までの距離が短い部品を優先する、
請求項１に記載の部品の取り外し易さの程度の推定プログラム。
【請求項８】
取り外せる部品が複数存在する場合、直前に取り外した部品の位置からの距離が短い部品を優先する、
請求項１に記載の部品の取り外し易さの程度の推定プログラム。
【請求項９】
ある部品を構成要素に含む組立体に関する設計データを参照して、該ある部品をある方向から取り外す場合の取り外し易さの程度を、前記組立体を前記ある方向から見た場合の該ある部品の面積と、該ある方向から他の部品によって視野がさえぎられない状況で見た場合の該ある部品の面積との比に基づき算出する算出部を、
有することを特徴とする推定装置。
【請求項１０】
ある部品を構成要素に含む組立体に関する設計データを用いた部品の取り外し易さの程度を用いる製造方法において、
前記設計データを参照して、該ある部品をある方向から取り外す場合の取り外し易さの程度を、前記組立体を前記ある方向から見た場合の該ある部品の面積と、該ある方向から他の部品によって視野がさえぎられない状況で見た場合の該ある部品の面積との比に基づき算出し、
算出した取り外し易さの程度に基づいて組立順序を特定し、
特定した組立順序に従って前記組立体を製造する、
ことを特徴とする製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定プログラム、推定装置、および製造方法に関する。
【背景技術】
【０００２】
従来、ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）データから、製品の組立順序を推定する技術がある。たとえば、組立モデルを形成する部品間の隣接関係と部品間の位置関係を拘束するアセンブリ拘束情報を用いて、組立順序を推定する技術がある。また、製品モデルを形成する複数の部品間の結合関係を表す結合関係情報を抽出し、結合関係情報に基づいて、ある部品が他の部品と分離可能であるか否かを判断するとともに、他の部品との干渉判定を行いながら複数の部品の組立順序を推定する技術がある。（たとえば、下記特許文献１、２を参照。）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−４６９２４号公報
【特許文献２】特開平１０−２４０３２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、ある部品が他の部品と分離可能であるかを判断する際に、ある部品を製品から外せるか否かの干渉判定を行うため、組立順序の推定にかかる演算量が多くなる。
【０００５】
１つの側面では、本発明は、組立順序の推定にかかる演算量の低減化を図る推定プログラム、推定装置、および製造方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、ある部品を構成要素に含む組立体に関する設計データを用いた部品の取り外し易さの程度の推定プログラムにおいて、設計データを参照して、該ある部品をある方向から取り外す場合の取り外し易さの程度を、組立体をある方向から見た場合の該ある部品の面積と、該ある方向から他の部品によって視野がさえぎられない状況で見た場合の該ある部品の面積との比に基づき算出する推定プログラム、推定装置、および製造方法が提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、組立順序の推定にかかる演算量の低減化を図るという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施の形態にかかる推定装置の動作例を示す説明図である。
【図２】図２は、推定装置のハードウェア構成の一例を示すブロック図である。
【図３】図３は、推定装置の機能構成例を示すブロック図である。
【図４】図４は、設計データの記憶内容の一例を示す説明図である。
【図５】図５は、取り外し部品の候補の選択例を示す説明図（その１）である。
【図６】図６は、取り外し部品の候補の選択例を示す説明図（その２）である。
【図７】図７は、取り外し部品の候補一覧の一例を示す説明図である。
【図８】図８は、取り外し部品の特定における第１の判断基準を示す説明図である。
【図９】図９は、取り外し部品の特定における第２の判断基準を示す説明図である。
【図１０】図１０は、取り外し部品の特定における第３の判断基準を示す説明図である。
【図１１】図１１は、取り外し部品の特定における第４の判断基準を示す説明図である。
【図１２】図１２は、取り外し部品の特定の一例を示す説明図である。
【図１３】図１３は、締結部品の取り外しの順序を推定する例を示す説明図である。
【図１４】図１４は、組立順序推定処理手順の一例を示すフローチャートである。
【図１５】図１５は、残部品順序推定処理手順の一例を示すフローチャートである。
【図１６】図１６は、取り外し部品の候補選択処理手順の一例を示すフローチャート（その１）である。
【図１７】図１７は、取り外し部品の候補選択処理手順の一例を示すフローチャート（その２）である。
【図１８】図１８は、取り外し部品の特定処理手順の一例を示すフローチャート（その１）である。
【図１９】図１９は、取り外し部品の特定処理手順の一例を示すフローチャート（その２）である。
【図２０】図２０は、締結部品順序推定処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、開示の推定プログラム、推定装置、および製造方法の実施の形態を詳細に説明する。
【００１０】
図１は、本実施の形態にかかる推定装置の動作例を示す説明図である。本実施の形態にかかる推定装置１００は、ある部品を構成要素に含む組立体に関する設計データを用いた部品の取り外し易さの程度を推定するコンピュータである。作業者や作業用の製造装置は、製品を複数の部品から組み立てる際に、推定装置１００によって推定された順序に基づいて、製品を組み立てる。設計データは、部品ごとに、対象の部品の位置情報と、対象の部品の形状を示す情報を含む。設計データの詳細については、図４にて後述する。ここで、組立体は、２つ以上の部品で形成されるものとする。たとえば、組立体は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、サーバ、携帯情報端末、自動車、家電製品などの機械製品などが挙げられる。
【００１１】
組立順序を推定する技術として、たとえば、以下の２つの技術がある。１つ目の技術は、アセンブリ拘束情報を用いて、組立順序を推定するものである。アセンブリ拘束情報とは、２つの部品のある同種のジオメトリ部位の相対位置関係を固定するＣＡＤ上の制約条件である。同種のジオメトリ部位となる一例は、軸と軸、平面と平面等である。しかしながら、ＣＡＤデータにはアセンブリ拘束情報がないものもあるため、１つ目の技術は、汎用性が低いものとなる。
【００１２】
２つ目の技術は、部品間の結合関係を表す結合関係情報に基づいて、ある部品が他の部品と分離可能であるか否かを判断するとともに、他の部品との干渉判定を行って、組立順序を推定するものである。干渉判定では、ある部品のある面と他の部品のある面とが干渉するか、ある部品のある面と他の部品の別の面とが干渉するか、…というように面の組合せごとに処理を行うため、演算量が多くなる。ＣＡＤデータには、結合関係情報がないものもあるため、２つ目の技術は、汎用性が低いものとなる。また、２つ目の技術は、干渉判定を行うため、演算量が多いものとなる。
【００１３】
そこで、汎用性を高く、演算量の低減化を図るために、推定装置１００は、ある方向からある部品を見た際の面積と、他の部品を非表示とした際のある部品を見た際の面積とからある部品の取り外し易さの程度を算出する。推定装置１００は、算出した取り外し易さの程度に従って、部品の取り外しの順序を推定し、特定した部品の取り外しの順序を逆順にすることにより、部品の組立順序を推定する。これにより、推定装置１００は、２つの面積の比較を行うだけで済むので、組立順序の推定にかかる演算量の低減化を図ることができる。
【００１４】
図１の例では、推定装置１００は、組立体１０１に含まれる部品Ｐａｒｔ１の取り外し易さの程度を推定する。組立体１０１は、部品Ｐａｒｔ１と部品Ｐａｒｔ２を含む。また、組立体１０１に含まれる各部品の形状を示す情報は、Ｘｌ軸、Ｙｌ軸、Ｚｌ軸というローカル座標系で表される座標を用いて表される。
【００１５】
推定装置１００は、設計データを参照して、組立体１０１をある方向から見た場合の部品Ｐａｒｔ１の第１の面積を算出するとともに、ある方向から他の部品によって視野がさえぎられない状況で見た場合の部品Ｐａｒｔ１の第２の面積を算出する。ある方向とは、どのような方向でもよい。図１の例では、推定装置１００は、ある方向として、＋Ｘｌ方向と、−Ｘｌ方向とについて、部品Ｐａｒｔ１の取り外し易さの程度を推定する。
【００１６】
＋Ｘｌ方向について、推定装置１００は、組立体１０１を＋Ｘｌ方向から見た場合の部品Ｐａｒｔ１の第１の面積を、ａ１＿ｐｘｌと算出する。具体的な面積の算出方法は、図６にて後述する。また、推定装置１００は、＋Ｘｌ方向から部品Ｐａｒｔ２によって視野がさえぎられない状況で見た場合の部品Ｐａｒｔ１の第２の面積を、ａ２＿ｐｘｌと算出する。続けて、推定装置１００は、ある部品をある方向から取り外す場合の取り外し易さの程度を、第１の面積ａ１＿ｐｘｌと第２の面積ａ２＿ｐｘｌとの比に基づき算出する。具体的に、推定装置１００は、第２の面積を基準として、第１の面積が大きいほど、取り外し易いと算出する。
【００１７】
また、−Ｘｌ方向について、推定装置１００は、組立体１０１を−Ｘｌ方向から見た場合の部品Ｐａｒｔ１の第１の面積を、ａ１＿ｍｘｌと算出する。また、推定装置１００は、−Ｘｌ方向から部品Ｐａｒｔ２によって視野がさえぎられない状況で見た場合の部品Ｐａｒｔ１の第２の面積を、ａ２＿ｍｘｌと算出する。続けて、推定装置１００は、ある部品をある方向から取り外す場合の取り外し易さの程度を、第１の面積ａ１＿ｍｘｌと第２の面積ａ２＿ｍｘｌとの比に基づき算出する。
【００１８】
算出される結果として、第１の面積を基準として、第２の面積が大きいほど、取り外し易いと算出する。図１の例では、ａ１＿ｐｘｌ：ａ２＿ｐｘｌと、ａ１＿ｍｘｌ：ａ２＿ｍｘｌとでは、ａ２＿ｐｘｌを基準とした時のａ１＿ｐｘｌは、ａ２＿ｍｘｌを基準とした時のａ１＿ｍｘｌより大きくなる。したがって、推定装置１００は、＋Ｘｌ方向での部品Ｐａｒｔ１の取り外し易さの程度を大きく算出し、−Ｘｌ方向での部品Ｐａｒｔ１の取り外し易さの程度を小さく算出する。以降、図２〜図２０を用いて、推定装置１００の詳細について説明する。
【００１９】
（推定装置１００のハードウェア）
図２は、推定装置のハードウェア構成の一例を示すブロック図である。図２において、推定装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、を含む。また、推定装置１００は、ディスクドライブ２０４と、ディスク２０５と、通信インターフェース２０６と、を含む。また、推定装置１００は、ディスプレイ２０７と、キーボード２０８と、マウス２０９とを含む。また、ＣＰＵ２０１〜マウス２０９はバス２１０によってそれぞれ接続される。
【００２０】
ＣＰＵ２０１は、推定装置１００の全体の制御を司る演算処理装置である。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される揮発性メモリである。
【００２１】
ディスクドライブ２０４は、ＣＰＵ２０１の制御に従ってディスク２０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ２０４には、たとえば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク２０５は、ディスクドライブ２０４の制御で書き込まれたデータを記憶する不揮発性メモリである。たとえばディスクドライブ２０４が磁気ディスクドライブである場合、ディスク２０５には、磁気ディスクを採用することができる。また、ディスクドライブ２０４が光ディスクドライブである場合、ディスク２０５には、光ディスクを採用することができる。また、ディスクドライブ２０４がソリッドステートドライブである場合、ディスク２０５には、半導体素子メモリを採用することができる。
【００２２】
通信インターフェース２０６は、ネットワーク２１１と内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース２０６は、通信回線を通じてネットワーク２１１となるＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどに接続され、ネットワーク２１１を介して他の装置に接続される。通信インターフェース２０６には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。
【００２３】
ディスプレイ２０７は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する装置である。ディスプレイ２０７には、たとえば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＴＦＴ（Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２４】
キーボード２０８は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード２０８は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２０９は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス２０９は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【００２５】
（推定装置１００の機能）
次に、推定装置１００の機能構成について説明する。図３は、推定装置の機能構成例を示すブロック図である。推定装置１００は、算出部３０１と、特定部３０２と、を含む。制御部となる算出部３０１、特定部３０２は、記憶装置に記憶されたプログラムをＣＰＵ２０１が実行することにより、算出部３０１、特定部３０２の機能を実現する。記憶装置とは、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、ディスク２０５などである。または、通信インターフェース２０６を経由して他のＣＰＵが実行することにより、算出部３０１、特定部３０２の機能を実現してもよい。
【００２６】
また、推定装置１００は、複数の部品を含む組立体に関する設計データ３１１にアクセス可能である。設計データ３１１は、ＲＡＭ２０３、ディスク２０５といった記憶装置に格納される。また、設計データは、組立体に含まれる各部品が締結部品か否かを示す情報を含めてもよい。締結部品は、複数の部品を締結する部品である。締結部品は、たとえば、ねじやナット、ワッシャなどである。締結部品によって締結される部品を、「被締結部品」と称する。
【００２７】
算出部３０１は、設計データ３１１を参照して、組立体をある方向から見た場合のある部品の第１の面積と、ある方向から他の部品によって視野がさえぎられない状況で見た場合のある部品の第２の面積とを算出する。そして、算出部３０１は、ある部品をある方向から取り外す場合の取り外し易さの程度を、第１の面積と第２の面積との比に基づき算出する。ある方向は、どのような方向でもよい。また、算出部３０１は、取り外し難さの程度を算出してもよい。
【００２８】
図１の例を用いると、たとえば、算出部３０１は、＋Ｘｌ方向から見た場合の部品Ｐａｒｔ１の第１の面積ａ１＿ｐｘｌと、＋Ｘｌ方向から他の部品によって視野がさえぎられない状況で見た場合のある部品の第２の面積ａ２＿ｐｘｌを算出する。そして、算出部３０１は、部品Ｐａｒｔ１を＋Ｘｌ方向から取り外す場合の取り外し易さの程度を、第１の面積ａ１＿ｐｘｌと第２の面積ａ２＿ｐｘｌとの比に基づき算出する。たとえば、算出部３０１は、取り外し易さの程度を、第２の面積／第１の面積の算出結果で表してもよい。
【００２９】
また、算出部３０１は、複数の方向で取り外せる部品がある場合、直前に取り外した部品を取り外した方向を優先するように取り外し易さの程度を算出してもよい。たとえば、算出部３０１は、取り外し易さの程度を、複数の方向のうち、直前に取り外した部品を取り外した方向と同じ方向の取り外し易さの程度を大きく算出し、直前に取り外した部品を取り外した方向と異なる方向の取り外し易さの程度を小さく算出する。
【００３０】
また、算出部３０１は、取り外せる部品が複数存在する場合、直前に取り外した部品を取り外した方向で取り外せる部品を優先するように取り外し易さの程度を算出してもよい。
【００３１】
また、算出部３０１は、取り外せる部品が複数存在する場合、組立体の部品の位置から組立体から取り外せたと判定する位置までの距離が短い部品を優先するように取り外し易さの程度を算出してもよい。たとえば、２つの部品が取り外せるとする。このとき、算出部３０１は、１つ目の部品の位置から組立体から取り外せたと判定する位置までの距離と、２つ目の部品の位置から組立体から取り外せたと判定する位置までの距離と、を算出し、値が小さくなった部品の取り外し易さの程度を大きく算出する。また、組立体から部品が取り外せたと判定する方法としては、たとえば、組立体を覆う、Ｘｌ、Ｙｌ、Ｚｌ軸のいずれかの軸に各面が並行な直方体から部品の重心が外れた場合に部品が外れたと判断する。以下、Ｘｌ、Ｙｌ、Ｚｌ軸のいずれかの軸に各面が並行な直方体を、「バウンディングボックス」と称する。
【００３２】
また、算出部３０１は、取り外せる部品が複数存在する場合、直前に取り外した部品の位置からの距離が短い部品を優先するように取り外し易さの程度を算出してもよい。たとえば、２つの部品が取り外せるとする。このとき、算出部３０１は、直前に取り外した部品の位置と１つ目の部品の位置との距離と、直前に取り外した部品の位置と２つ目の部品の位置との距離と、を算出し、値が小さくなった部品の取り外し易さの程度を大きくする。なお、算出結果は、ＲＡＭ２０３、ディスク２０５などの記憶領域に記憶される。
【００３３】
特定部３０２は、設計データ３１１を参照して、複数の部品に対して取り外し易さを算出し、算出部３０１によって算出された算出結果から最も取り外し易い部品を特定する。たとえば、特定部３０２は、１つ目の部品の取り外し易さの程度が１００であり、２つ目の部品の取り外し易さの程度が８０であれば、値が大きい１つ目の部品を最も取り外し易い部品として特定する。また、算出部３０１が、取り外し難さの程度を算出した場合、特定部３０２は、取り外し難さが最も小さい部品を特定する。
【００３４】
また、特定部３０２は、部品を取り外し易い順に取り外していき、部品を取り外した順とは逆順に並び替えて組立順序を特定してもよい。たとえば、特定部３０２は、取り外し易い順に、部品Ｐａｒｔ１、部品Ｐａｒｔ２、部品Ｐａｒｔ３という順で取り外した場合、部品Ｐａｒｔ３、部品Ｐａｒｔ２、部品Ｐａｒｔ１というように逆順に並び変えた順序を組立順序として特定する。
【００３５】
また、特定部３０２は、締結部品を、締結部品が締結する対象の部品を組立体から取り外すタイミングで取り外していき、部品を取り外した順とは逆順に並び替えて組立順序を特定してもよい。たとえば、ある締結部品が締結する対象の部品が部品Ｐａｒｔ２である場合、特定部３０２は、部品Ｐａｒｔ２を組立体から取り外すタイミングで取り外していくので、部品Ｐａｒｔ１、ある締結部品、部品Ｐａｒｔ２、部品Ｐａｒｔ３という順で取り外す。なお、特定結果は、ＲＡＭ２０３、ディスク２０５などの記憶領域に記憶される。
【００３６】
図４は、設計データの記憶内容の一例を示す説明図である。図４の（Ａ）にて設計データ３１１の記憶内容について説明し、図４の（Ｂ）にて、設計データ３１１に含まれる形状情報について説明する。設計データ３１１は、部品ごとに、３次元のグローバル座標系における対象の部品の位置情報と、対象の部品の形状を示す情報とを含む。図４に示す設計データ３１１は、レコード４０１−１を含む。
【００３７】
設計データ３１１は、部品名、部品の原点座標、ローカル座標系、色情報、形状情報という５つのフィールドを含む。部品名フィールドには、対象の部品の名称が格納される。部品の原点座標フィールドには、グローバル座標系における対象の部品の位置情報が格納される。ローカル座標系フィールドには、ローカル座標の各軸の方向を表す情報が格納される。ローカル座標の各軸の方向を表す情報として、本実施の形態では、グローバル座標に対して乗算することにより、グローバル座標からローカル座標に変換する変換行列が格納される。色情報フィールドには、対象の部品の色情報が格納される。色情報は、たとえば、ＲＧＢ値である。形状情報フィールドには、対象の部品の形状を示す形状情報が格納される。形状情報として、本実施の形態では、ファセットを複数用いて形状情報とする。ファセットは、微細平面を特定する情報である。ファセットについて、図４の（Ｂ）を用いて説明する。
【００３８】
図４の（Ｂ）が示すように、部品Ｐａｒｔ１は、ファセット１〜ファセットＮにより形成される。１つのファセットは、３つの頂点の座標情報と、３つの頂点により形成される微細平面の法線ベクトルを有する。たとえば、ファセットＮは、３つの頂点ｖ＿Ｎ１、ｖ＿Ｎ２、ｖ＿Ｎ３と、法線ベクトルＶｅｃ＿Ｎとを有する。
【００３９】
たとえば、図４の（Ａ）に示すレコード４０１−１は、部品Ｐａｒｔ１について、原点座標がＰ１（ｘｇ，ｙｇ，ｚｇ）であり、変換行列がＲ１であり、色情報が（ｒ１，ｇ１，ｂ１）であり、ファセット１〜ファセットＮを有することを示す。
【００４０】
（組立体からの部品の取り外し順序推定）
図５〜図１３を用いて、組立体からの部品の取り外し順序推定について説明を行う。具体的には、図５〜図１２を用いて、組立体に含まれる部品のうち、締結部品を除いた残部品の取り外し順序の推定について説明し、図１３を用いて、締結部品の取り外し順序の推定について説明する。図５〜図１２のうち、図５と図６を用いて、組立体に含まれる部品のうち、締結部品を除いた残部品の部品ごとに、該当の部品を取り外し部品の候補に選択するか否かを判断する処理について説明する。
【００４１】
図５は、取り外し部品の候補の選択例を示す説明図（その１）である。図５の（Ａ）が示すように、組立体５０１は、部品Ｐａｒｔ１と部品Ｐａｒｔ２を含む。推定装置１００は、部品Ｐａｒｔ１を処理対象部品として、取り外し部品の候補を選択するために用いる、取り外し易さの程度を算出する。図５の（Ｂ）は、部品Ｐａｒｔ１の鳥瞰図を示す。
【００４２】
取り外し易さの程度を算出する処理の準備として、推定装置１００は、特定の大きさを有する描画領域を用意し、検証方向から見て、部品Ｐａｒｔ１を描画領域に部品Ｐａｒｔ１が収まる表示倍率で投影する。投影する際に、推定装置１００は、部品Ｐａｒｔ１の色を白色とし、背景色を黒色とし、他の部品を非表示にして投影する。検証方向は、どのような方向でもよいが、本実施の形態では、＋Ｘｌ方向、−Ｘｌ方向、＋Ｙｌ方向、−Ｙｌ方向、＋Ｚｌ方向、−Ｚｌ方向、という６方向とする。特定の大きさは、開発者によって指定される。
【００４３】
描画領域に投影した画像を、図５の（Ｃ）にて示す。図５の（Ｃ）は、部品Ｐａｒｔ１を、＋Ｘｌ方向に投影した画像Ｄ１と、−Ｘｌ方向に投影した画像Ｄ２と、＋Ｙｌ方向に投影した画像Ｄ３と、−Ｙｌ方向に投影した画像Ｄ４と、＋Ｚｌ方向に投影した画像Ｄ５と、−Ｚｌ方向に投影した画像Ｄ６を示す。画像Ｄ１〜画像Ｄ６は、特定の大きさとして、縦２００［画素］、横２００［画素］の画像であるとする。なお、画像Ｄ１〜画像Ｄ６は、作業者が検証方向から部品Ｐａｒｔ１を他の部品によって視野がさえぎられない状況で見たときの画像となる。
【００４４】
投影した画像Ｄ１〜画像Ｄ６を生成後、推定装置１００は、画像Ｄ１〜画像Ｄ６内の白色の画素数をカウントすることにより、部品Ｐａｒｔ１の面積を算出する。図５の（Ｃ）の例では、推定装置１００は、白色の画素が、画像Ｄ１〜画像Ｄ４内にそれぞれ２０００個あり、画像Ｄ５、画像Ｄ６内にそれぞれ１３０００個あるとカウントする。以降の処理については、図６にて説明する。
【００４５】
図６は、取り外し部品の候補の選択例を示す説明図（その２）である。推定装置１００は、部品Ｐａｒｔ１の色を白色とし、他の部品を表示して他の部品の色を黒色とし、背景色を黒色として、各検証方向から描画領域に投影する。描画領域に投影した画像を、図６の（Ａ）にて示す。図６の（Ａ）は、部品Ｐａｒｔ１を、＋Ｘｌ方向に投影した画像Ｅ１と、−Ｘｌ方向に投影した画像Ｅ２と、＋Ｙｌ方向に投影した画像Ｅ３と、−Ｙｌ方向に投影した画像Ｅ４と、＋Ｚｌ方向に投影した画像Ｅ５と、−Ｚｌ方向に投影した画像Ｅ６を示す。画像Ｅ１〜画像Ｅ６は、特定の大きさとして、縦２００［画素］、横２００［画素］の画像であるとする。なお、画像Ｅ１〜画像Ｅ６は、作業者が検証方向から部品Ｐａｒｔ１を見たときの画像となる。
【００４６】
投影した画像Ｅ１〜画像Ｅ６を生成後、推定装置１００は、画像Ｅ１〜画像Ｅ６内の、白色の画素数をカウントすることにより、部品Ｐａｒｔ１の面積を算出する。図６の（Ａ）の例では、推定装置１００は、白色の画素が、画像Ｅ１、画像Ｅ３内にそれぞれ２０００個あり、画像Ｅ２、画像Ｅ４内にそれぞれ１７００個あり、画像Ｅ５内に９０００個あり、画像Ｅ６内に９５００個あるとカウントする。
【００４７】
続けて、推定装置１００は、検証方向ごとに、他の部品を非表示にした場合の画像Ｄと、他の部品を表示した場合の画像Ｅとの白色の画素の個数の比を算出する。推定装置１００は、白色の画素の個数の比に基づいて、ある部品の取り外し易さの程度を算出する。以下、取り外し易さの程度を、単に、「取り外し易さ」と称する。たとえば、推定装置１００は、下記（１）式により、ある部品の取り外し易さを算出する。
【００４８】
取り外し易さ＝他の部品を表示した場合の白色の画素の個数／他の部品を非表示にした場合の白色の画素の個数＊１００  …（１）
【００４９】
たとえば、推定装置１００は、＋Ｘｌ方向について、（１）式を用いて取り外し易さを算出する。
【００５０】
取り外し易さ＝２０００／２０００＊１００＝１００
【００５１】
推定装置１００は、−Ｘｌ方向〜−Ｚｌ方向も同様に、取り外し易さを算出する。算出結果を、図６の（Ｂ）にて示す。続けて、推定装置１００は、算出結果に基づいて、処理対象部品を取り外し部品の候補として選択するか否かを判断する。たとえば、取り外し易さが閾値以上となった検証方向がある場合、推定装置１００は、処理対象部品を取り外し部品の候補として選択する。図６の（Ｂ）では、たとえば、閾値を９０として、９０以上となった検証方向が＋Ｘｌ方向と＋Ｙｌ方向と２つあるため、推定装置１００は、処理対象部品である部品Ｐａｒｔ１を取り外し部品の候補として選択する。
【００５２】
さらに、推定装置１００は、閾値を満たした検証方向の反対方向を、取り外し方向の候補として選択する。検証方向の反対方向とする理由について説明する。取り外し易さが閾値を満たすときには、作業者を始点として、検証方向に向かって処理対象部品に到達する間には取り外しの障害となる部品が少ないため、処理対象部品を作業者の方に移動させることが容易である。ここで、処理対象部品を作業者の方に移動させる方向は、検証方向の反対方向となる。
【００５３】
図６の（Ｂ）の例では、閾値を満たした検証方向が＋Ｘｌ方向と＋Ｙｌ方向となるため、推定装置１００は、取り外し部品の候補となる部品Ｐａｒｔ１と−Ｘｌ方向の組と、取り外し部品の候補となる部品Ｐａｒｔ１と−Ｙｌ方向の組とを記憶する。推定装置１００は、組立体５０１に含まれる部品のうち、締結部品を除いた部品ごとに、図５と図６で示した処理を実行し、取り外し部品の候補と取り外し方向の候補を選択する。図７にて、選択結果となる取り外し部品の候補一覧の例について説明する。
【００５４】
図７は、取り外し部品の候補一覧の一例を示す説明図である。図７では、取り外し部品の候補一覧７０１を示す。取り外し部品の候補一覧７０１は、レコード７０１−１〜レコード７０１−３を含む。取り外し部品の候補一覧７０１は、部品名と、取り外し方向と、取り外し難さという３つのフィールドを有する。
【００５５】
部品名フィールドには、図６の処理にて選択された取り外し部品の候補となった部品の名称が格納される。取り外し方向フィールドには、図６の処理にて選択された取り外し部品の取り外し方向の候補となった方向の識別情報が格納される。取り外し難さフィールドには、該当の部品を取り外し方向に取り外す場合の取り外し難さの程度が格納される。取り外し難さフィールドに格納される値は、該当の部品が取り外し難い程、大きな値となる。したがって、推定装置１００は、取り外し難さフィールドの値が小さい取り外し部品の候補を優先して取り外し部品として特定する。図７の段階では、レコード７０１−１〜レコード７０１−３の取り外し難さフィールドの各値は、０が格納される。続けて、図８〜図１１を用いて、取り外し部品の特定を行う処理の判断基準となる、取り外し難さフィールドを更新する処理を説明する。
【００５６】
図８は、取り外し部品の特定における第１の判断基準を示す説明図である。図８では、取り外し部品の特定における第１の判断基準として、取り外し部品の候補のうちのある部品と、直前に取り外した部品との距離に基づいて、取り外し難さフィールドを更新する処理について説明する。また、組立体５０１は、直前に取り外した部品Ｐａｒｔ０を含んでいたものとする。
【００５７】
推定装置１００は、取り外し部品の候補となったある部品と直前に取り外した部品との距離を算出し、算出した距離と係数ｐ１を乗算して、乗算結果を取り外し難さフィールドの値に加算する。具体的に、推定装置１００は、ある部品として部品Ｐａｒｔ１と部品Ｐａｒｔ０との距離ｄ１を、部品Ｐａｒｔ１の重心の位置と、部品Ｐａｒｔ０の重心の位置との距離によって算出する。部品の重心の位置は、設計データに含まれていてもよいし、部品の形状情報から算出されてもよい。たとえば、推定装置１００は、部品の形状情報に含まれる各点の座標位置の平均値を、部品の重心の位置として算出する。
【００５８】
図８の例では、推定装置１００は、レコード７０１−１の取り外し難さフィールドに格納された値０にｄ１＊ｐ１を加算した結果であるｄ１＊ｐ１で、レコード７０１−１の取り外し難さフィールドを更新する。同様に、推定装置１００は、ｄ１＊ｐ１で、レコード７０１−２の取り外し難さフィールドを更新する。なお、直前に取り外した部品がない場合、推定装置１００は、図８で示した処理を行わない。
【００５９】
図８に示す処理を行うことにより、推定装置１００は、直前に取り外した部品からの距離が短い程、作業者の手の移動量が短くなり取り外しの作業が効率的となるため、効率的な取り外しの順序となる部品を優先して特定することができる。また、部品の取り外しの順序を逆順にした部品の組立順序でも、作業者の手の移動量が短くなり組立作業が効率的となるため、推定装置１００は、効率的な組立順序となる部品を優先して特定することができる。
【００６０】
図９は、取り外し部品の特定における第２の判断基準を示す説明図である。図９では、取り外し部品の特定における第２の判断基準として、取り外し部品の候補のうちのある部品の取り外し方向の候補と、直前に取り外した部品の取り外し方向とに基づいて、取り外し難さフィールドを更新する処理について説明する。また、図９では、直前に取り外した部品Ｐａｒｔ０の取り外し方向が−Ｘｌ方向であるとする。
【００６１】
推定装置１００は、ある部品の取り外し方向の候補と直前に取り外した部品の取り外し方向が異なれば、定数ｐ２を取り外し部品の候補一覧７０１の取り外し難さフィールドに格納された値に加算する。図９で示す例では、推定装置１００は、レコード７０１−１について、部品Ｐａｒｔ１の取り外し方向の候補と部品Ｐａｒｔ０の取り外し方向が同じ−Ｘｌ方向であるため、取り外し難さフィールドを更新しない。また、推定装置１００は、レコード７０１−２について、部品Ｐａｒｔ１の取り外し方向の候補が−Ｙｌ方向であり部品Ｐａｒｔ０の取り外し方向が−Ｘｌ方向であり異なるため、ｄ１＊ｐ１にｐ２を加算したｄ１＊ｐ１＋ｐ２で取り外し難さフィールドを更新する。なお、直前に取り外した部品がない場合、推定装置１００は、図９で示した処理を行わない。
【００６２】
図９に示す処理を行うことにより、推定装置１００は、同一方向に対する取り外しであれば作業者の移動が発生せず取り外しの作業が効率的となるため、効率的な取り外しの順序となる部品を優先して特定することができる。また、部品の取り外しの順序を逆順にした部品の組立順序でも、作業者の移動量が短くなり組立作業が効率的となるため、推定装置１００は、効率的な組立順序となる部品を優先して特定することができる。
【００６３】
図１０は、取り外し部品の特定における第３の判断基準を示す説明図である。図１０では、取り外し部品の特定における第３の判断基準として、取り外し部品の候補のうちのある部品の取り外し方向の候補からある部品を見た場合の面積に基づいて、取り外し難さフィールドを更新する処理について説明する。また、図１０では、部品Ｐａｒｔ１の色を白色、背景色を黒色とし、他の部品を非表示にして、組立体５０１を取り外し方向の候補−Ｘｌ方向に投影した画像１００１と、組立体５０１を取り外し方向の候補−Ｙｌ方向に投影した画像１００２と、を示す。画像１００１において、部品Ｐａｒｔ１の面積は、ａ３＿ｘであるとする。また、画像１００２において、部品Ｐａｒｔ１の面積は、ａ３＿ｙであるとする。
【００６４】
推定装置１００は、取り外し方向の候補からある部品を見た場合の面積を算出し、算出した面積と係数ｐ３を乗算して、乗算結果を取り外し難さフィールドの値から加算する。具体的に、推定装置１００は、レコード７０１−１について、部品Ｐａｒｔ１を−Ｘｌ方向から見た場合の面積ａ３＿ｘとｐ３の乗算結果ａ３＿ｘ＊ｐ３を、取り外し難さフィールドに格納された値から減算する。同様に、推定装置１００は、レコード７０１−２について、部品Ｐａｒｔ１を−Ｙｌ方向から見た場合の面積ａ３＿ｙとｐ３の乗算結果ａ３＿ｙ＊ｐ３を、取り外し難さフィールドに格納された値から減算する。
【００６５】
図１０に示す処理を行うことにより、推定装置１００は、大きな面積を有する部品を取り外すことにより他の部品が取り外し易くなり取り外しの作業が効率的となるため、効率的な取り外しの順序となる部品を優先して特定することができる。また、部品の取り外しの順序を逆順にした部品の組立順序でも、開発者は、組立順序に従うことにより、大きな面積を有する部品を先に組立体に取り付けた結果、小さな部品が取り付け難くなるという状況が減って組立作業が効率的に行える。したがって、推定装置１００は、効率的な組立順序となる部品を優先して特定することができる。
【００６６】
図１１は、取り外し部品の特定における第４の判断基準を示す説明図である。図１１では、取り外し部品の特定における第４の判断基準として、取り外し部品の候補のうちのある部品を取り外し方向の候補に移動したとき、ある部品が組立体５０１から外れるまでの距離に基づいて、取り外し難さフィールドを更新する処理について説明する。
【００６７】
推定装置１００は、ある部品を取り外し方向の候補に移動する場合の、移動前のある部品の位置から、組立体５０１からある部品が外れるまでの位置までの距離を算出し、算出した距離と係数ｐ４を乗算して、乗算結果を取り外し難さフィールドの値に加算する。ある部品が組立体から外れたか否かの判断として、たとえば、推定装置１００は、組立体を覆うバウンディングボックスの中から、ある部品の重心が外に出た場合、ある部品が組立体から外れたと判断する。
【００６８】
図１１の例では、推定装置１００は、レコード７０１−１について、部品Ｐａｒｔ１を−Ｘｌ方向に移動して、組立体５０１を覆うバウンディングボックスの中から、部品Ｐａｒｔ１の重心が外れるまでの距離ｄ４＿ｘを算出する。続けて、推定装置１００は、レコード７０１−１の取り外し難さフィールドに格納された値にｄ４＿ｘ＊ｐ４を加算した値で、レコード７０１−１の取り外し難さフィールドを更新する。同様に、推定装置１００は、レコード７０１−２について、部品Ｐａｒｔ１を−Ｙｌ方向に移動して、組立体５０１を覆うバウンディングボックスの中から、部品Ｐａｒｔ１の重心が外れるまでの距離ｄ４＿ｙを算出する。続けて、推定装置１００は、レコード７０１−１の取り外し難さフィールドに格納された値にｄ４＿ｙ＊ｐ４を加算した値で、レコード７０１−２の取り外し難さフィールドを更新する。
【００６９】
図１１に示す処理を行うことにより、推定装置１００は、部品の取り外し距離が短い程、作業者の取り外し作業が容易になり取り外しの作業が効率的になるため、効率的な取り外しの順序となる部品を優先して特定することができる。また、部品の取り外しの順序を逆順にした部品の組立順序でも、作業者の組み立て作業が容易となり組立作業が効率的となるため、推定装置１００は、効率的な組立順序となる部品を優先して特定することができる。
【００７０】
なお、ｐ１〜ｐ４の具体的な値は、推定装置１００の開発者によって指定されてもよいし、作業者によって設定されてもよい。たとえば、作業者が作業者の移動を可能な限り減らしたいと考える場合、ｐ２が、ｐ１、ｐ３、ｐ４よりも大きい数値に指定されることにより、推定装置１００は、作業者の手の移動よりも作業者の移動を少なくすることを優先した組立順序を推定することができる。
【００７１】
図１２は、取り外し部品の特定の一例を示す説明図である。推定装置１００は、図８〜図１１の処理にて更新された取り外し難さフィールドの値に基づいて、取り外し部品と取り外し方向を特定する。たとえば、推定装置１００は、取り外し難さフィールドの値が最も小さいレコードの部品を取り外し部品に特定し、該当のレコードの取り外し方向を、特定した取り外し部品の取り外し方向に特定する。
【００７２】
図１２の例では、推定装置１００は、レコード７０１−１〜レコード７０１−３のうち、取り外し難さフィールドの値が最も小さいレコード７０１−１を選択する。続けて、推定装置１００は、選択したレコード７０１−１の部品名フィールドの値が示す部品Ｐａｒｔ１を取り外し部品として特定し、選択したレコード７０１−１の取り外し方向の値が示す−Ｘｌ方向を取り外し方向として特定する。
【００７３】
取り外し部品を特定した後、推定装置１００は、組立体５０１から取り外し部品として特定された部品を取り除き、特定された部品の識別情報を部品の取り外し順序一覧１２０１の先頭に追加して、図５〜図１２までの処理を繰り返す。部品の取り外し順序一覧１２０１は、組立体５０１から、部品を取り外す順序を示した情報である。図１２に示す部品の取り外し順序一覧１２０１は、組立体５０１から、末尾に格納された部品の識別情報に対応する部品から順に取り外すことを示す。また、推定装置１００は、追加した部品の識別情報に、特定した取り外しの方向を関連付けて記憶してもよい。
【００７４】
全ての部品を取り除いた後、推定装置１００は、締結部品の取り外しの順序を推定する。図１３を用いて、締結部品に関する取り外しの順序の設定について説明する。
【００７５】
図１３は、締結部品の取り外しの順序を推定する例を示す説明図である。図１３では、締結部品の取り外しの順序を推定する例について説明する。推定装置１００は、締結部品によって締結される被締結部品を特定する。特定の動作について、図１３の（Ａ）を用いて説明する。図１３の（Ａ）は、締結部品であるＳＣＲ１と、部品Ｐａｒｔ１〜部品Ｐａｒｔ３を表示する。
【００７６】
具体的に、推定装置１００は、締結部品を覆うバウンディングボックスに含まれる部品を被締結部品として特定する。図１３の（Ａ）を例とすると、推定装置１００は、部品ＳＣＲ１を覆うバウンディングボックス１３０１に含まれる部品を被締結部品として特定する。図１３の例では、推定装置１００は、バウンディングボックス１３０１に含まれる部品Ｐａｒｔ１と部品Ｐａｒｔ２とを被締結部品として検索する。部品Ｐａｒｔ３については、バウンディングボックス１３０１に含まれていないため、推定装置１００は、部品Ｐａｒｔ３を被締結部品として特定しない。
【００７７】
次に、推定装置１００は、締結部品の取り外し順序を、特定した被締結部品のうちの最初に取り外す被締結部品の直前に設定する。締結部品の取り外し順序について、図１３の（Ｂ）を用いて説明する。図１３の（Ｂ）は、部品の取り外し順序一覧１２０１を表示する。部品の取り外し順序一覧１２０１は、はじめに部品Ｐａｒｔ３を取り外し、次に部品Ｐａｒｔ２を取り外し、他の部品を取り外した後、部品Ｐａｒｔ１を取り外すことを示す。
【００７８】
具体的に、推定装置１００は、部品ＳＣＲ１の取り外し順序を、特定した被締結部品Ｐａｒｔ１、部品Ｐａｒｔ２のうち、最初に取り外す部品Ｐａｒｔ２の直前に設定する。推定装置１００は、締結部品ごとに図１３の（Ａ）、図１３の（Ｂ）で説明した処理を繰り返す。全ての締結部品に対して図１３の（Ａ）、図１３の（Ｂ）で説明した処理を終了した後、推定装置１００は、推定結果となる部品の取り外し順序一覧１２０１を逆の順序に並び替えて、部品の組立順序として出力する。
【００７９】
続けて、図５〜図１３で示した処理を行うフローチャートについて図１４〜図１８を用いて説明する。
【００８０】
図１４は、組立順序推定処理手順の一例を示すフローチャートである。組立順序推定処理は、組立体を組み立てる順序を推定する処理である。推定装置１００は、組立体に含まれる各部品を、締結部品と締結部品でない残部品とに分類する（ステップＳ１４０１）。具体的には、開発者が命名規約に従って部品の名称を付与するので、推定装置１００は、命名規約に基づいて、締結部品と締結部品でない残部品とに分類する。たとえば、推定装置１００は、対象の部品の名称が“ＳＣＲ”から始まる場合に、対象の部品を締結部品に分類し、対象の部品の名称が“ＳＣＲ”から始まらない場合に、対象の部品を残部品に分類する。
【００８１】
次に、推定装置１００は、残部品順序推定処理を実行する（ステップＳ１４０２）。残部品順序推定処理の詳細については、図１５にて後述する。続けて、推定装置１００は、締結部品順序推定処理を実行する（ステップＳ１４０３）。締結部品順序推定処理の詳細については、図２０にて後述する。次に、推定装置１００は、部品の取り外し順序一覧を逆の順序に並び替えて、部品の組立順序として出力する（ステップＳ１４０４）。ステップＳ１４０４の処理実行後、推定装置１００は、組立順序推定処理を終了する。組立順序推定処理を実行することにより、推定装置１００は、組立体の制作者に、効率的な部品の組立順序を通知することができる。作業者は、推定装置１００によって特定された組立順序に従って組立体を製造する。
【００８２】
図１５は、残部品順序推定処理手順の一例を示すフローチャートである。残部品順序推定処理は、締結部品でないと分類された部品の組立順序を推定する処理である。推定装置１００は、残部品のうち、ある部品を処理対象部品として選択する（ステップＳ１５０１）。次に、推定装置１００は、処理対象部品に対して、取り外し部品の候補選択処理を実行する（ステップＳ１５０２）。取り外し部品の候補選択処理の詳細については、図１６と図１７にて後述する。続けて、推定装置１００は、残部品の全ての部品を処理対象部品として選択したか否かを判断する（ステップＳ１５０３）。まだ選択していない部品がある場合（ステップＳ１５０３：Ｎｏ）、推定装置１００は、ステップＳ１５０１の処理に移行する。移行後、推定装置１００は、ステップＳ１５０１の処理として、残部品のうち、まだ処理対象部品として選択されていない部品を処理対象部品として選択する。
【００８３】
全ての部品を処理対象部品として選択した場合（ステップＳ１５０３：Ｙｅｓ）、推定装置１００は、取り外し部品の候補と取り外し方向の候補の組に対して、取り外し部品特定処理を実行する（ステップＳ１５０４）。取り外し部品特定処理の詳細については、図１８と図１９にて後述する。次に、推定装置１００は、残部品から、特定した取り外し部品を取り除く（ステップＳ１５０５）。続けて、推定装置１００は、取り除いた部品を、部品の取り外し順序一覧の先頭に追加する（ステップＳ１５０６）。次に、推定装置１００は、残部品が０か否かを判断する（ステップＳ１５０７）。
【００８４】
残部品が０でない場合（ステップＳ１５０７：Ｎｏ）、推定装置１００は、処理対象部品として選択された記録を消去する（ステップＳ１５０８）。ステップＳ１５０８の実行終了後、推定装置１００は、ステップＳ１５０１の処理に移行する。移行後、推定装置１００は、ステップＳ１５０１の処理として、処理対象部品を選択した記録を消去したため、残部品の全ての部品のうち、ある部品を処理対象部品として選択する。
【００８５】
残部品が０である場合（ステップＳ１５０７：Ｙｅｓ）、推定装置１００は、残部品順序推定処理を終了する。残部品順序推定処理を実行することにより、推定装置１００は、組立体を組み立てる作業者に、締結部品を除いた残部品の効率的な組立順序を通知することができる。
【００８６】
図１６は、取り外し部品の候補選択処理手順の一例を示すフローチャート（その１）である。また、図１７は、取り外し部品の候補選択処理手順の一例を示すフローチャート（その２）である。取り外し部品の候補選択処理は、残部品の中から、取り外し部品の候補を選択する処理である。
【００８７】
推定装置１００は、ある検証方向を選択する（ステップＳ１６０１）。ステップＳ１６０１について、複数の検証方向がある場合には、推定装置１００は、複数の検証方向から、ある検証方向を選択する。次に、推定装置１００は、特定の大きさを有する描画領域を確保する（ステップＳ１６０２）。続けて、推定装置１００は、描画領域の背景色を黒に設定する（ステップＳ１６０３）。次に、推定装置１００は、処理対象部品を表示して、処理対象部品の色を白色に設定するとともに、残部品のうちの処理対象部品以外の他の部品を非表示に設定する（ステップＳ１６０４）。続けて、推定装置１００は、選択した検証方向からの視点方向で、処理対象部品が描画領域に収まる表示倍率で処理対象部品を描画領域に投影する（ステップＳ１６０５）。次に、推定装置１００は、描画領域内の白色の画素数をカウントする（ステップＳ１６０６）。ステップＳ１６０６の実行終了後、推定装置１００は、図１７に示すステップＳ１７０１の処理に移行する。
【００８８】
ステップＳ１６０６の実行終了後、推定装置１００は、他の部品を表示して、他の部品の色を黒色に設定する（ステップＳ１７０１）。次に、推定装置１００は、選択した検証方向からの視点方向で、処理対象部品が描画領域に収まる表示倍率で処理対象部品を描画領域に投影する（ステップＳ１７０２）。続けて、推定装置１００は、描画領域内の白色の画素数をカウントする（ステップＳ１７０３）。次に、推定装置１００は、取り外し易さを算出する（ステップＳ１７０４）。具体的に、推定装置１００は、ステップＳ１７０３の処理で得た画素数／ステップＳ１６０６の処理で得た画素数＊１００を、取り外し易さとして算出する。
【００８９】
続けて、推定装置１００は、算出した取り外し易さが閾値以上か否かを判断する（ステップＳ１７０５）。取り外し易さが閾値以上である場合（ステップＳ１７０５：Ｙｅｓ）、推定装置１００は、処理対象部品の識別情報と検証方向の反対方向を組として記憶する（ステップＳ１７０６）。ステップＳ１７０６の実行処理後、または取り外し易さが閾値以上でない場合（ステップＳ１７０５：Ｎｏ）、推定装置１００は、全ての検証方向に対して処理したか否かを判断する（ステップＳ１７０７）。ステップＳ１７０７内の“処理”とは、ステップＳ１６０１〜ステップＳ１７０６の処理である。処理していない検証方向がある場合（ステップＳ１７０７：Ｎｏ）、推定装置１００は、ステップＳ１６０１の処理に移行する。移行後、推定装置１００は、ステップＳ１６０１の処理として、未選択の検証方向のうち、ある検証方向を選択する。
【００９０】
全ての検証方向に対して処理した場合（ステップＳ１７０７：Ｙｅｓ）、推定装置１００は、取り外し部品の候補選択処理を終了する。取り外し部品の候補選択処理を実行することにより、推定装置１００は、組立体から取り外し易い部品を検索することができる。
【００９１】
図１８は、取り外し部品の特定処理手順の一例を示すフローチャート（その１）である。また、図１９は、取り外し部品の特定処理手順の一例を示すフローチャート（その２）である。推定装置１００は、取り外し部品の候補と取り外し方向の候補の組を選択する（ステップＳ１８０１）。
【００９２】
次に、推定装置１００は、直前に取り外した部品があるか否かを判断する（ステップＳ１８０２）。直前に取り外した部品がない場合とは、取り外し部品の特定処理を初めて実行する場合である。直前に取り外した部品がある場合（ステップＳ１８０２：Ｙｅｓ）、推定装置１００は、直前に取り外した部品と取り外し部品の候補の距離を算出する（ステップＳ１８０３）。次に、推定装置１００は、取り外し難さフィールドの値に、算出した値とｐ１との乗算結果を加算する（ステップＳ１８０４）。
【００９３】
続けて、推定装置１００は、直前に取り外した部品の方向と、取り外し方向の候補が異なるか否かを判断する（ステップＳ１８０５）。直前に取り外した部品の方向と、取り外し方向の候補が異なる場合（ステップＳ１８０５：Ｙｅｓ）、推定装置１００は、取り外し難さフィールドの値に、ｐ２を加算する（ステップＳ１８０６）。
【００９４】
ステップＳ１８０６の実行終了後、直前に取り外した部品がない場合（ステップＳ１８０２：Ｎｏ）、または直前に取り外した部品の方向と、取り外し方向の候補が同じである場合（ステップＳ１８０５：Ｎｏ）、推定装置１００は、図１９で示すステップＳ１９０１の処理に移行する。
【００９５】
ステップＳ１８０６の実行終了後、ステップＳ１８０２：Ｎｏ、またはステップＳ１８０５：Ｎｏである場合、推定装置１００は、取り外し部品の候補を、取り外し方向の候補から見た面積を算出する（ステップＳ１９０１）。次に、推定装置１００は、取り外し難さフィールドの値に、取得した面積とｐ３との乗算結果を減算する（ステップＳ１９０２）。続けて、推定装置１００は、取り外し部品の候補を取り外し方向の候補に移動したとき、取り外し部品の候補が組立体から外れるまでの距離を算出する（ステップＳ１９０３）。次に、推定装置１００は、取り外し難さフィールドの値に、算出した値とｐ４との乗算結果を加算する（ステップＳ１９０４）。
【００９６】
続けて、推定装置１００は、全ての取り外し部品の候補と取り外し方向の候補の組に対して、取り外し難さフィールドを更新したか否かを判断する（ステップＳ１９０５）。まだ更新していない組がある場合（ステップＳ１９０５：Ｎｏ）、推定装置１００は、ステップＳ１８０１の処理に移行する。移行後、推定装置１００は、ステップＳ１８０１の処理として、未選択の取り外し部品の候補と取り外し方向の候補の組を選択する。
【００９７】
全ての組に対して取り外し難さフィールドを更新した場合（ステップＳ１９０５：Ｙｅｓ）、推定装置１００は、取り外し難さフィールドの値が最も低い組の取り外し部品の候補を取り外し部品に特定する（ステップＳ１９０６）。また、推定装置１００は、取り外し難さフィールドの値が最も低い組の取り外し方向の候補を取り外し方向に特定する（ステップＳ１９０７）。ステップＳ１９０７の実行終了後、推定装置１００は、取り外し部品の特定処理を終了する。取り外し部品の特定処理を実行することにより、推定装置１００は、取り外し部品の候補と取り外し方向の候補との組が複数ある場合、作業者が効率的に取り外すことができる取り外し部品を特定することができる。
【００９８】
図２０は、締結部品順序推定処理手順の一例を示すフローチャートである。締結部品順序推定処理は、締結部品の組立順序を推定する処理である。推定装置１００は、締結部品を選択する（ステップＳ２００１）。次に、推定装置１００は、選択した締結部品に締結される被締結部品を特定する（ステップＳ２００２）。続けて、推定装置１００は、選択した締結部品の取り外し順序を、特定した被締結部品のうちの最初に取り外す被締結部品の直前に設定する（ステップＳ２００３）。
【００９９】
次に、推定装置１００は、全ての締結部品を選択したか否かを判断する（ステップＳ２００４）。選択していない締結部品がある場合（ステップＳ２００４：Ｎｏ）、推定装置１００は、ステップＳ２００１の処理に移行する。移行後、推定装置１００は、未選択の締結部品の中から、締結部品を選択する。全ての締結部品を選択した場合（ステップＳ２００４：Ｙｅｓ）、推定装置１００は、締結部品順序推定処理を終了する。締結部品順序推定処理を実行することにより、推定装置１００は、締結部品を除いた残部品に対して、組立体を組み立てる作業者に、締結部品の効率的な部品の組立順序を通知することができる。
【０１００】
以上説明したように、推定装置１００によれば、ある方向から、ある部品を見た際の面積と、他の部品を非表示としてある部品を見た際の面積とからある部品の取り外し易さを算出する。これにより、推定装置１００は、２つの面積の比較を行うだけで組立順序が推定でき、演算量の低減化を図ることができる。
【０１０１】
また、推定装置１００によれば、アセンブリ拘束情報や、結合関係情報といった、ＣＡＤデータが有していない場合もある情報を用いずに、どのようなＣＡＤデータでも有する部品の形状情報を用いて組立順序を推定するため、汎用性を高くすることができる。また、推定装置１００は、組立順序の作成を前倒しすることができるため、問題点を早期にフィードバックすることができる。また、推定装置１００は、推定装置１００の利用者が組立順序の経験が少なくても、組立順序を作成することができる。
【０１０２】
また、推定装置１００によれば、複数の部品に対して取り外し易さを算出し、算出結果から最も取り外し易い部品を特定してもよい。これにより、推定装置１００は、作業者に、最も取り外し易い部品の情報を通知することができる。作業者は、推定装置１００が通知した最も取り外し易い部品を最後に組み立てるようにすることにより、効率的な組立を行うことができる。
【０１０３】
また、推定装置１００によれば、部品を取り外し易い順に取り外していき、部品を取り外した順とは逆順に並び替えて組立順序を特定してもよい。これにより、推定装置１００は、取り外し易い順序の逆順にすることにより、組立易い組立順序を作業者に通知することができる。
【０１０４】
また、推定装置１００によれば、締結部品が締結する対象の部品を取り外すタイミングで取り外して、部品を取り外した順とは逆順に並び替えて組立順序を特定してもよい。これにより、推定装置１００は、締結部品の効率的な部品の組立順序を作業者に通知することができる。
【０１０５】
また、推定装置１００によれば、複数の方向で取り外せる部品がある場合、直前に取り外した部品を取り外した方向を優先してもよい。これにより、推定装置１００は、作業者の移動を減らすことを図る効率的な組立順序を作業者に通知することができる。
【０１０６】
また、推定装置１００によれば、取り外せる部品が複数存在する場合、直前に取り外した部品を取り外した方向で取り外せる部品を優先してもよい。これにより、推定装置１００は、作業者の移動を減らすことを図る効率的な組立順序を作業者に通知することができる。
【０１０７】
また、推定装置１００によれば、取り外せる部品が複数存在する場合、組立体の部品の位置から組立体から取り外せたと判定する位置までの距離が短い部品を優先してもよい。これにより、推定装置１００は、作業者の手の移動を減らすことを図る効率的な組立順序を作業者に通知することができる。
【０１０８】
また、推定装置１００によれば、取り外せる部品が複数存在する場合、直前に取り外した部品の位置からの距離が短い部品を優先してもよい。これにより、推定装置１００は、作業者の手の移動を減らすことを図る効率的な組立順序を作業者に通知することができる。
【０１０９】
なお、本実施の形態で説明した推定方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本推定プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本推定プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１１０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１１１】
（付記１）ある部品を構成要素に含む組立体に関する設計データを用いた部品の取り外し易さの程度の推定プログラムにおいて、
前記設計データを参照して、該ある部品をある方向から取り外す場合の取り外し易さの程度を、前記組立体を前記ある方向から見た場合の該ある部品の面積と、該ある方向から他の部品によって視野がさえぎられない状況で見た場合の該ある部品の面積との比に基づき算出する、
部品の取り外し易さの程度の推定プログラム。
【０１１２】
（付記２）前記設計データを参照して、複数の部品に対して取り外し易さを算出し、算出結果から最も取り外し易い部品を特定する、
付記１に記載の部品の取り外し易さの程度の推定プログラム。
【０１１３】
（付記３）部品を取り外し易い順に取り外していき、部品を取り外した順とは逆順に並び替えて組立順序を特定する、
付記２に記載の部品の取り外し易さの程度の推定プログラム。
【０１１４】
（付記４）前記設計データに含まれる各部品が締結部品か否かを示す情報を含み、
前記締結部品は、前記締結部品が締結する対象の部品を取り外すタイミングで取り外す、
付記１に記載の部品の取り外し易さの程度の推定プログラム。
【０１１５】
（付記５）複数の方向で取り外せる部品がある場合、直前に取り外した部品を取り外した方向を優先する、
付記１に記載の部品の取り外し易さの程度の推定プログラム。
【０１１６】
（付記６）取り外せる部品が複数存在する場合、直前に取り外した部品を取り外した方向で取り外せる部品を優先する、
付記１に記載の部品の取り外し易さの程度の推定プログラム。
【０１１７】
（付記７）取り外せる部品が複数存在する場合、前記組立体の部品の位置から前記組立体から取り外せたと判定する位置までの距離が短い部品を優先する、
付記１に記載の部品の取り外し易さの程度の推定プログラム。
【０１１８】
（付記８）取り外せる部品が複数存在する場合、直前に取り外した部品の位置からの距離が短い部品を優先する、
付記１に記載の部品の取り外し易さの程度の推定プログラム。
【０１１９】
（付記９）ある部品を構成要素に含む組立体に関する設計データを用いた部品の取り外し易さの程度の推定プログラムにおいて、
前記設計データを参照して、該ある部品をある方向から取り外す場合の取り外し易さの程度を、前記組立体を前記ある方向から見た場合の該ある部品の面積と、該ある方向から他の部品によって視野がさえぎられない状況で見た場合の該ある部品の面積との比に基づき算出する、
処理をコンピュータに実行させる部品の取り外し易さの程度の推定プログラムを記録したことを特徴とする記録媒体。
【０１２０】
（付記１０）ある部品を構成要素に含む組立体に関する設計データを参照して、該ある部品をある方向から取り外す場合の取り外し易さの程度を、前記組立体を前記ある方向から見た場合の該ある部品の面積と、該ある方向から他の部品によって視野がさえぎられない状況で見た場合の該ある部品の面積との比に基づき算出する算出部を、
有することを特徴とする推定装置。
【０１２１】
（付記１１）ある部品を構成要素に含む組立体に関する設計データを参照して、該ある部品をある方向から取り外す場合の取り外し易さの程度を、前記組立体を前記ある方向から見た場合の該ある部品の面積と、該ある方向から他の部品によって視野がさえぎられない状況で見た場合の該ある部品の面積との比に基づき算出する算出部を、
有するコンピュータを含むことを特徴とする推定装置。
【０１２２】
（付記１２）ある部品を構成要素に含む組立体に関する設計データを用いた部品の取り外し易さの程度を用いる製造方法において、
前記設計データを参照して、該ある部品をある方向から取り外す場合の取り外し易さの程度を、前記組立体を前記ある方向から見た場合の該ある部品の面積と、該ある方向から他の部品によって視野がさえぎられない状況で見た場合の該ある部品の面積との比に基づき算出し、
算出した取り外し易さの程度に基づいて組立順序を特定し、
特定した組立順序に従って前記組立体を製造する、
ことを特徴とする製造方法。
【符号の説明】
【０１２３】
１００  推定装置
１０１  組立体
３０１  算出部
３０２  特定部
３１１  設計データ
【図１】
2014092887.tif 000003
【図２】
2014092887.tif 000004
【図３】
2014092887.tif 000005
【図４】
2014092887.tif 000006
【図５】
2014092887.tif 000007
【図６】
2014092887.tif 000008
【図７】
2014092887.tif 000009
【図８】
2014092887.tif 000010
【図９】
2014092887.tif 000011
【図１０】
2014092887.tif 000012
【図１１】
2014092887.tif 000013
【図１２】
2014092887.tif 000014
【図１３】
2014092887.tif 000015
【図１４】
2014092887.tif 000016
【図１５】
2014092887.tif 000017
【図１６】
2014092887.tif 000018
【図１７】
2014092887.tif 000019
【図１８】
2014092887.tif 000020
【図１９】
2014092887.tif 000021
【図２０】
2014092887.tif 000022