【解決手段】 組立品の構成部品および構造に関する幾何情報である3Dモデル情報と、前記構成部品の部品種別の分類条件および前記構成部品の組合せである部組を定義した部品種別情報とを記憶する記憶部と、前記3Dモデル情報および前記部品種別情報を用いて、前記構成部品および前記部組の部品種別を分類する部品種別分類部と、前記3Dモデル情報および前記部品種別情報を用いて、前記構成部品に部組を設定する部組化設定部と、前記部品種別に応じた所定の解析方法を用いて前記構成部品の隣接関係を解析し、前記部品種別ごとの部品間隣接関係を示すアセンブリグラフを生成する部品間隣接関係生成部と、前記アセンブリグラフを用いて前記構成部品の組立順序を生成する組立シーケンス生成部と、を備える。
組立品の構成部品および構造に関する幾何情報である3Dモデル情報と、前記構成部品の部品種別の分類条件および前記構成部品の組合せである部組を定義した部品種別情報とを記憶する記憶部と、
前記3Dモデル情報および前記部品種別情報を用いて、前記構成部品および前記部組の部品種別を分類する部品種別分類部と、
前記3Dモデル情報および前記部品種別情報を用いて、前記構成部品に部組を設定する部組化設定部と、
前記部品種別に応じた所定の解析方法を用いて前記構成部品の隣接関係を解析し、前記部品種別ごとの部品間隣接関係を示すアセンブリグラフを生成する部品間隣接関係生成部と、
前記アセンブリグラフを用いて前記構成部品の組立順序を生成する組立シーケンス生成部と、を備える
ことを特徴とする作業指示生成装置。
【発明を実施するための形態】
【0009】
一般に、製造業では製品の組立順序を作業者に分かり易く示す必要がある。このような組立順序の指示においては、2次元の組立図面よりも3次元モデルを利用する方が部品の位置関係や組み付け方向が視覚的に分かり易い。例えば、3次元アニメーションのように一連の組立順序を動画で示す作業指示方法や、3次元モデルをもとに組立順序に沿って作成した斜視図を利用した説明図で示す作業指示方法などが利用されている。
【0010】
また、製品の組立順序は大きく分けると2つの工程がある。最終組立を行う総組の工程と、総組の工程以前に複数の部品を一つのユニット(アセンブリあるいはサブアセンブリ)として組み立てる部組の工程である。これら複数の工程が段階的に階層として繋げられて工程のフローとされる。作業指示を行う際には、この工程フローにおいて、各々の工程ごとの具体的な組立順序などを示して指示することが多い。
【0011】
一方で、3次元CAD(Computer Aided Design)データの部品構成ツリーは組立順序ではなく、また工程ごとにまとまった部品構成ツリーとなっていないことが多い。そのため、3D作業指示の作成においては、3次元CADデータをもとに工程となる作業の纏まりと、工程間および工程内の組立順序をよく検討し、3次元CADの部品構成ツリーを参照しながら編集する作業が必要となる。また、その編集した結果をもとに各部品の動きを設定し、アニメーションを作成し、その工程ごとの組立順序の説明図を作成するといった作業が必要となる。したがって、3D作業指示の作成には膨大な時間とコストがかかる。
【0012】
なお、3D作業指示の作成を補助する情報処理技術(例えば、分解定義情報に基本工程および中間工程の移動座標系、その座標系に沿った部品や部品群および工程用部品グループの移動位置を付加することで、分解アルゴリズムを生成する技術など)も存在するが、数千の部品から成る部品数の多い製品の場合には、相当の作業工数を要することになる。
【0013】
本発明に係る作業指示生成装置は、上記のような課題を解決するものであり、以下では本実施形態に係る作業指示生成装置について各図を用いて説明する。
【0014】
図1は、本実施形態に係る作業指示生成装置100の機能構成を含む作業指示生成システムの概略構成の一例を示した図である。図示するように、作業指示生成システムは、作業指示生成装置100と、3DCAD(three−dimensional Computer−Aided Design)装置200とを有している。なお、作業指示生成装置100は、例えばLAN(Local Area Network)あるいはインターネット等の所定のネットワークNを介して3DCAD装置200と相互通信可能に接続されている。
【0015】
なお、3DCAD装置200は、例えば3DCADプログラムを実行可能なパーソナルコンピュータ等の情報処理装置である。ただし、3DCAD装置200は、独立した装置に限らず、作業指示生成装置100の一部機能として動作するものであっても良い。
【0016】
作業指示生成装置100は、3次元(3D)による組立工程ごとの作業指示を生成する装置である。図示するように、作業指示生成装置100は、記憶部110と、演算部120と、通信部140とを有している。
【0017】
記憶部110は、様々な情報を記憶する機能部である。具体的には、記憶部110は、3Dモデル情報111と、部品種別情報112と、解析計算プログラム113と、順序制約情報114と、計算条件情報115と、組立順序作成済みの事例情報116とを記憶している。
【0018】
図2は、3Dモデル情報111の一例を示した図である。3Dモデル情報111は、部品を組み付けることにより完成する組立完成品を3Dモデル化し、その構成部品とその構造とを特定する情報である。具体的には、3Dモデル情報111は、識別子111aと、分類111bと、項目111cと、値111dとが対応付けられたレコードを有している。なお、3Dモデル情報111は、3DCAD装置200から取得した3DCADデータを用いて作業指示生成装置100が生成する情報である。
【0019】
識別子111aは、3Dモデルの構成情報を格納したレコードを識別する情報である。分類111bは、3Dモデルで表される構成部品に関連する項目のカテゴリを示す情報である。分類111bには、例えば部品属性、形状特徴、部品座標系、部品構成ツリーおよび部品間隣接関係などがあるが、これらに限定されるものではない。
【0020】
項目111cは、対応付けられた分類111bに関連する項目を示す情報である。例えば、部品属性に対応付けられた項目111cには、例えば部品ID、階層番号、モデル名、モデル形状ファイルパス、部品種別、ベース部品(フラグ)および材質等がある。なお、部品種別に関する情報は、後述の工程別3D作業指示生成処理におけるステップS20の処理で特定される。また、分類に対応付けられた項目111cには、これら以外にも部品図番、注記、材質に応じた比重等が含まれても良い。
【0021】
なお、モデル形状ファイルパスとは、3DCAD装置200から取得される部品単位でのモデル形状ファイルのファイルパスを示す情報である。なお、モデル形状ファイルは、例えば、STL(Standard Triangulated Language)や、その他STEP、PARASOLID、JT、XVLなど3DCAD装置200から変換可能な3次元形状データファイルフォーマットである。モデル形状ファイルは、3Dモデル形状を用いた解析、3Dモデル形状の確認および計算結果の表示などを行う際に利用される。
【0022】
また、形状特徴に対応付けられた項目111cには、例えば体積、表面積、最大長、重心およびバウンディングボックス(部品を外包する境界となる直方体の8頂点の座標)等の形状特徴に関する情報がある。なお、形状特徴に対応付けられた項目111cには、これら以外にも他質量、主慣性モーメント、慣性主軸等の項目が含まれても良い。
【0023】
また、部品座標系に対応付けられた項目111cには、部品の原点およびXYZ軸上の座標等が含まれる。なお、部品座標系とは、組立完成品の最終位置での部品の位置・姿勢を示すものである。
【0024】
また、部品構成ツリーに対応付けられた項目111cには、3DCAD装置200から取得した3DCADモデルツリー(以下、「3DCAD部品構成ツリー」という場合がある)やCAD部品構成ツリーを組立単位に変換した計算用部品構成ツリーあるいはその一部を抜粋したサブアセンブリの計算用部品構成ツリーなど、部品構成ツリーの種別、親部品ID、親部品を部組(サブアセンブリ)として扱うのか否かを示す親部品IDの種別および親部品IDの階層内に含まれる子部品ID等がある。
【0025】
また、部品間隣接関係に対応付けられた項目111cには、部品種別ごとに解析した拘束の種別、抽出した隣接関係に対する各拘束の要素種別、拘束の要素を含む部品ID、拘束要素のベクトルおよび拘束要素の原点等の部品間隣接関係に関する情報がある。なお、部品間隣接関係に対応付けられた各項目に関する情報は、後述の工程別3D作業指示生成処理におけるステップS40の処理で特定される。
【0026】
また、部品間隣接関係とは、アセンブリモデルをモデリングする際に設定するアセンブリ拘束情報である。なお、部品間隣接関係は、アセンブリモデルを用いたクリアランス解析によって取得した情報であってもよい。例えば、クリアランス解析の一方式としては、設定した閾値をもとにモデリングされた部品の各面からクリアランス距離内にある別のモデルを探索し、探索の結果得られた隣接部品の面(平面対平面、円筒面対円筒面、円錐面対円錐面および平面対円筒面など)の位置、姿勢などの情報を作成する方式が挙げられる。
【0027】
また、アセンブリ拘束とクリアランス解析の情報で得た拘束要素の情報としては、例えば平面の場合、そのモデルの外側に向いた拘束面の法線を拘束要素のベクトルとし、拘束面上の点を拘束面原点として取得する。また、例えば円筒面の場合、その円筒の軸方向を拘束要素のベクトルとし、軸上の点を拘束要素の原点とすることが望ましい。
【0028】
値111dは、対応付けられた項目ごとの具体的な値を示す情報である。
【0029】
なお、3Dモデルの対象となる対象部品は、1つの部品モデルではなく、複数の部品から構成される組立品であるアセンブリモデルを含むものとする。また、3Dモデル情報111は、データベースにより構成されていてもよいし、XML(eXtensible Markup Language)により構成されていてもよい。
【0030】
図3は、部品種別情報112の一例を示した図である。部品種別情報112は、部品種別の判定に用いられる所定の判定条件などを定義した情報である。具体的には、部品種別情報112は、ID112aと、部品種別名称112bと、3DCADモデルの部品属性および形状特徴の判定条件112cと、計算対象の設定種別112dとが対応付けられたレコードを有している。なお、部品種別情報112は、作業指示生成装置100の記憶部110に予め格納されている情報である。
【0031】
ID112aは、部品種別および判定条件が格納されたレコードを識別する情報である。部品種別名称112bは、部品種別の名称を特定する情報である。3DCADモデルの部品属性および形状特徴の判定条件112cは、部品種別を判定するための判定条件であって、3Dモデル情報111の部品属性および形状特徴に対応している。具体的には、3DCADモデルの部品属性の判定条件としては、モデル名112e、部品図番112fおよび部品名のタイトル112gがあり、形状特徴の判定条件としては、寸法条件112hがある。
【0032】
なお、部品図番112fおよび部品名のタイトル112gは、3DCADデータのパートモデルあるいはアセンブリモデルにユーザが任意に定義したテキスト情報に対応する。また、モデル名112eや部品名のタイトル112gなど文字列の部品属性については、すべての文字列の完全一致だけではなく、部分一致で引き当てる場合もあることから、任意の文字を示すワイルドカード文字(アスタリスク記号など)を含む文字列(例えば、正規表現等により表される文字列)に対応している。
【0033】
また、3DCADモデルの形状特徴は、寸法条件に限らず、例えばパートモデルにおけるバウンディングボックスの頂点、重心および主慣性モーメントなど3DCADモデルを計算することで取得できる質量特性を含むようにしても良い。また、数値による判定を考慮し、「等しい」、「以上(以下)」、「**より大きい」などの範囲を条件付けても良く、条件の論理積(AND)および論理和(OR)等の条件を含めた条件付けを含むものであっても良い。
【0034】
また、親フラグ112iは、対応付けられた部品種別名称112bの部品に対して親部品であること設定するフラグ情報である。計算対象の設定種別112dは、対応付けられた部品種別名称112bの部品に対して組立順序の生成過程において計算対象外とするか、分解不要とするか、あるいは部組(アセンブリ)として扱うか等を設定するための情報である。例えば、ID8の行は、「溶接」と判定した部品に対して組立順序の「計算対象外」とすることを示している。また、ID9の行は、「コンデンサ」と判定した部品(親部品)が購入品のアセンブリモデルであり、CADモデリング上では複数の部品からなるアセンブリモデルとしてモデリングしたものの、組立順序の計算においてはこれ以上分解する必要はないため、「分解不要(購入品)」とすることを示している。
【0035】
また、例えばID10およびID11の行は各々、「Aユニット」および「Bユニット」と判定した部品(親部品)を部品構成ツリー内で部組(サブアセンブリ)として取り扱うことを示している。
【0036】
なお、「部組(サブアセンブリ)」は、その上位の部品構成ツリーで組立順序を計算した後に、その部組の階層下の組立順序を計算することになる。かかる処理の詳細は後述する。
【0037】
図1に戻って説明する。記憶部110の解析計算プログラム113は、後述する工程別3D作業指示生成処理の実行にあたり、作業指示生成装置100で読み込まれるプログラム情報である。
【0038】
順序制約情報114は、構成部品の組付け順序に関する制約を定義した情報である。具体的には、順序制約情報114には、部品種別ごとに先に組み付ける部品とその後で組み付ける部品とが定義されている。例えば、部品種別がネジであり、そのネジとそのネジで締め付けられる部品とが隣接関係にある場合、順序制約情報114には、ネジよりも先にネジ隣接部品を組み付ける、という順序制約が定義されている。
【0039】
計算条件情報115は、組立品のグラフネットワーク(以下では、「アセンブリグラフ」という場合がある)を用いて分解順序(組立順序)を探索する際、次の分解候補を選択する条件などについて定義した情報である。例えば、計算条件情報115には、「他の部品との隣接数が少ないほど分解し易い」、「隣接関係にある他の部品等から受ける荷重が少ない部品ほど分解し易い」、「前に分解した部品と同じ方向で分解できる部品は作業性が良い」など、分解順序を計算する際の優先条件が定義されている。
【0040】
組立順序作成済みの事例情報116は、過去に作成した組立順序の事例に関する情報である。例えば、組立順序作成済みの事例情報116は、過去に作業指示生成装置100で作成された組立シーケンス生成結果をもとに、工程ごとの作業ステップと、作業ステップ内の組立順序とを編集した複数の事例情報を有している。なお、かかる事例情報は、作業指示生成装置100の入力情報を用いて計算した組立シーケンスを編集したものが望ましい。
【0041】
次に、演算部120について説明する。演算部120は、作業指示生成装置100の様々な処理を行う機能部である。具体的には、演算部120は、入力受付部121と、出力処理部122と、3Dモデル情報生成部123と、部品種別分類部124と、部組化設定部125と、部品間隣接関係生成部126と、計算用部品構成ツリー生成部127と、順序制約設定部128と、組立シーケンス生成部129と、3Dアニメーション生成部130と、作業指示生成部131とを有している。
【0042】
入力受付部121は、作業指示生成装置100が備える入力装置を介してユーザから指示入力を受け付ける機能部である。
【0043】
出力処理部122は、作業指示生成装置100が備える出力装置に表示する画面情報を生成する機能部である。
【0044】
3Dモデル情報生成部123は、3DCAD装置200から取得した3DCADデータを用いて、組立品の構成部品に関する3Dモデル情報111を生成する機能部である。
【0045】
部品種別分類部124は、3DCADデータに含まれる組立品の構成部品について、その部品種別を分類する機能部である。
【0046】
部組化設定部125は、組立品の構成部品について、複数の部品から構成される部組を設定する機能部である。
【0047】
部品間隣接関係生成部126は、部品間隣接関係を解析し、アセンブリグラフを生成する機能部である。具体的には、部品間隣接関係生成部126は、3Dモデル情報111および部品種別情報112を用いて、部品種別に応じた所定の解析方法で部品の配置関係や隣接関係を解析し、部品と部品間の隣接関係を各々、ノードおよびエッジで表したアセンブリグラフを生成する。
【0048】
計算用部品構成ツリー生成部127は、3DCADデータに含まれる3DCAD部品構成ツリーを編集し、かかるCADモデルツリーを組立単位に変換した計算用の部品構成ツリーおよびその一部を抜粋したサブアセンブリ計算用の部品構成ツリーなどの部品構成ツリーを生成する機能部である。
【0049】
順序制約設定部128は、順序制約情報114を用いて、組立品の構成部品について組立順序の順序制約を設定する機能部である。例えば、部品種別がネジの場合、そのネジと隣接関係にある部品(ネジ隣接部品)は、そのネジで締め付けられる部品である。そのため、順序制約設定部128は、順序制約情報114を用いて、ネジよりも先にネジ隣接部品を組み付けるという順序制約を設定する。また、部品種部が配線の場合、その配線と隣接関係にある部品(配線接続部品)は、その配線の接続先となる部品である。そのため、順序制約設定部128は、順序制約情報114を用いて、配線よりも先に配線接続部品を組み付けるという順序制約を設定する。
【0050】
組立シーケンス生成部129は、組立品の組立順序を生成する機能部である。具体的には、組立シーケンス生成部129は、計算用部品構成ツリー生成部127が生成した計算用の部品構成ツリーや部品間隣接関係を示すアセンブリグラフなどを用いて、組立品の分解順序を生成する。また、組立シーケンス生成部129は、分解順序を逆変換することにより組立品の組立順序を生成する。
【0051】
3Dアニメーション生成部130は、3Dアニメーションを生成する機能部である。具体的には、3Dアニメーション生成部130は、組立シーケンス生成部129により生成された組立シーケンスなどの所定情報を用いて、組立順序に沿った組立動作を示す3Dアニメーションを生成する。
【0052】
作業指示生成部131は、工程別の3D作業指示を生成する機能部である。具体的には、作業指示生成部131は、工程別に生成された組立シーケンスや3Dアニメーションを含む作業指示情報を生成する。
【0053】
以上、作業指示生成装置100の機能構成(機能ブロック)について説明した。
【0054】
図4は、作業指示生成装置100のハードウェア構成の一例を示した図である。図示するように、作業指示生成装置100は、例えばサーバ装置などの高性能な情報処理装置により実現されるが、高性能なパーソナルコンピューターによって実現されても良い。
【0055】
図示するように、作業指示生成装置100は、入力装置301と、出力装置302と、外部記憶装置303と、演算装置304と、主記憶装置305と、通信装置306とを有している。
【0056】
入力装置301は、キーボードやマウス、タッチパネルなどのポインティングデバイスである。出力装置302は、例えば液晶ディスプレイや有機ディスプレイなどである。
【0057】
外部記憶装置303は、デジタル情報を記憶可能ないわゆるハードディスク(Hard Disk Drive)やSSD(Solid State Drive)あるいはフラッシュメモリなどの不揮発性記憶装置である。
【0058】
演算装置304は、例えばCPU(Central Processing Unit)である。主記憶装置305は、RAM(Random Access Memory)やROM(Read Only Memory)などのメモリ装置である。
【0059】
通信装置306は、ネットワークケーブルを介して有線通信を行う有線の通信装置またはアンテナを介して無線通信を行う無線通信装置である。通信装置306は、例えばネットワークNに接続されている3DCAD装置200との間で情報通信を行う。
【0060】
なお、作業指示生成装置100の演算部120は、演算装置304に処理を行わせるプログラム(例えば、解析計算プログラム113)によって実現される。このプログラムは、主記憶装置305あるいは外部記憶装置303に記憶され、プログラムの実行にあたって主記憶装置305上にロードされ、演算装置304により実行される。また、記憶部110は、主記憶装置305または外部記憶装置303あるいはこれらの組合せにより実現される。また、通信部140は、通信装置306により実現される。
【0061】
また、作業指示生成装置100の上記の各構成、機能、処理部および処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現しても良い。また、上記構成、機能は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現しても良い。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD等の記憶装置またはICカード、SDカードおよびDVD等の記録媒体に置くことができる。
【0062】
また、作業指示生成装置100のハードウェア構成はこれらに限られるものではなく、その他のハードウェアを用いて構成されるものであっても良い。例えば、インターネットを介して入出力を受け付ける装置であっても良い。なお、作業指示生成装置100は、図示しないが、OS(Operating System)、ミドルウェア、アプリケーションなどの公知の要素を有し、特にディスプレイなどの出力装置302にGUI画面を表示するための既存の処理機能を備える。
【0063】
以上、作業指示生成装置100のハードウェア構成について説明した。
【0064】
[動作の説明]
図5は、作業指示生成装置100で実行される工程別3D作業指示生成処理の一例を示した図である。かかる処理は、例えば入力受付部121が工程別3D作業指示生成処理の実行指示をユーザから受け付けると開始される。
【0065】
処理が開始されると、3Dモデル情報生成部123は、通信部140を介して3DCADデータを3DCAD装置200から取得する(ステップS10)。また、3Dモデル情報生成部123は、取得した3DCADデータから組立品の各構成部品に関する部品属性や形状特徴などの情報を抽出し、3Dモデル情報111を生成する。なお、3Dモデル情報111の部品種別は、後述のステップS20の処理により特定される。また、3Dモデル情報111の部品間隣接関係は、後述のステップS40の処理により解析される。
【0066】
次に、部品種別分類部124は、3Dモデル情報111を用いて部品種別を分類する(ステップS20)。具体的には、部品種別分類部124は、3Dモデル情報111から各構成部品のモデル名、部品図番および部品名のタイトルといった部品属性に関する情報および形状特徴を抽出する。また、部品種別分類部124は、抽出したこれらの情報と、部品種別情報112の「3DCADモデルの部品属性の判定条件」とを照合することにより、3Dモデル情報111の各構成部品について部品種別を分類する。
【0067】
次に、部組化設定部125は、構成部品の部組化を設定する(ステップS30)。具体的には、部組化設定部125は、3Dモデル情報111に含まれる各構成部品が分解不要か否か、あるいはアセンブリであるか否かを判定し、該当する場合には部組として設定する。より具体的には、部組化設定部125は、3Dモデル情報111から各構成部品の部品種別を特定する。また、部組化設定部125は、特定した部品種別が対応付けられている部品種別情報112のレコードを特定する。また、部組化設定部125は、特定したレコードの計算対象の設定種別112dに「分解不要(購入品)」、「部組(アセンブリ)」が格納されている場合、その構成部品を部組として設定する。なお、部組化設定部125は、特定したレコードの計算対象の設定種別112dに「計算対象外」が格納されている場合、部組化設定部125は、対応付けられている部品種別の部品について、「計算対象外」の部組であることを設定する。
【0068】
次に、部品間隣接関係生成部126は、部品種別ごとに部品間隣接関係を解析し、部品種別ごとのアセンブリグラフを生成する(ステップS40)。具体的には、部品間隣接関係生成部126は、3Dモデル情報111に含まれる各構成部品について、部品種別に応じた所定の解析手法および解析条件により部品間隣接関係を解析する。
【0069】
以下、部品種別が「ネジ」、「配線」および「その他一般部品」である場合の各々の部品間隣接関係の解析およびアセンブリグラフの生成について説明する。
【0070】
図6は、「その他一般部品」の部品間隣接関係を説明する図であって、3DCADデータに含まれる組立品の3Dモデルの一例を示した図である。図示するように、組立品は、底板501および天板506を繋ぐ右前柱502と、右後柱503と、左前柱504と、左後柱505とから成るフレームに、左側面板521と、裏側面板531と、上面板511とを組み付けた構成を備える。
【0071】
また、左側面板521には、部品または部組である左側下部品522と、左側中央部品523と、左側上部品524とが組み付けられている。また、裏側面板531には、部品または部組である裏側下部品532と、裏側中央部品533と、裏側上部品534とが組み付けられている。また、裏側中央部品533には、裏側中央部品535と、裏側左部品536とが組み付けられている。また、上面板511には、部品または部組である上側右部品512と、上側左部品513とが組み付けられている。なお、
図6においては、説明簡略化するために、組付けに必要な「ネジ」、「配線」などの図示は省略している。
【0072】
図7は、
図6に示す組立品のアセンブリグラフを示した図である。アセンブリグラフとは、部品間の隣接関係をグラフ表現したものであり、
図7に示すアセンブリグラフは、
図6で示した3Dモデルの各部品をノード(節)で表し、隣接関係がある部品間をエッジ(弧)で繋いでいる。
【0073】
なお、部品間の隣接関係とは、部品同士の接合に関して、各種の拘束関係をまとめた概念である。例えば、部品間の隣接関係には、部品の一部の面である平面と他の部品の一部の面である平面の法線が許容寸法範囲内にあり、その平面間の距離が許容寸法以内で隣接している場合の「平面拘束」、円筒と円筒が許容寸法以内で同軸関係にあり、その円筒の径の差が許容寸法以内にある場合の「円筒拘束」、平面の法線と円筒の軸が許容寸法範囲内で垂直関係にあって、円筒の軸から平面までの距離と円筒の半径が許容寸法範囲内にある場合の「円筒平面拘束」などがある。
【0074】
また、
図7のアセンブリグラフは、部組化設定部125により設定された部組を点線で示している。かかるアセンブリグラフは、3DCADデータに含まれる3DCAD部品構成ツリーにおいて、底板501と、天板506と、右前柱502と、右後柱503と、左前柱504と、左後柱505とが親部品501Sの子部品として構成されており、その親部品501Sが部組化設定部125により部組(サブアセンブリ)として設定されている場合を示している。
【0075】
また、
図7のアセンブリグラフは、3DCAD部品構成ツリーにおいて、上面板511と、上側右部品512と、上側左部品513とが親部品511Sの子部品として構成されており、その親部品511Sが部組化設定部125により部組(サブアセンブリ)として設定されている場合を示している。また、同図は、左側面板521と、左側下部品522と、左側中央部品523と、左側上部品524とが親部品521Sの子部品として構成されており、その親部品521Sが部組化設定部125により部組(サブアセンブリ)として設定されている場合を示している。また、同図は、裏側中央部品533と、裏側中央部品535と、裏側左部品536とが親部品533Sの子部品として構成されており、その親部品533Sが部組化設定部125により部組(サブアセンブリ)として設定されている場合を示している。なお、部組内の構成は、総組の作業工程以前に組み立てられる。
【0076】
図8は、
図7の部組をノードとしてグラフ表現したアセンブリグラフを示した図である。図示するように、アセンブリグラフは、各部組をノードとして表現しているため、
図7のアセンブリグラフに比べてグラフ表現が縮約されている。このように、部組を一つのノードとして表現すると、各部組について、各々別の工程で組み立てる作業として区分することができる。そのため、別の工程で組み立てられた部組を一つの部品と同様に取り扱うことにより、アセンブリグラフを大幅に縮約および簡素化することができる。その結果、例えば分解順序の探索などの計算処理を容易化することができる。
【0077】
また、前述の部品種別の分類(前述のステップS20)により、構成部品の計算対象の設定種別が事前に特定されているため、工程別に計算する対象ノードを限定することができる。例えば、前述のステップS20の処理において部組533Sが購入品であって計算対象外であることが特定されている場合、後述の組立シーケンス生成の計算対象外とすることができる。この場合、以下のような計算処理上の利点がある。
【0078】
例えば、
図6の3Dモデルについて、
図8のアセンブリグラフが総組の組立工程を表現しているとすると、後述する工程別の組立シーケンス生成処理ではかかるアセンブリグラフを用いた組立シーケンス生成処理が行われる。また、総組の組立シーケンス生成処理の実行後、部組として扱った部組511S、部組521S、部組533Sについて、順に組立シーケンス生成処理が行われる。このとき、部組533Sが購入品であって計算対象外と把握できている場合には、部組533Sの計算をスキップし、次の部組の計算を行うことができるため、無駄な計算を省略することができる。
【0079】
次に、部品種別が「ネジ」の場合について説明する。
図9は、「ネジ」の部品間隣接関係を説明する図であって、3DCADデータに含まれる3Dモデルの断面図の一例を示した図である。ネジ601は、部品604にネジ穴があり、部品602および部品603をその間で共に締結している。
【0080】
図10は、
図9に示す「ネジ」のアセンブリグラフを示した図である。「ネジ」の場合の部品間隣接関係の解析方法は、基本的には「その他一般部品」と同様の方法が採用される。具体的には、部品間の隣接関係には、部品の一部の面である平面と他の部品の一部の面である平面の法線が許容寸法範囲内にあり、その平面間の距離が許容寸法以内で隣接している「平面拘束」(図上のエッジにPと記載)、円筒と円筒が許容寸法以内で同軸関係にあり、その円筒の径の差が許容寸法以内にある「円筒拘束」(図上のエッジにCと記載)、平面の法線と円筒の軸が許容寸法範囲内で垂直関係にあって、円筒の軸から平面までの距離と円筒の半径が許容寸法範囲内にある「円筒平面拘束」等がある。なお、平面拘束と円筒拘束の両方が存在するエッジには、図上でP&Cと記載した。
【0081】
図10のとおり、ネジ601は、部品602の穴と円筒拘束があり、平面で隣接しているため、P&Cの隣接関係がある。また、ネジ601は、部品604のネジ穴と円筒拘束Cの隣接関係があり、部品603とは、部品603の穴と円筒拘束Cの隣接関係がある。また、部品603は、部品602および部品604と平面で隣接しているため平面拘束Pの隣接関係がある。これらの隣接関係は、部品種別「ネジ」の隣接関係の解析用に設定した許容寸法範囲の設定値にもとづき解析した結果である。
【0082】
なお、
図7、
図8のアセンブリグラフの例において、
図10と同様にエッジにPやCを付記する場合、
図7、
図8の例ではすべて平面拘束であり、すべてのエッジにPを付記することになる。
【0083】
このように、部品間隣接関係を解析することにより、各構成部品の分解可能な方向を導出することができる。例えば、
図9のネジ601は、部品602、部品603および部品604と円筒拘束(Cの隣接関係)があり、その拘束要素のベクトルは、それらの穴の円筒軸方向である。また、ネジ601は、部品602と平面拘束(Pの隣接関係)の関係があり、その拘束要素のベクトルは、その隣接した平面の法線方向である。このような解析結果から、ネジ601は、円筒軸方向でかつ隣接平面の法線方向に向かって分解する動作を導出することができる。
【0084】
次に、部品種別が「配線」の場合について説明する。
図11は、「配線」の部品間隣接関係を説明する図であって、3DCADデータに含まれる3Dモデルの断面図の一例を示した図である。配線701は、部品703および部品704を接続する配線部品である。配線702は、部品703および部品706を接続する部品であり、その配線経路上において部品705が配線に固定される。
【0085】
図12は、
図11に示す「配線」のアセンブリグラフを示した図である。「配線」の場合、その形状の柔軟さが「その他一般部品」や「ネジ」とは異なるため、それらの隣接関係の解析とは異なる解析手法が採用される。具体的には、部品種別を「配線」と分類した部品を構成する面に対し、その近傍で設定した許容寸法範囲内にある面を抽出する。また、その面を含む部品の中で最も近くにある面(以下、「近接面」という場合がある)を「配線」との間で隣接関係がある対象として特定する。このような「配線」の解析手法および解析条件に基づき、
図12のアセンブリグラフのエッジにWと記載した隣接関係を得る。
【0086】
図12に示すように、部品703および部品704は所定寸法範囲内で配線701と近接する面があるため、「配線」との間で隣接関係がある対象部品である(図上のエッジにWと記載)。また、部品703、部品705および部品706は、所定寸法範囲内で配線702と近接する面がある部品があるため、「配線」との間で隣接関係がある対象部品である(図上のエッジにWと記載)。なお、部品704および部品705には平面拘束があるため(「その他一般部品」の部品間隣接関係の解析方法により判明しているものとする)、図上のエッジにPと記載した。なお、「配線」の隣接関係においては、各々の近接面の法線方向が配線の分解方向と捉えられるため、逆転させて配線作業時の接続方向として把握することができる。
【0087】
ここで、例えば部品種別が「配線」である部品について「その他一般部品」の解析手法を用いて部品間隣接関係を解析した場合について考察する。この場合、配線701と配線702との間に平面または円筒の隣接関係があると解析されることがある。しかしながら、これらの隣接関係からその法線方向を分解方向として捉えたとしても、その方向は組立順序を導出するために有用な情報にはならない。したがって、このように部品種別が「配線」である部品など、その形状を柔軟に変形できる部品種別においては、前述した「配線」の部品間隣接関係の解析手法を用い、その「部品種別」に応じた寸法許容値を設定することで、組立作業の解析および組立順序の生成に有用な隣接関係を取得することができる。
【0088】
以上、ステップS40の処理について説明した。なお、3Dモデル情報生成部123は、ステップS40で解析した部品種別ごとの各構成部品の部品間隣接関係を、3Dモデル情報111の「部品間隣接関係」に対応付けられている各項目(拘束の種別、拘束の要素種別など)に格納する。
【0089】
次に、計算用部品構成ツリー生成部127は、計算用の部品構成ツリーを生成する(ステップS50)。本処理は、3DCAD部品構成ツリーで生成したアセンブリグラフについて、各構成部品を組立単位の親子関係に整理する処理である。例えば、前述のステップS40では、3DCAD部品構成ツリー等を用いてアセンブリグラフを生成し、部組を点線枠で示した。しかしながら、3DCAD部品構成ツリーでは、必ずしも組立単位を考慮することなく、親部品を作成し、その下に任意の子部品を配置することができるため、親部品の階層下に属する子部品全てに部品間隣接関係があるとは限らない。そのため、計算用部品構成ツリー生成部127は、計算用の部品構成ツリーを生成し、各構成部品を隣接関係のある親子関係に整理する。
【0090】
図13は、計算用部品構成ツリーの生成処理の詳細を示したフロー図である。かかる処理が開始されると、計算用部品構成ツリー生成部127は、同じ隣接関係の同名部品を集約する(ステップS510)。具体的には、計算用部品構成ツリー生成部127は、3DCAD部品構成ツリーから同じ名称の部品を抽出し、その部品に隣接した部品が同じ組合せであって、その平面拘束の方向ベクトルが同じか否かを判定する。
【0091】
また、計算用部品構成ツリー生成部127は、その部品に隣接した部品が同じ組み合わせであって、平面拘束の方向ベクトルが同じと判定した場合、その部品は同じ組付け作業であると判定する。その場合、計算用部品構成ツリー生成部127は、3DCAD部品構成ツリーにおいて、その同名部品を集約するための親部品のノードを新規作成し、その親ノードの階層下にそれらの集約すべき部品を配置する。なお、既に3DCAD部品構成ツリーをもとにした部組化が設定された親部品の階層下の部品については、親部品間の階層を跨いだ処理は行わない。
【0092】
次に、計算用部品構成ツリー生成部127は、親部品ごとに末端側の階層から上位側の階層へと順にステップS520〜ステップS540の処理を行う。また、計算用部品構成ツリー生成部127は、上位側の階層から末端側の階層へと順にステップS550の処理を行う。以下では、これらの処理について、
図14〜
図17を用いて詳細に説明する。
【0093】
図14は、3DCAD部品構成ツリーの一例と、3DCAD部品構成ツリーに対応する3Dモデルの一例と、3Dモデルのアセンブリグラフとを示した図である。なお、アセンブリグラフの点線枠は、3DCAD部品構成ツリーによる親子関係を示している。
【0094】
ここで、計算用部品構成ツリー生成部127は、部品間の隣接関係に基づき、孤立した部品の階層を繰り上げる(ステップS520)。具体的には、計算用部品構成ツリー生成部127は、末端側の階層である「SubAsm56」において、孤立した部品があるか否かを判定する。この場合、孤立した部品がないため、計算用部品構成ツリー生成部127は、上位側の階層である「SubAsm34567」に孤立した部品があるか否かを判定する。この場合、Parts3が孤立しているため、計算用部品構成ツリー生成部127は、Parts3の階層を繰り上げる処理を行う。
【0095】
図15は、ステップS520の処理後の3DCAD部品構成ツリーを示した図である。図示するように、Parts3の階層が繰り上げられ、かかる部品はTopAssyの階層下に配置されている。
【0096】
次に、計算用部品構成ツリー生成部127は、2つ以上サブグラフ(部分的なアセンブリグラフ)がある場合、その親部品の階層化に親部品を新規生成し、サブグラフごとに構成部品を配置する(ステップS530)。なお、サブグラフがある場合とは、例えば
図15において、Parts3とこれに隣接する別の隣接部品とがある場合である。なお、本例では2つ以上のサブグラフはないため、計算用部品構成ツリー生成部127は、処理をステップS540に移行する。
【0097】
ステップS540では、計算用部品構成ツリー生成部127は、処理対象の親部品の階層下に子部品がなくなった場合には、その親部品を削除する。階層下に子部品のない階層を残しておく意味がないからである。
【0098】
次に、計算用部品構成ツリー生成部127は、子部品の隣接関係が一つの親部品のみの場合、その親部品の階層下へ子部品を編入する(ステップS550)。例えば、
図15の3DCAD部品構成ツリーにおいて、TopAssyの階層下にあるParts8は、SubAsm56に対してのみ隣接関係があるため、計算用部品構成ツリー生成部127は、Parts8を唯一の隣接関係があるSubAsm56の階層下へ編入する。なお、この編入により、
図15のSubAsm56は、SubAsm568となり、SubAsm4567は、SubAsm45678となる。
【0099】
また、
図15の3DCAD部品構成ツリーにおいて、TopAssyの階層下にあるParts9は、SubAsm45678に対してのみ隣接関係があるため、計算用部品構成ツリー生成部127は、Parts9を隣接関係があるSubAsm45678の階層下へ編入する。なお、この編入により、
図15のSubAsm45678は、SubAsm456789となる。
【0100】
また、
図15の3DCAD部品構成ツリーにおいて、TopAssyの階層下にあるParts7は、SubAsm568に対してのみ隣接関係があるため、計算用部品構成ツリー生成部127は、Parts7を隣接関係があるSubAsm568の階層下へ編入する。なお、この編入により、
図15のSubAsm568は、SubAsm5678となる。
【0101】
図16(a)〜(c)は各々、Parts8、Parts9およびParts7を隣接関係がある階層下へ編入した場合のアセンブリグラフを示した図である。
【0102】
図17は、
図14の3DCAD部品構成ツリーと、親子関係が整理された計算用部品構成ツリーとを示した図である。
【0103】
このように、計算用部品構成ツリー生成部127は、ステップS520〜ステップS550の処理を行うことにより、3DCAD部品構成ツリーの親子関係を整理することで、後述の組立シーケンス処理に用いられる計算用部品構成ツリーを生成する。計算用部品構成ツリー生成部127は、ステップS550の処理を終了すると、処理をステップS60(
図5)に移行する。
【0104】
図5に戻って説明する。ステップS60では、順序制約設定部128は、順序制約の設定を行う。ここで、部品種別が「ネジ」の場合の部品間隣接関係を示した
図9および
図10を用いて順序制約について説明する。ネジ601は、部品602と平面の隣接関係がある。このネジ601は、組付け順序として、この部品602よりも先に組み付けられることは想定されない。そのため、順序制約設定部128は、このような順序制約を定義した順序制約情報114を用いて、「部品602の後にネジ601を組み付ける」という順序制約を設定する。これにより、ネジと平面拘束の隣接関係にある部品を先に組み付け、それよりも後で「ネジ」を組み付ける、という順序制約が設定される。
【0105】
また、部品種別が「配線」の場合の部品間隣接関係を示した
図11、
図12では、配線701および配線702は、それらの近接部品よりも先に組み付けることは想定されない。そのため、順序制約設定部128は、このような順序制約を定義した順序制約情報114を用いて、「配線の近接部品を先に組み付け、それよりも後で配線を組み付ける」という順序制約を設定する。なお、一例として「ネジ」と「配線」の例を示したが、他の部品種別においても、隣接および近接した部品との組付け順序が明らかな場合は同様に順序制約を設定するとよい。
【0106】
次に、組立シーケンス生成部129は、組立シーケンスを生成する(ステップS70)。
図18は、組立シーケンス生成処理の詳細を示したフロー図である。なお、組立シーケンス生成部129は、例えば特開2012−14569号公報あるいはWO2015/177855A1公報に開示される組立シーケンスの生成方法を採用し、ステップS40で生成した部品種別ごとのアセンブリグラフを用いて分解可能な方向を特定しながら分解方向および分解順序を生成する。また、組立シーケンス生成部129は、分解順序、分解方向の逆変換を行い、組立順序、組立方向を生成する。また、組立シーケンス生成部129は、この組立シーケンスの生成において、部品および部組ごとに評価値を計算し、評価値に応じて組み立ての順序を決定する。なお、組立順序は、過去に類似の部組の組み立てを行った際の組立順序に沿うことが効率的である。そのため、組立シーケンス生成部129は、評価値に過去の類似部品の組み立てを行った際の順序に応じた重み付けを行う。以下では、組立シーケンス生成処理の詳細について説明する。
【0107】
組立シーケンス生成部129は、計算用部品構成ツリーを用いて、工程ごと(部組ごと)にステップS710〜ステップS790の処理を繰り返し処理する。具体的には、組立シーケンス生成部129は、階層ごとに当該階層に含まれる部品あるいは部組を特定し、階層ごとに組立シーケンスを生成する。より具体的には、組立シーケンス生成部129は、製品の最上位階層にあたる総組の組立工程についての組立シーケンスを生成する。
【0108】
また、組立シーケンス生成部129は、順次その部品構成内で扱っている部組を選択し、その部組自体を計算対象の部品構成として、対応するアセンブリグラフを用いて組立シーケンスを生成する。なお、組立シーケンス生成部129は、より上位の階層から下位の階層に向かって順次組立シーケンスを生成することとし、また組立シーケンス生成済みの部組のID、名称は記憶しておく。
【0109】
まず、組立シーケンス生成部129は、選択している部組について、計算対象の部組か否かを判定する(ステップS710)。具体的には、組立シーケンス生成部129は、当該部組が部組化の設定処理(ステップS30)において計算対象外に設定されているか否かについて判定する。そして、計算対象外の部組と判定した場合(ステップS710でYes)、組立シーケンス生成部129は、その組立シーケンスの生成をスキップし、次の部組の計算を行う。一方で、計算対象外の部組ではないと判定した場合(ステップS710にてNo)、組立シーケンス生成部129は、処理をステップS720に移行する。なお、総組の組立工程、すなわち最上位の階層においては、ステップS710の判定処理を省略してもよい。
【0110】
次に、組立シーケンス生成部129は、選択している部組について計算済みの部組であるか否かを判定する(ステップS720)。具体的には、組立シーケンス生成部129は、選択している部組が、既にステップS710〜S790の処理を行った部組と同じ名称か否かを判定する。そして、計算済みの部組と判定した場合(ステップS720でYes)、組立シーケンス生成部129は、その組立シーケンスの生成をスキップし、次の部組の計算を行う。一方で、計算済みの部組ではないと判定した場合(ステップS720でNo)、組立シーケンス生成部129は、処理をステップS730に移行する。なお、総組の組立工程、すなわち最上位の階層においては、ステップS720の判定処理を省略してもよい。
【0111】
次に、組立シーケンス生成部129は、ベース部品を設定する(ステップS730)。具体的には、組立シーケンス生成部129は、3Dモデル情報111のベース部品(フラグ)を参照し、選択している部組を構成する部品の中でベース部品のフラグがあるものを抽出してベース部品とする。なお、ベース部品のフラグが選択している部組のいずれの部品にも指定されていない場合、組立シーケンス生成部129は、「3Dモデル情報111の部品属性の体積、表面積および最大長の大きい部品を優先する」あるいは「部品間隣接関係の隣接関係が多い部品を優先する」といった所定の計算条件情報115に基づきベース部品を設定する。
【0112】
次に、組立シーケンス生成部129は、作業ステップを設定する(ステップS740)。ここで、作業ステップの設定について、
図6の3Dモデルおよび
図7のアセンブリグラフをもとに、ベース部品と作業ステップの表現を追加したアセンブリグラフの例として作成した
図19を用いて説明する。
【0113】
図19は、ベース部品と作業ステップの表現を追加したアセンブリグラフの一例を示した図である。図示するように、
図7のアセンブリグラフに対し、底板501と、天板506と、右前柱502と、右後柱503と、左前柱504と、左後柱505と、が一つの部組501Sとされ、裏側中央部品533と、裏側中央部品535と、裏側左部品536と、が部組533Sとされている。
【0114】
ステップS740では、組立シーケンス生成部129は、3Dモデル情報111の部品属性や部品間隣接関係の情報を用いて、部組501Sをベース部品として選定するものとする。また、組立シーケンス生成部129は、ベース部品が組み立ての際に最初に配置する部品であるため、ベース部品を最初の作業ステップとして設定する。また、その他の作業ステップについては、組立シーケンス生成部129は、設定したベース部品に対しての部品間隣接関係および部品属性などをもとに割付ける。
【0115】
図19の例では、組立シーケンス生成部129は、部品間の隣接関係を参照し、その位置上の纏まりやベース部品に対する隣接方向(X軸方向、Y軸方向、Z軸方向)から作業ステップを設定する。この作業ステップの設定において、組立シーケンス生成部129は、3Dモデル情報111を参照し、部品数、部品の総体積、部品全体での重心および部品全体でのバウンディングボックスなどの配置関係の優先順位を特定し、作業ステップを付番する。例えば、組立シーケンス生成部129は、全体の体積が大きく重心が下側に配置されたものを優先して組立作業の順番とし、作業ステップに付番する。
【0116】
次に、順序制約設定部128は、順序制約を設定する(ステップS750)。具体的には、順序制約設定部128は、ステップS60の処理において部品種別ごとの隣接関係に基づき設定された順序制約を設定する。
【0117】
そして、組立シーケンス生成部129は、ノード評価値を算出する(ステップS760)。ここで、ノード評価値とは、例えばWO2015/177855A1公報に開示される組立シーケンス生成方法において用いられるノード評価値と同様の指標である。そのノード評価値の一要素としては、ベース部品の作業ステップを付加する。作業ステップを付加することで、計算対象のアセンブリグラフの優先順位を限定することができ、大規模なモデルを対象とした組立シーケンス生成処理において計算を容易にすることができる。
【0118】
なお、前述の組立シーケンス生成方法においては、まず分解順序を探索するため、設定した作業ステップの逆順となる分解順序をノード評価値として付加し、後述の分解順序・分解可能部品の探索を行う。
【0119】
次に、組立シーケンス生成部129は、分解順序探索・分解可能部品判定を行う(ステップS770)。具体的には、組立シーケンス生成部129は、アセンブリグラフおよび3Dモデル情報111を用いて、分解動作における部品間の干渉有無を判定する。また、組立シーケンス生成部129は、干渉のない分解運動ベクトルを導出することにより分解順序探索・分解可能部品判定を行う。この処理においては、
図6〜
図12で説明したように、部品種別ごとの隣接関係の解析から得た拘束要素の方向ベクトルに基づき、その部品の分解可能な方向ベクトルを導出し、その分解方向において干渉する部品の有無を導出する。
【0120】
なお、組立シーケンス生成部129は、部品種別ごとに設定した干渉判定の閾値が許容値以内であれば、その干渉は除外する。また部品種別ごとに設定した、その部品種別において干渉を除外してもよい部品種別との干渉は除外する。例えば、部品種別が「配線」の場合においては、「配線」同士はそれぞれ柔軟に形状を変形できるため、その干渉は無視する。
【0121】
また、組立シーケンス生成部129は、部品間隣接関係から得たすべての分解方向ベクトルにおいて、その分解方向ベクトルごとに干渉判定を行う。なお、かかる干渉判定は、事前に設定した順序制約やベース部品の設定条件を満足することが必要である。そのため、組立シーケンス生成部129は、干渉判定結果と順序制約条件に矛盾が生じた場合、その矛盾を解決するための部組化の案を生成する。
【0122】
図20は、順序制約と干渉判定から矛盾が生じた場合の説明図である。ここで、部品810はベース部品であり、最後に分解する部品として予め設定されている。このとき、ネジ801およびネジ802は、図の左方向に分解可能と判定される。また、ネジ801およびネジ802には、部品821との間に順序制約がある。また、部品822は、ネジと平面の隣接関係はなく、図の右方向に分解可能である。また、部品822の分解後に部品821を分解可能な方向は、干渉判定から図の右方向と判定されるが、「部品821を分解する前に、ネジ801、ネジ802を分解(組付けの逆の表現)」という順序制約がある場合、部品821を分解することができないという矛盾が発生する。
【0123】
このような矛盾が発生した場合、組立シーケンス生成部129は、その矛盾が生じた順序制約のある部品を抽出し、その順序制約の部品を含めた部品間の隣接関係に基づいて、関係した部品全てを一つの纏まりとした部組化案を生成する。
【0124】
具体的には、部品821を分解しようとした際に、干渉判定による分解案と順序制約で矛盾が生じているため、組立シーケンス生成部129は、部品821に関する順序制約を抽出する。これにより、組立シーケンス生成部129は、「部品821とネジ801、ネジ802との順序制約」について把握する。そして、組立シーケンス生成部129は、抽出した順序制約の部品を含めた部品821とネジ801、ネジ802との隣接関係を分析し、ネジ部品と部品822との隣接関係を把握する。そして、組立シーケンス生成部129は、分析結果に基づき、部品821、部品822、ネジ801およびネジ802を一つの纏めた部組化案を生成する。
【0125】
なお、かかる部組化案の親ノード(122S)について、再度、部品間の隣接関係と順序制約から分解可能な方向を計算すると、矛盾なく図の右方向に分解可能と判定できる。なお、組立シーケンス生成部129は、問題となった干渉及び順序制約と、矛盾を解決するために生成した部組化案と、分解可能となった分解結果とをユーザに画面提示しても良い。
【0126】
次に、組立シーケンス生成部129は、組立順序・動作への変換を行う(ステップS780)。具体的には、組立シーケンス生成部129は、生成された分解順序を逆順にして組立順序に変換し、分解運動ベクトルの符号を反転することにより組立動作に変換した組立順序・動作を生成する。なお、計算条件情報115に従い、複数の組立順序案が導出されるようにしてもよい。
【0127】
次に、組立シーケンス生成部129は、全ての工程の計算が完了したか否か判定する(ステップS790)。そして、全ての工程の計算が完了していないと判定した場合(ステップS790でNo)、組立シーケンス生成部129は、未処理の工程(部組)についてステップS710の処理を行う。一方で、全ての工程(部組)の計算が完了したと判定した場合(ステップS790でYes)、組立シーケンス生成部129は、本フローの処理を終了し、処理をステップS80(
図5)に移行する。
【0128】
以上、組立シーケンス生成処理について説明した。このような組立シーケンス生成処理によれば、計算用部品構成ツリーの最も上位の階層からその階層下にある部組を順次展開し、設定したベース部品および作業ステップを考慮した組立シーケンスを工程別に生成することができる。
【0129】
図5に戻って説明する。次に、3Dアニメーション生成部130は、3Dアニメーションを生成する(ステップS80)。具体的には、3Dアニメーション生成部130は、ステップS70において生成された組立シーケンスを用いて、組立品における工程別の組立順序を示す3Dモデルのアニメーションを生成する。
【0130】
次に、作業指示生成部131は、工程別3D作業指示を出力する(ステップS90)。具体的には、作業指示生成部131は、出力処理部122を介して、組立順序を含む部品構成ツリーと、組立品の3Dモデルと、テキストによる作業指示とを含む工程別3D作業指示の画面情報を出力装置302に表示する。
【0131】
図21は、工程別3D作業指示の一例を示した画面例900である。図示するように、工程別3D作業指示は、所定の操作メニューを表示した操作メニュー表示欄901と、工程別の組立順序を部品構成ツリーの形式で表示した組立順序表示欄902と、組立品の3Dモデルを表示した3Dモデル表示欄903と、作業指示の内容をテキスト表示した指示内容表示欄904とを有している。
【0132】
操作メニュー表示欄901は、所定の操作メニューを表示する欄である。操作メニューには、例えばファイル901aと、3Dモデル選択901bと、工程選択901cと、アニメーション再生操作ボタン901dとがある。なお、入力受付部121は、操作メニュー表示欄への操作入力を受け付けると、対応する所定の機能部に対して操作に応じた指示を出力する。
【0133】
例えば、ファイル901aへの操作入力は、例えば所定のファイルを選択および展開したり、画面上で編集したファイルを保存する操作などを可能にする。かかる操作入力を受け付けると、入力受付部121は、選択されたファイルを画面表示するための表示情報の生成指示を出力処理部122に出力する。また、操作入力によりファイルの保存指示を受け付けると、入力受付部121は、指定されたファイルを記憶部110に保存する指示を図示しない所定の機能部に出力する。
【0134】
また、3Dモデル選択901bへの操作入力は、例えば部品構成ツリー上の部品が選択された際に、3Dモデル表示欄903に表示した組立品の3Dモデル上における対応部品をハイライト表示することを可能にする。また、かかる操作入力は、例えば部品構成ツリー上で選択された部品のみを3Dモデル表示欄903に表示する、あるいは、選択された部品以外のみを3Dモデル表示欄903に表示する。かかる操作入力を受け付けると、入力受付部121は、3Dモデル表示欄903に表示された組立品の該当する部品をハイライト表示あるいは該当する部品のみ(または、該当しない部品のみ)を表示するよう出力処理部122に指示する。
【0135】
また、工程選択901cへの操作入力は、組立順序表示欄902に表示した部品構成ツリーにおいて、選択された組立工程の表示切り替えを可能とする。かかる操作入力を受け付けると、入力受付部121は、選択された組立工程に関する情報を表示する。
【0136】
また、アニメーション再生操作ボタン901dへの操作入力は、組立動作を示す3Dアニメーション情報を再生、停止、逆再生などを可能とする。かかる操作入力を受け付けると、入力受付部121は、操作に応じた3Dアニメーションの動作を制御するよう出力処理部122に指示する。なお、出力処理部122は、3Dアニメーションで動作している部品に該当する部品構成ツリー上の部品をハイライト表示しても良い。また、出力処理部122は、動作する部品の軌跡や動作方向を示す矢印などを3Dアニメーションと共に表示しても良い。
【0137】
組立順序表示欄902は、工程別の組立順序を示す部品構成ツリーの表示欄である。具体的には、作業指示生成部131は、出力処理部122を介して、ステップS50で生成された計算用の部品構成ツリーの表示情報を生成し、組立順序表示欄902に表示する。
【0138】
3Dモデル表示欄903は、組立品の3Dモデルを組み立てる3Dアニメーション情報の表示欄である。具体的には、作業指示生成部131は、出力処理部122を介して、ステップS80で生成された3Dアニメーション情報をかかる表示欄に表示する。
【0139】
指示内容表示欄904は、テキスト情報による作業指示の内容を表示する表示欄である。例えば、作業指示生成部131は、選択されている部品構成ツリー上の部品や、3Dアニメーション上で動作している部品と、その部品の組み付け先部品などを計算用部品構成ツリーや3Dモデル情報111を用いて特定する。また、作業指示生成部131は、選択あるいは動作している部品名および組み付け先部品名を含む作業内容のテキスト情報を生成する。また、作業指示生成部131は、出力処理部122を介して、生成したテキスト情報を指示内容表示欄904に表示する。
【0140】
以上、本実施形態に係る作業指示生成装置について説明した。このような作業指示生成装置によれば、より効率の良い作業指示を生成することができる。特に、作業生成装置によれば、部品種別ごとに部品間の隣接関係を解析するため、組立順序を生成する際に必要となる情報を的確に取得することができる。また、複数部品からなる部組を設定することによりグラフネットワーク(アセンブリグラフ)を簡略化でき、その結果、組立順序の探索処理にかかる計算処理の迅速化を図ることができる。
【0141】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、置換をすることが可能である。
【0142】
また、上記説明では、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えて良い。