以下、本発明に係る一つの実施の形態を図面に基づいて説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、「Aからなる」、「Aよりなる」、「Aを有する」、「Aを含む」と言うときは、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除するものでないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。
一般に、製造業では製品の組立手順を作業者に判り易く示す必要がある。このような組立手順の指示においては、2次元の組み立て図面よりも3次元モデルを利用する方が、部品の位置関係や組付け方向が視覚的にわかりやすい。例えば3次元アニメーションのように一連の組立手順を動画で示す作業指示方法や、3次元モデルをもとに組立順序に沿って作成した斜視図を利用した説明図で示す作業指示方法などが利用されている。以下、これら3次元モデルを利用した作業指示方法を3D作業指示と表現する。
また、製品の組立手順は大きく分けると2つの工程がある。最終組立を行う総組の工程と、総組の工程以前に複数の部品を一つのユニット(サブアセンブリ)として組み立てる部組の工程である。これら複数の工程が段階的に階層として繋げられて工程のフローとされる。作業指示する際には、この工程フローにおいて、それぞれの工程ごとの具体的な組立手順などの作業指示を行うことが多い。
このように、工程ごとの3D作業指示(以下、工程別3D作業指示と表現することがある)を作成することが必要となるが、一般に、3次元CAD(Computer−Aided Design)データの部品構成ツリーは組立順序ではなく、また必ずしも工程ごとに纏まった部品構成ツリーにはなっていない。
そのため、3D作業指示の作成においては、その3次元CADデータをもとに工程となる作業の纏まりと、工程間および工程内の組立順序とをよく検討して、3次元CADの部品構成ツリーを参照しながら編集する作業が必要となる。また、その編集した結果をもとに各部品の動きを設定しアニメーションを作成し、その工程ごとの組立順序の説明図を作成するといった作業が必要となる。そのため、3D作業指示には膨大な時間とコストがかかる。
このような3D作業指示を補助する情報処理技術としては、例えば、分解定義情報に、基本工程及び中間工程の移動座標系、その座標系に沿った部品若しくは部品群及び工程用部品グループの移動位置を付加することで、分解アルゴリズムを生成する技術があるが、対話型の画面に基づき工程を定義するものが多く、例えば数千の部品から成る部品数の多い製品の場合は、この定義作業にも作業工数を要する。
以下に、本発明に係る実施形態を適用した工程別3D作業指示生成システム1の例について、図面を参照して説明する。
図1は、本発明の実施形態に係る作業指示生成システムの構成例を示す図である。工程別3D作業指示生成システム1においては、工程別3D作業指示生成装置100と、工程別3D作業指示生成装置100とLAN(Local Area Network)あるいはインターネット等のネットワーク210を介して通信可能な3DCAD装置200と、を連携させて動作させることが可能となっている。
なお、本実施形態において、3DCAD装置200は、例えば独立して動作可能なCAD装置であってもよいし、CAD機能により生成されたモデル情報を格納する記憶装置を備える装置であってもよい。あるいは、3DCAD装置200は、工程別3D作業指示生成装置100と一体となって動作するものであってもよい。
ネットワーク210は、例えばLAN、無線LAN等の通信路である。なお、3DCAD装置200と、工程別3D作業指示生成装置100と、の間の通信は、ネットワーク210を介するものに限られず、USB(Universal Serial Bus)などの有線通信路あるいはBluetooth等の無線通信路であってもよい。
工程別3D作業指示生成装置100は、例えば独立して動作可能な汎用計算機である。工程別3D作業指示生成装置100は、演算部110と、記憶部130と、入力部140と、表示部150と、通信部160と、を含む。
演算部110は、3Dモデル情報取得部111と、部品種別分類部112と、部品間隣接関係(アセンブリグラフ)生成部113と、事例データ分析部114と、部品構成編集部115と、ベース部品設定部116と、作業ステップ計算部117と、部組・作業ステップ設定部118と、組立シーケンス生成部119と、3Dアニメーション生成部120と、を含む。
記憶部130は、3Dモデル情報131と、部品種別情報132と、解析計算プログラム133と、計算条件情報134と、組立順序作成済みの事例データ135と、を含む。
図2は、3Dモデル情報のデータ構造の例を示す図である。3Dモデル情報131には、識別子131aと、分類131bと、項目131cと、値131dと、が含まれる。なお、3Dモデルとは、部品を組み付けることにより完成する組立完成品を3Dモデル化し、その構成部品とその構造とを特定する情報である。ここで、本実施形態においては、3Dモデルの対象となる対象部品は1つの部品モデルではなく、複数の部品から構成される組立品であるアセンブリモデルを含むものとする。なお、3Dモデル情報131は、データベースにより構成されていてもよいし、XML(eXtensible Markup Language)により構成されていてもよい。
識別子131aは、3Dモデルの構成情報を識別する情報である。分類131bは、3Dモデルで表される部品に関連する項目のカテゴリを示す情報である。本実施形態においては、分類131bには、部品属性、形状特徴、部品配置、部品構成、部品間隣接関係、計算用部品構成、等の分類があるが、これに限られず、部品の組立に関連する情報が格納される。
項目131cは、3Dモデルで表される部品に関連する項目を示す情報である。本実施形態においては、項目131cには、部品ID、階層番号、モデル名、モデル形状ファイルパス、部品図番、部品タイトル、材質等の部品属性に関する項目や、体積、表面積、最大長、重心、バウンディングボックス(部品を外包する境界となる直方体の8頂点の座標)の8頂点の座標等の形状特徴に関する項目等、様々な項目が含まれる。なお、部品属性には、その他、材質に応じた比重や、部品種別が含まれるものであってもよい。また、形状特徴には、質量、主慣性モーメント、慣性主軸、等の項目が含まれていてよい。
ここで、モデル形状ファイルパスとは、3Dモデル情報取得部111において、テキスト情報の3Dモデル情報131とともに、3DCAD装置から部品単位でモデル形状ファイルを変換し、そのファイルパスを格納する。なお、モデル形状ファイルは、例えば、STL(Standard Triangulated Language)や、そのほかSTEP、PARASOLID、JT、XVLなど3DCAD装置200から変換可能な3次元形状データファイルフォーマットでよい。このモデル形状ファイルは、部品構成編集部115、ベース部品設定部116、部組・作業ステップ設定部118、などにおいて、必要に応じて3Dモデル形状を確認する際に利用する。また組立シーケンス生成部119、3Dアニメーション生成部120での干渉チェックなどの計算および計算結果を表示する際に3Dモデル形状を利用する。
同様に、項目131cには、部品の原点、XYZ軸上の座標軸等の部品配置に関する項目、親部品IDや子部品ID等の部品構成に関する項目、拘束要素種別、拘束要素を含む部品ID、被拘束部品ID、拘束面法線、拘束面原点等の部品間隣接関係に関する項目、等の項目が含まれる。
なお、部品配置は、組立完成品の最終位置での部品の位置・姿勢を示すものである。また部品構成には、部組(サブアセンブリ)として扱うフラグ、計算対象外を示すフラグ(3DCADモデル上では非表示や抑制を示す情報など)、組立の順等、計算対象とする部品の纏まりや計算対象範囲を定義する情報を含めることができる。
また、部品間隣接関係とは、アセンブリモデルをモデリングする際に設定するアセンブリ拘束情報であり、モデリングする際に設計者が設定した情報だけではなく、アセンブリモデルをもとに部品と部品のクリアランス解析によって取得した情報であってもよい。例えば、クリアランス解析の一方式としては、設定した閾値をもとにモデリングされた部品の各面からクリアランス距離内にある別のモデルを探索し、探索の結果得られた隣接部品の面(平面、円筒面、円錐面など)の位置、姿勢の情報を作成する方式が挙げられる。なお、アセンブリ拘束とクリアランス解析の情報で得た拘束面情報は、平面の場合は、そのモデルの外側に向いた拘束面法線ベクトルとして面上の点を拘束面原点に取得し、円筒面の場合は、その円筒の軸方向を拘束面法線ベクトルとして軸上の点を拘束面原点とすることが望ましい。
また、分類131bの計算用部品構成は、工程別3D作業指示における工程ごとの組立順序を計算するためのデータ構造であり、項目131cには、計算対象を示す計算用部品構成IDと、その計算対象の部品構成を示す親部品IDと、その親部品ID内の構成となる子部品IDとを含む。また設定した作業ステップの順番を示す作業ステップNo.と、工程内で最初に組み付ける部品を示すベース部品を示すフラグ等の項目が格納されるものであってよい。
値131dは、3Dモデルで表される部品に関連する項目ごとの具体的な値の情報である。
図3は、部品種別情報のデータ構造の例を示す図である。部品種別情報132には、ID132aと、部品種別名称132bと、3DCADモデルの部品属性の判定条件132cと、分解対象外フラグ132hと、が含まれる。
ID132aは、部品種別を特定する情報である。部品種別名称132bは、部品種別の名称を特定する情報である。3DCADモデルの部品属性の判定条件132cには、部品種別を引き当てるための情報として、3DCADの部品属性(モデル名132d、部品図番132e、部品名のタイトル132f)と、3DCADの形状特徴(寸法条件132g)の項目が含まれる。なお、3DCADモデルの部品属性の判定条件132cのうち、条件項目が無い項目については、部品属性の判定において考慮しない項目である。
ここで、部品図番132e、部品名のタイトル132fは、3DCADのパートモデルあるいはアセンブリモデルにユーザが任意に定義したテキスト情報である。また、モデル名132d、部品名のタイトル132fなど文字列の部品属性においては、すべての文字列の完全一致だけではなく、部分一致で引き当てる場合もあることから、任意の文字を示すワイルドカード文字(アスタリスク記号など)を含む文字列(例えば、正規表現等により表される文字列)を格納するものとしてよい。なお、3DCADモデルの部品属性の判定条件132cに、文字列条件を追加して、完全一致、前方一致、後方一致などの一致条件の指定を格納可能にしてもよい。
また、図3では、3DCADの形状特徴としては、寸法条件132gを示しているが、これに限られない。例えば、パートモデルにおけるバウンディングボックス頂点、重心、主慣性モーメントなど3DCADモデルを計算することで取得できる質量特性を含むものとしてもよい。また数値での判定に際しては、等しい、以下、より大きいなどの範囲を示す条件付け、あるいは条件の論理積(AND)および論理和(OR)等の条件を含めた条件付けを含むものとしても良い。
なお、分解対象外フラグ132hには、工程別3D作業指示生成において計算する組立順序生成の過程において、分解可否を判定し分解順序・動作を計算し、その分解順序を組立順序に変換するが、その分解の計算対象とするか否かのフラグである。例えば、ID8の行に記載したリベットは別工程で加工されたものであり、組立工程の作業指示としては計算対象外とする、あるいはID9の行に記載したコンデンサは購入品であり組立工程の作業指示としては計算対象外とする、といった判定を部品種別情報132の条件にて判定する。
解析計算プログラム133、計算条件情報134には、それぞれ、演算部110で用いられる解析計算プログラム、計算条件情報が記憶される。計算条件情報134には、部品種別や部品の大きさ、部品の配置位置の並び順、部品間の隣接関係にもとづき設定された計算条件情報が記憶される。
組立順序作成済みの事例データ135には、工程別3D作業指示生成装置100で作成された組立シーケンス生成結果をもとに、実際の作業指示として利用するために、工程ごとの作業ステップと、作業ステップ内の組立順序と、を編集した結果得られた複数の事例データが格納される。なお、事例データは工程別3D作業指示生成装置の入力データをもとに計算した組立シーケンスを編集したものが望ましい。いいかえると、事例データは、部組ごとに過去に実施した際の作業ステップ情報である。
図1の工程別3D作業指示生成装置100の演算部110において、3Dモデル情報取得部111は、図2に示した3Dモデル情報のデータ構造のうち、必要な情報を取得する。部品種別分類部112は、取得した3Dモデル情報に対し、図3に示した部品種別情報132に沿って、各パートモデルの部品種別を分類する。
部品間隣接関係(アセンブリグラフ)生成部113は、取得した3Dモデル情報を用いて配置関係、隣接関係を抽出して部品をノード、部品間の隣接関係をエッジとするグラフ構造データを生成する。
事例データ分析部114は、組立順序作成済みの事例データ135において、作成された工程(部組の構成)、作業ステップ、ベース部品、組立順序などを参照するための分析を行い、その工程、作業ステップ、ベース部品、組立順序の属性情報とともに、その部品および部組および作業ステップにおける部品属性、部品間隣接関係を特徴ベクトルとして出力する。
部品構成編集部115は、3DCAD装置200から取得した3DCADの部品構成に対し、計算用部品構成に編集する処理であり、その処理結果を図2の3Dモデル情報131のデータ構造の計算用部品構成に格納する。
ベース部品設定部116は、製品の組立において、最初に置く部品または部組を設定する。言い換えると、組立順序を計算する際に、分解順序を計算した上で逆変換して組立順序とするため、分解においては、最後まで残る部品を設定するものである。ベース部品設定部116は、隣接関係情報を用いて製品のベース部品を設定する。
作業ステップ計算部117は、組立順序を計算する際に、大まかな作業ステップを区分けするための計算を行う。例えば、箱形の製品の組立において、はじめに箱の内側の作業を行うのか、箱の外側の作業を行うのか、箱の側面あるいは底面の作業を行うのか、についての判断は部品の幾何的な配置や形状のみから計算することは困難である。作業ステップ計算部117は、部品間の隣接関係を用いて作業ステップを計算する。また、作業ステップ計算部117は、事例データ分析部114から得た作業ステップの事例データをもとに計算対象の作業ステップを計算する。
部組・作業ステップ設定部118は、取得した3Dモデル情報131の部品構成において、部組・作業ステップを工程ごとに設定する。なお、部品と部組とは、工程において、部品として単独で扱うか、複数の部品の塊として扱い複数の部品を同時に動かすかの違いがある。部組・作業ステップ設定部118は、工程において、上記の大まかな作業ステップを設定する。
組立シーケンス生成部119は、取得した3Dモデル情報131に対する前記の分類、分析、設定のもと、作業ステップにおける部品と部組の組み付け順序を部品および部組間の隣接関係情報を用いて特定する。また、組立シーケンス生成部119は、工程別に計算した組立シーケンスと、組立シーケンスに応じて3Dアニメーション生成部120が生成した3Dアニメーションとを用いて、3Dモデル情報131を読み出して得た3DCADの部品属性情報(モデル名、部品図番、部品タイトル、材質、体積、最大長など)を組立順序に沿って表示する作業指示として出力する工程別3D作業指示画面を生成し、出力する。
3Dアニメーション生成部120は、組立シーケンス生成部119から得た工程別の作業ステップ、組立順序、組立動作に関する組み付けの順序に応じた3D(3次元)アニメーションを生成する。
入力部140は、工程別3D作業指示生成装置100に対する入力を受け付ける。具体的には、入力部140は、キーボード、マウス、タッチパネル等の入力装置を制御し、入力された情報を受け付ける。
表示部150は、演算部110において生成された画面表示情報を受け付けて、制御可能な出力装置であるディスプレイ等の表示装置に表示する。
通信部160は、ネットワーク210に接続される他の装置、例えば3DCAD装置200との通信を行う。
3DCAD装置200は、立体のCADを実現する機能を提供する装置である。例えば、3DCAD装置200は、パーソナルコンピューター等の汎用コンピューターを制御する3DCADプログラムにより制御される。
ネットワーク210は、LANあるいはインターネット等のネットワークである。またネットワーク210は、工程別3D作業指示生成装置100と、3DCAD装置200とが、有線、無線を問わずどちらでもアクセス可能なネットワークであってもよい。
以上が、工程別3D作業指示生成装置100の構成の概要である。なお、工程別3D作業指示生成装置100は、典型的には汎用計算機等であるが、これに限らず、サーバー装置、携帯電話端末、スマートフォン端末、タブレット端末、PDA(Personal Digital Assistant)端末、眼鏡型あるいは時計型等のウェアラブル端末等の電子情報端末であってもよい。
図4は、工程別3D作業指示生成装置のハードウェア構成の例を示す図である。工程別3D作業指示生成装置100は、ディスプレイ等の表示装置171と、CD(Compact Disc)−ROM(Read Only Memory)やDVD(Digital Versatile Disk)−ROM等に対して読み書き処理を行うROM172と、キーボード、マウス、タッチパネル等の操作装置173と、RAM(Random Access Memory)174と、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置175と、ネットワークカード等の通信装置176と、CPU(Central Prosessing Unit)177と、を含んで構成される。
表示装置171は、液晶ディスプレイや有機EL(Electro−Luminescence)ディスプレイ等の表示装置であり、CPU177による処理の結果を表示する。操作装置173は、タッチパネル、キーボード、マウス等であり、ユーザからの指示を受け付ける。RAM174は、補助記憶装置175に記憶されているプログラムをロードする記憶装置である。また、RAM174は、データを一時的に保存する。補助記憶装置175は、プログラムで利用する各種データを記憶する記憶装置である。通信装置176は、インターネット等のネットワーク210に接続され、ネットワーク210に接続される他の装置と各種データのやりとりを行う。CPU177は、RAM174上にロードされるプログラムに従い演算を行う制御ユニットである。
上記した工程別3D作業指示生成装置100の演算部110の各機能部は、CPU177に処理を行わせるプログラムによって実現される。このプログラムは、補助記憶装置175に記憶され、実行にあたってRAM174上にロードされ、CPU177により実行される。
また、記憶部130は、補助記憶装置175あるいはRAM174により実現される。入力部140は、操作装置173により実現される。また、表示部150は、表示装置171により実現される。通信部160は、通信装置176により実現される。
以上が、本実施形態における工程別3D作業指示生成装置100のハードウェア構成例である。しかし、これに限らず、その他の同様のハードウェアを用いて構成されるものであってもよい。
図5は、工程別3D作業指示生成処理の動作フローの例を示す図である。工程別3D作業指示生成処理は、工程別3D作業指示生成装置100が実施する。工程別3D作業指示生成処理は、工程別3D作業指示生成装置100が、3DCAD装置200から3Dモデル情報を取得し、その3Dモデル情報を用いて、部品種別の分類、部品間隣接関係(アセンブリグラフ)の生成を行い、組立シーケンス計算結果等を出力する処理である。
まず、3Dモデル情報取得部111が、3Dモデルの情報を取得する(ステップS10)。具体的には、3Dモデル情報取得部111は、3DCADデータあるいは3DCADデータから変換した3Dモデルを用いて、各モデルの形状、部品属性、部品配置関係などを取得し、記憶部130の3Dモデル情報131に記憶させる。なお、計算対象部品は1つの部品により成立するモデルに限らず、複数の部品が結合された部品から構成される組立品であるアセンブリモデルであってもよい。なお、本図のフローチャートには、3Dモデルのモデリング操作および解析対象としたモデルを指定する操作の詳細の記述は省略したが、一般的な操作に関する処理を行うものとする。
そして、部品種別分類部112が、部品種別を分類する(ステップS20)。具体的には、部品種別分類部112は、記憶部130の部品種別情報132を読み込み、指定されたモデル名の条件(例:先頭文字が指定された文字列など)や指定された部品寸法の条件(例:指定された寸法以下など)に従って、ステップS10で取得した3Dモデル情報131に格納された各構成部品について部品種別を判定する。
そして、部品間隣接関係(アセンブリグラフ)生成部113が、アセンブリグラフの生成処理を行う(ステップS30)。具体的には、部品間隣接関係(アセンブリグラフ)生成部113は、ステップS10で取得した3DCADモデル情報の部品間の隣接関係情報から、部品をノード(節)、隣接関係をエッジ(辺)としたグラフ構造表現によって部品間の関係を示す情報を生成する。以下に、アセンブリグラフについて、図6および図7を用いて説明する。
図6は、3Dモデルの例を示す図である。図6の3Dモデルでは、底板501と天板506を繋ぐ右前柱502、右後柱503、左前柱504、左後柱505で構成されたフレームに、左側面板521、裏側面板531、上面板511を組み付けた構成を備える。また、左側面板521には、部品または部組である左側下部品522、左側中央部品523、左側上部品524が組み付けられている。裏側面板531には、部品または部組である裏側下部品532、裏側中央部品533、裏側上部品534が組み付けられ、裏側中央部品533には、裏側中央部品535、裏側左部品536が組み付けられている。上面板511には、部品または部組である上側右部品512、上側左部品513が組み付けられている。なお、本説明図では、説明簡略化のため組付けに必要な締結ネジなどの図示は省略している。
図7は、アセンブリグラフの例を示す図である。アセンブリグラフとは、部品間隣接関係のグラフによる表現である。図7では、図6に示した3Dモデルの部品間隣接関係に基づき、部品をノード、部品間の隣接関係をエッジとした場合のアセンブリグラフが例示されている。ここで、部品間の隣接関係とは、部品間の接合に関して、各種の拘束関係をまとめる概念をいう。具体的には、部品の一部の面である平面と他の部品の一部の面である平面の法線が許容寸法範囲内にあり、その平面間の距離が許容寸法以内で隣接している平面拘束の関係、円筒と円筒が許容寸法以内で同軸関係にあり、その円筒の径の差が許容寸法以内にある円筒拘束の関係、平面の法線と円筒の軸が許容寸法範囲内で垂直関係にあって、円筒の軸から平面までの距離と円筒の半径が許容寸法範囲内にある円筒平面拘束関係等の関係が部品間の隣接関係である。
図7では、図6に示した各部品をノード(節)で示し、部品と部品にいずれかの隣接関係がある場合は、その部品間にエッジ(弧)をつけている。なお、アセンブリグラフでは、上記の平面拘束、円筒拘束、円筒平面拘束などそれぞれの隣接の種類に応じてエッジを区別することができるが、図7の説明においては、いずれかの隣接関係があれば、その隣接関係の区別なく一つのエッジをつけている。このアセンブリグラフにより、どの部品とどの部品に関係があり、またどの方向に隣接しているか、すなわちどの方向に分解可能かを把握することができる。
なお、図7においては、部組の例を点線で示した。例えば、上記の底板501と、天板506と、右前柱502と、右後柱503と、左前柱504と、左後柱505と、が一つの部組501Sとして構成され、総組の作業工程以前に組み立てられるとする。また、同様に上面板511と、上側右部品512と、上側左部品513と、が部組511Sとして、左側面板521と、左側下部品522と、左側中央部品523と、左側上部品524と、が部組521Sとして、裏側中央部品533と、裏側中央部品535と、裏側左部品536と、が部組533Sとして、総組の作業工程以前に組み立てられるとする。この場合、総組みの段階における部品間隣接関係をアセンブリグラフとして描画すると、図8のように上記の複数の部品で構成される部組のそれぞれが一つのノードとなる。
図8は、部組を含むアセンブリグラフの例を示す図である。図8では、図6に示す3Dモデルについて、図7の点線で示した部組を一つのノードとしてグラフ表現を縮約したアセンブリグラフの例である。ただし、同じ部品および部組においても異なる面については別のエッジで表現している。また部組内のみの部品間での隣接関係については、その工程での組立には無関係のため、部組内の部品の隣接関係は無視している。このようにすると、複数の部品を一つの部組として別の工程で組み立てる作業として区分できるため、そこで組み立てられた部組を一つの部品と同様に取り扱うことで、計算対象のアセンブリグラフは大幅に簡素化されて縮約され、計算対象のグラフが小さくなり計算を容易化できる。
また、上述のとおり、部品種別情報132を用いて、部品種別の分類S20の処理で事前に分類することで、工程別に計算する対象ノードを限定することができる。図8の部組の中で、例えば部組533Sが購入品であり計算対象外である場合は、組立シーケンス生成の計算対象外とすることができる。
対象ノードの限定について、例を挙げて説明する。例えば図6に示す3Dモデルについて、図8のアセンブリグラフが総組の組立工程を表現しているとすると、後述する工程別の組立シーケンス生成処理において、図8のアセンブリグラフを用いて組立シーケンス生成処理を行った後、部組として扱った部組511S、部組521S、部組533Sについて、順に組立シーケンス生成処理を行う。このとき、上述のように、部組533Sが購入品であって計算対象外と把握できる場合は、部組533Sの計算はスキップし、次の部組の計算を行うことができる。ここで、部組を組み立てる作業を工程とすることで、設定した部組のアセンブリグラフを順次展開して、その計算対象の部品構成すなわち工程別に組立シーケンス生成処理を行う。
なお、部品構成およびアセンブリグラフにおいて、複数の同じ部組(同じ部品構成、同じアセンブリグラフ)が存在することがある。そこで、組立シーケンスを計算した後、計算済みの部組の名称は格納しておき、以降の組立シーケンス生成処理において、同じ部組の名称がある場合は、その計算処理をスキップし、次の部組(工程)の組立シーケンス生成処理を行うことで、計算量を抑えることができる。
次に、部組・作業ステップ設定部118は、部組・作業ステップの取得、計算用部品構成の作成を行う(ステップS40)。具体的には、部組・作業ステップ設定部118は、ステップS10で取得した3Dモデル情報131に格納される部品構成に対し、計算用部品構成を作成し、工程ごとの部品構成、作業ステップを設定する。
そして、組立シーケンス生成部119は、組立シーケンスを生成する(ステップS50)。具体的には、組立シーケンス生成部119は、例えば特開2012−14569号公報あるいはWO2015/177855A1公報に開示される、組立シーケンス生成方法等の組立順序と同様にして、ステップS30で生成したアセンブリグラフを用いて分解可能な方向を特定しながら分解方向および分解順序を生成する。そして分解順序、分解方向の逆変換を行って、組立順序、組立方向を生成する。なお、組立シーケンス生成部119は、この組立シーケンスの生成において、部品および部組ごとに評価値を計算し、評価値に応じて組み立ての順序を決定する。なお、この組立の順序は、過去に類似の部組の組立を行った際の組立の順序に沿うことが効率的である。そのため、組立シーケンス生成部119は、評価値には過去に類似の部品の組立を行った際の順序に応じた重み付けを行う。
そして、3Dアニメーション生成部120は、3Dアニメーションを生成する(ステップS70)。具体的には、3Dアニメーション生成部120は、ステップS50において生成された組立シーケンスを用いて、取得した3Dモデル情報131の工程別の部品構成、各部品の順序、動き、を3Dモデルのアニメーションとして生成する。
そして、組立シーケンス生成部119は、工程別3D作業指示の計算結果を出力する(ステップS80)。具体的には、組立シーケンス生成部119は、工程別に計算した組立シーケンスと、3Dアニメーションとを用いて、3Dモデル情報131を読み出して得た3DCADの部品属性情報(モデル名、部品図番、部品タイトル、材質、体積、最大長など)を組立順序に沿って表示する作業指示として出力する工程別3D作業指示画面を生成し、出力する。
以上が、工程別3D作業指示生成処理の流れである。工程別3D作業指示生成処理によれば、工程ごとに適切な組立作業の順序を計算し、その結果を3Dアニメーションとして表現でき、効率的な工程設計を支援することができる。
図9は、組立シーケンス生成処理の動作フローを示す図である。組立シーケンス生成処理は、工程別3D作業指示生成処理のステップS50において開始される。
まず、組立シーケンス生成部119は、3Dモデル情報取得部111にて得た3Dモデル情報131、計算条件情報134を取得する(ステップS51)。
そして、組立シーケンス生成部119は、部品間隣接関係(アセンブリグラフ)生成部113にて得た、部品間隣接関係の情報を取得する(ステップS52)。
そして、組立シーケンス生成部119は、部組・作業ステップ設定部118にて設定した部組・作業ステップに従い、工程と、工程ごとの作業ステップを取得する(ステップS53)。これにより3Dモデル情報131の計算用部品構成を作成する。
そして、組立シーケンス生成部119は、工程ごと(部組ごと)にステップS55〜ステップS61の処理を繰り返し処理する(ステップS54、ステップS62)。
具体的には、組立シーケンス生成部119は、3Dモデル情報131の計算用部品構成を参照して、階層ごとに、当該階層に含まれる部品あるいは部組を特定し、階層ごとに組立シーケンスを生成する。例えば、図8で示したアセンブリの例のように、組立シーケンス生成部119は、まずは製品の最上位階層にあたる総組の組立工程についての組立シーケンスを生成する。そして、組立シーケンス生成部119は、順次その部品構成内で扱っている部組を選択し、その部組自体を計算用部品構成としてアセンブリグラフを用いて組立シーケンスを生成する。なお、組立シーケンス生成部119は、より上位の階層から順次組立シーケンスを生成することとし、また組立シーケンス生成済みの部組のID、名称は記憶しておく。
まず、組立シーケンス生成部119は、選択している部組について、計算対象の部組か否かを判定する(ステップS55)。具体的には、組立シーケンス生成部119は、当該部組について、3Dモデル情報131の計算対象外(フラグ)を参照して、その値が計算対象外の部組であるか否かを判定する。計算対象の部組でない場合(ステップS55にて「No」の場合)には、組立シーケンス生成部119は、その組立シーケンスの生成をスキップし、次の部組の計算を行う。なお、総組の組立工程、すなわち最上位の階層においては、この判定はスキップしてもよい。
計算対象の部組である(ステップS55にて「Yes」の)場合、組立シーケンス生成部119は、選択している部組について、計算済みの部組と異なる部組か否かを判定する(ステップS56)。具体的には、組立シーケンス生成部119は、選択している部組が、既にステップS55〜S61の処理対象となった部組と同じ名称か否かを判定する。既に同じ部組が存在する場合(ステップS56にて「No」の場合)には、その組立シーケンスの生成をスキップし、次の部組の計算を行う。なお、総組の組立工程、すなわち最上位の階層においては、この判定はスキップしてもよい。
そして、組立シーケンス生成部119は、ベース部品を設定する(ステップS57)。具体的には、組立シーケンス生成部119は、3Dモデル情報131の計算用部品構成において、ベース部品(フラグ)を参照して、選択している部組を構成する部品のうちベース部品のフラグがあるものを抽出してその一つをベース部品とする。ただし、ベース部品フラグがいずれの部品にも指定されていない場合は、組立シーケンス生成部119は、3Dモデル情報131の部品属性の体積、表面積、最大長の大きい部品を優先する、あるいは部品間隣接関係の隣接関係が多い部品を優先する、などの計算条件情報134のルール設定を読み込み、ベース部品を設定する。
そして、組立シーケンス生成部119は、作業ステップを設定する(ステップS58)。具体的には、組立シーケンス生成部119は、3Dモデル情報131の計算用部品構成において、作業ステップNoを読み出す。ここで、前述のベース部品と作業ステップについて、図6の3Dモデルおよび図7のアセンブリグラフをもとに、ベース部品と作業ステップの表現を追加したアセンブリグラフの例として作成した図10を用いて具体的に説明する。
図10は、ベース部品と作業ステップを含むアセンブリグラフの例を示す図である。図10では、図7のアセンブリグラフに対し、底板501と、天板506と、右前柱502と、右後柱503と、左前柱504と、左後柱505と、が一つの部組501Sとされ、裏側中央部品533と、裏側中央部品535と、裏側左部品536と、が部組533Sとされている。
ステップS57のベース部品の設定処理においては、組立シーケンス生成部119は、3Dモデル情報131の部品属性や部品間隣接関係の情報を用いて、部組501Sをベース部品として選定するものとする。組立シーケンス生成部119は、ベース部品は組立の際に最初に配置する部品であるために、ベース部品を最初の作業ステップとして設定する。その他の作業ステップについては、組立シーケンス生成部119は、設定したベース部品に対しての部品間隣接関係および部品配置情報、部品属性をもとに、作業の区分を行った後に順に割付ける。
図7、図10の例では、組立シーケンス生成部119は、部品間の隣接関係を参照して、その位置上の纏まりやベース部品に対する隣接方向(X軸方向、Y軸方向、Z軸方向)から大きく3つの作業区分を設定する。この作業区分の設定において、組立シーケンス生成部119は、3Dモデル情報131を参照して、作業区分に含まれる部品数、部品の総体積、部品全体での重心、部品全体でのバウンディングボックスなど配置関係等の優先順位を特定し、作業区分を付番する。例えば、組立シーケンス生成部119は、作業区分全体の体積が大きく重心が下側に配置されたものを優先して組立作業の順番とし、作業区分に付番する。
そして、組立シーケンス生成部119は、ノード評価値を算出する(ステップS59)。ここで、ノード評価値とは、例えばWO2015/177855A1公報に開示される組立シーケンス生成方法において用いられるノード評価値と同様の指標である。そのノード評価値の一要素として、上述のベース部品の作業ステップを付加する。この作業ステップを付加することで、計算対象のアセンブリグラフの優先順位を作業区分内に限定することができ、大規模なモデルを対象とした組立シーケンス生成処理において、計算が容易となる。なお上記組立シーケンス生成方法においては、まず分解順序を探索するため、設定した作業ステップの逆順となる分解順番をノード評価値として付加し、後述の分解順序・分解可能部品の探索を行う方法が考えられる。
そして、組立シーケンス生成部119は、分解順序探索・分解可能部品判定を行う(ステップS60)。具体的には、組立シーケンス生成部119は、部品の配置関係および隣接関係を示すアセンブリグラフ情報と、3Dモデル情報131と、を用いて、分解動作上の部品間の干渉の有無を計算し、干渉のない分解運動ベクトルを導出し、分解順序探索・分解可能部品判定の処理を行う。この処理において、組立シーケンス生成部119は、ノード評価値の順に分解順序の探索と、部品の分解可否の判定を行う。
そして、組立シーケンス生成部119は、組立順序・動作への変換を行う(ステップS61)。具体的には、組立シーケンス生成部119は、生成された分解順序を逆順にして組立順序に変換し、分解運動ベクトルの符号を反転することにより組立動作に変換し、組立順序・動作を生成する。ここで、計算条件情報に従い、複数の組立順序案が導出されるようにしてもよい。
そして、組立シーケンス生成部119は、全ての工程の計算が完了したか否か判定する(ステップS62)。具体的には、組立シーケンス生成部119は、全ての工程(部組)の計算が完了したか否かを判定し、計算対象の部組がある場合は、次の部組について、ステップS54に戻り処理を続け、全ての工程の計算を確認して、計算完了とする。
以上が、組立シーケンス生成処理の処理フローである。組立シーケンス生成処理によれば、計算用部品構成の最も上位の階層からその階層下にある部組について、計算対象の部組を順次、計算用部品構成として設定して工程を自動展開し、設定したベース部品、作業ステップを考慮した上での組立シーケンス生成処理を工程別に計算できる。
図11は、計算用部品構成の設定定義画面の例を示す図である。より詳しくは、設定定義画面400は、工程別3D作業指示生成装置100における部品構成編集部115、部組・作業ステップ設定部118によって表示される設定定義画面の例である。
設定定義画面400の操作メニューとしては、主に「ファイル」400a、「3D選択」400b、「作業ステップ生成」400c、「作業ステップNo.追加」400d、「組立シーケンス生成」400e、などがあるとよい。
画面上のウィンドウとしては、主に3Dモデル情報131の3DCADから取得した部品構成情報を示す「3DCAD部品構成」401ウィンドウ、計算用部品構成を示す「計算用部品構成」402ウィンドウ、3Dモデル形状を示す「3Dモデル」403ウィンドウ、3Dモデルの部品属性を示す「3Dモデル情報」404ウィンドウがあるとよい。
ここで、「ファイル」400aへの操作入力は、ファイルを選択して開いたり、画面上で編集したファイルを保存したりする操作を可能にする。
「3D選択」400bへの操作入力は、「3DCAD部品構成」401または「計算用部品構成」402のツリー上の部品名を選択した際に3Dモデルをハイライト表示する、あるいは選択した部品のみを表示する、選択した部品以外を表示するなど、ツリーと3Dモデル形状との連携操作による表示切り換え操作を可能とする。なお、「3Dモデル」403ウィンドウにて部品を選択して、それぞれの部品構成ツリー上の部品名をハイライト表示するものであってもよい。
「作業ステップ生成」400cへの操作入力があると、3Dモデル情報131からベース部品フラグの設定有無によりベース部品を判定し(ステップS57の処理)、また3Dモデル情報131の作業ステップNo.から作業ステップNo.を把握する(ステップS58の処理)。
「作業ステップNo.追加」400dへの操作入力があると、「計算用部品構成」402のツリー上において、選択されたノードに対し、新たに作業ステップNo.を追加する。
「組立シーケンス生成」400eへの操作入力があると、設定定義画面400にて設定した、計算用部品構成および部組・作業ステップの設定を3Dモデル情報131の計算用部品構成の各項目に格納し、その内容をもとに、組立シーケンス生成の計算が実行される。
「3DCAD部品構成」401ウィンドウのツリーは、3DCADの部品構成ツリーを表示する。この図で、黒い四角は、部組として扱うノードを示す。図10のアセンブリグラフの説明と同様に、部組501Sと部組533Sとを部組として扱う設定とした例である。部組として扱うかどうかを部品種別分類部112にて処理するものであるが、必要に応じて自動処理した結果を設定定義画面400で確認し、部組で扱うか否か設定を変更可能とする。変更の方法としては例えば、ツリー上で親ノードをマウスで選択し、右クリックメニューなどにて設定変更するようにするとよい。
「計算用部品構成」402ウィンドウのツリーは、組立シーケンス生成の計算のための部品構成ツリーである。全体の部品構成ツリーに対し、シーケンス上で前後に動かす単位でのノードに限定した上で、大まかな組立作業ステップの順番を定義したツリーである。この画面上では作業ステップNo.を三角で示しており、その階層下にある部品または部組ノードがその作業ステップで行う部品を示している。ただし、この「計算用部品構成」402のツリーは、まだ組立シーケンス生成の計算を行う前の状態を示しており、このツリーでは、部品および部組ノードに対し、作業ステップの区分けだけを行っている状態が示されている。なお、作業ステップNo.およびその区分けされた部品は、前述の処理で画面のように自動区分けされるが、必要に応じて、設定定義画面400にて、作業ステップNo.ノードの順序を入れ替えたり、その作業ステップNo.階層下の部品構成を変更できるようにすることが望ましい。
「3Dモデル」403ウィンドウでは、3Dモデル選択の操作に従い、それぞれの部品構成ツリーで選択された部品および部組、または作業ステップNo.ノードの表示、非表示、ハイライト表示を行う。また逆に「3Dモデル」403ウィンドウ内の部品を選択し、それぞれの部品構成ツリーをハイライト表示し、編集の操作を容易にする。なお、3Dモデルは、前述のとおり、3DCADから変換した3Dモデル形状ファイルを表示しており、3Dモデル情報131に従い、それぞれの部品に対し部品単位で操作可能である。また3Dモデルのビューワーでもあり、回転、拡大縮小、移動操作もできる。
「3Dモデル情報」404ウィンドウでは、それぞれの部品構成ツリーまたは3Dモデルの操作に従い、選択された部品名に対する3Dモデルの詳細情報を出力する。この3Dモデルの詳細情報とは、例えば3Dモデル情報131のうち、部品図番、体積、表面積、材質、最大長、重心、などである。また、工程別3D作業指示として、組立順序に沿った作業指示を行う際に、具体的な作業を作業者に指示する必要がある。この指示情報として、3Dモデル情報131の部品属性の注記の欄の文字列を追加、編集可能としてもよい。なお、部品単位での作業注記のほか、部組単位の作業注記も追加するとよい。
3Dモデル情報131の部品属性は、3DCADから取得した部品構成すべてのノードすなわち部品および部組それぞれにIDを設け取得している。さらに、計算用部品構成を作成した際には、その作成した作業ステップNo.のノードについても部品IDを新たに作成し、その作業ステップNo.の部品構成全体にて、部品属性、形状特徴、部品配置の情報を格納するとよい。これにより、作業ステップNo.の領域全体を容易に把握でき、また作業ステップNo.ごとの注記も追記できる。
図12は、作業指示の計算結果確認画面の例を示す図である。計算結果確認画面600は、工程別3D作業指示生成装置100にて計算した結果を確認するための画面の例である。
操作メニューとしては、主に「ファイル」600a、「3Dモデル選択」600b、工程選択ドロップダウンリスト600c、組立シーケンス再生操作ボタン600d、などがあるとよい。画面上のウィンドウとしては、主に計算結果の組立シーケンスをツリーで示す「組立シーケンス」601ウィンドウ、組立シーケンスのツリーと連動して3Dモデル形状を表示する「3Dモデル」602ウィンドウ、選択されたノードの作業指示情報を表示する「作業指示情報」603ウィンドウがある。
「ファイル」600aへの操作入力は、ファイルを選択して開いたり、画面上で編集したファイルを保存したりする操作を可能にする。
「3Dモデル選択」600bへの操作入力は、「組立シーケンス」601ウィンドウのツリー上の部品名を選択した際に3Dモデルをハイライト表示する、あるいは選択した部品のみを表示する、選択した部品以外を表示するなど、ツリーと3Dモデル形状との連携操作による表示切り換え操作を可能とする。なお、「3Dモデル」602ウィンドウにて部品を選択して、それぞれの部品構成ツリー上の部品名をハイライト表示するものであってもよい。
工程選択ドロップダウンリスト600cへの操作入力は、図9に示した工程別の組立シーケンス生成処理の結果を工程別に表示切り換え操作を可能とする。例えば、図11に示した計算用部品構成をもとに工程別組立シーケンス生成を計算した場合、部組が計算対象外でないとすると、図に示した「TopAssyProcess」の組立シーケンスの計算のあと、「501S_FrameAsm」の部組を対象にその部品属性やアセンブリグラフ等をもとに組立シーケンスの計算を行う。またその次に残りの部組である「533S_UnitAsm」についても同様に計算を行う。これらそれぞれの部組(工程)の計算結果を工程選択ドロップダウンリスト600cで切り替えて表示できる。
組立シーケンス再生操作ボタン600dへの操作入力は、3Dアニメーションの再生、停止、逆再生を可能とする。本例では組立シーケンス601のツリーの左にバーを設けたが、例えば、再生時に動く部品ノードに沿って、どの部品のアニメーションかをツリー上で明示するとよい。また「3Dモデル」602では動いている部品をハイライト表示し、動作方向を軌跡線や矢印で明示するとよい。また逆再生は分解シーケンスを3Dアニメーション再生する。その他、作業ステップNo.ごとにスキップ再生する操作ボタン、最初のノードに戻るボタン、最後のノードにスキップするボタン、再生速度を変更する操作などを設けてもよい。
「組立シーケンス」601ウィンドウは、組立シーケンスの計算結果をツリー上に表現したものである。上記のように3Dアニメーションの再生などで計算結果を確認し、必要に応じて、組立シーケンスのツリー上で部品ノードの順序を並べ替えたり、作業ステップNo.ノードを並べ替えたり、その中の部品構成を変更したりして編集する。編集結果は、3Dアニメーションの再生などで確認する。
「3Dモデル」602ウィンドウは前述のとおり、「組立シーケンス」のツリーと連動して3Dモデル形状を表示したり、組立シーケンス再生操作ボタン600dへの操作に従い、アニメーション動作を表示したりする。
「作業指示情報」603ウィンドウは、3Dモデル情報131に格納された作業指示情報を表示する。組み付け動作中の部品属性のほか、例えばアセンブリグラフの隣接関係をもとに、被組み付け部品についても明示してもよい。なお必要に応じて、注記情報などテキスト情報を編集して保存しなおしてもよい。
上記のように計算結果は確認され、編集された結果をファイル保存することができる。この保存したデータは、組立順序作成済みの事例データ135として記憶される。すなわち、事例データ135は、部品および部組ごとに過去に実施した際の作業ステップ情報であるといえる。
図12に示された3Dアニメーションは、部品それぞれの動きを示すものとして生成するものであるが、作業ステップごとに纏めて複数の部品を表示させることも可能である。また、3Dアニメーションを逐次再生することにより3Dモデル上での部品の干渉の有無等の確認を行うことができる。また3Dモデルの一般的なビューイング機能として、指定したパーツの表示/非表示の切り替え、断面図の表示、図面の出力、静的な干渉解析、動作上での干渉解析を行うことで、自動生成した作業計画の検証を行うことができる。
以上が、本願に係る発明を適用した実施形態の説明である。本実施形態によれば、3Dモデル情報を用いて、計算用の部組、部品構成、作業ステップを計算し、その計算用部品構成をもとに組立シーケンスを計算し、工程別の組立シーケンスを3Dアニメーションにより表示することができる。なお、3Dアニメーションをもとに、作業ステップごとあるいは組立動作ごとの2D画像出力を行うものとしてもよいし、その静止画とともに作業指示情報のテキスト出力を行うものとしても良い。
図13は、事例データをもとにした工程別3D作業指示生成の処理例を示す図である。図13に示すように、本発明に係る第二の実施形態を適用した工程別3D作業指示生成システム1においては、事例データをもとにした工程別3D作業指示生成処理を行うことができる。上述の第一の実施形態においては、図5、図9、図11の説明では、計算対象の3Dモデル情報の部品属性、部品構成やアセンブリグラフをもとに作業指示を生成する方法を説明した。
[第二の実施形態]第二の実施形態においては、作成された事例データをもとに、その事例データに含まれる部品、部組の特徴ベクトルにもとづき、類似した部品、部組を識別し、その事例データの工程(部組)、作業ステップを参照することで、より効率の良い作業指示の生成を行うことができる。
なお、第二の実施形態は、一部を除き基本的に第一の実施形態と略同様であり、差異について以下に説明する。
事例データ登録処理700は、上述の図12の計算結果確認画面600上にて指示を受けて行われるものである。これにより、組立順序作成済みの事例データ135に工程別3D作業指示データが3Dモデル情報131とともに格納される。例えば作成したファイルを指定フォルダに保存する、あるいはデータベースに保存するものであってもよい。
そして、複数の事例データに対し、事例データ分析部114はベクトル分析を行い、事例データに含まれる部品、部組の特徴ベクトルを出力する(ステップS114)。図14に事例データの分析対象となる特徴ベクトル項目の例を示す。
図14は、事例データの分析における特徴ベクトルの例を示す図である。この特徴ベクトルの一覧は、例えば計算結果確認画面600の「組立シーケンス」601ウィンドウにおいて詳細として表示されるものであってもよい。
特徴ベクトル項目の「No.1」は工程名であり、作成した組立シーケンスツリーのトップの名称である。ただし、総組の工程名は製品の名称であり、その階層下の工程名は部組の名称と同値である。特徴ベクトル項目の「No.2」は作業ステップの名称、順序である。特徴ベクトル項目の「No.3」はモデル名であり、部品、部組の名称である。なお、部組の名称とは工程名と同値である。特徴ベクトル項目の「No.4」はノード種別であり、そのノードが部品か部組かを特定する情報である。特徴ベクトル項目の「No.5」は組立順序番号であり、その組立シーケンスツリーの中での組立の順序である。特徴ベクトル項目の「No.6」、「No.7」、「No.8」、「No.9」はそれぞれ、バウンディングボックス、中心、重心、組み付けの最初の部品となるベース部品に対する隣接方向、である。すなわち、これらの項目は幾何情報をベクトル化したものである。部品、部組ノードの場合は、これらの情報を3Dモデル情報131から取得し、作業ステップのノードの場合は、その階層下に含まれる部品、部組全体のバウンディングボックス領域をワールド座標系に基づき計算した座標およびベクトルから取得する。
特徴ベクトル項目の「No.11」、「No.12」、「No.13」、「No.14」、「No.15」、「No.16」、「No.17」はそれぞれ、バウンディングボックス体積、最大長、体積、表面積、体積/バウンディングボックス体積、表面積/体積、表面積/バウンディングボックス体積である。すなわち、これらの項目は幾何情報をベクトル化したものである。部品、部組ノードの場合は、3Dモデル情報131から取得し、作業ステップのノードの場合は、その階層下に含まれる部品、部組全体から計算した値である。特徴ベクトル項目の「No.18」は、工程別のアセンブリグラフから自ノードに隣接したエッジ数を計算した値である。
事例データ分析部114は、事例データの特徴ベクトルを用いて、例えばSVM(サポートベクターマシン)により、計算対象の3Dモデル情報の特徴ベクトルから、事例データの「工程名とノード種別(部品または部組)」を識別する。以下に、その具体的な方法を説明する。
事例データ分析部114は、図14に示した特徴ベクトルの「工程名とノード種別」の組合せた識別情報を一つのクラスラベル値として、図14の特徴ベクトル項目の「No.11」以降の特徴ベクトルを学習データとしてSVMアルゴリズムにて学習モデルを作成する。SVMの学習モデル生成においては例えばlibsvmを用いて、SVMの種類としてC−SVC、カーネル関数の種類としてRBF、などを選定する。この学習モデルをもとに、事例データ分析部114は、計算対象の3Dモデルの特徴ベクトルを参照して、事例データの「工程名とノード種別」に識別した特徴ベクトルを把握する。この特徴ベクトルを比較することにより、事例データに類似した部品および部組を分類できる。これにより、事例データ分析部114は、部品および部組で扱う際の工程(部組)を把握することができ、その部品構成の親子関係を辿ることができれば「計算用部品構成」を生成できる。
また、事例データ分析部114は、事例データの「作業ステップの名称、順序」または「組立順序番号」に着目して、組立の最初となるベース部品を識別する。事例データ分析部114は、図14に示した特徴ベクトルの「作業ステップの順番」の1番、または「組立順序番号」の1番(作業ステップノードは除く)をベース部品として識別するためのクラスラベル値を作成し、図14のNo.11以降の特徴ベクトルを学習データとして上記同様に計算対象の3Dモデル情報131の特徴ベクトルからベース部品を識別する。これにより識別されたベース部品にて、例えば作業ステップ番号1番の場合、同じ工程でその他の作業ステップ番号について、No.6「作業ステップノードのバウンディングボックス」、No.9「ベース部品に対する隣接方向」を把握することができる。組立シーケンス生成部119は、ステップS58において、この事例データから把握したベース部品に対する作業区分を計算対象の3Dモデル情報に当てはめて作業区分を設ける。
なお、上記の事例データの特徴ベクトルの識別アルゴリズムとしては、SVMの例を示したが、この方法に限定されるものではなく、ユークリッド距離、特徴ベクトルの内積、あるいはクラスタリングなどを用いて識別してもよい。例えば、部組・作業ステップ設定部118は、部組の幾何情報に係るベクトルの類似性を、部組の体積と、外包直方体の体積に対する容積率と、を用いて評価する方法として、SVM、ユークリッド距離、内積、クラスタリングにより測定し、類似する事例データを特定するようにしてもよいし、あるいは一定以上の類似性のある複数の事例データのいずれを採用するか画面に提示して選択入力を受け付けることで特定するようにしてもよい。図15に、事例データをもとに作業ステップNo.を区分けした結果を反映したアセンブリモデルの例を示す。
図15は、事例データを用いて分析したアセンブリグラフの例を示す図である。この場合、図10に示したアセンブリモデルのように3Dモデル情報と計算条件情報のみから計算したものとは異なり、事例データを用いることでベース部品に対し上部を先に組み付けたあと、奥面、左側面の順の組み付けを設定可能となる。このように、事例データの分析、学習にもとづくことで、既に実績のある作業ステップにもとづき、組立順序を自動計算することができる。
図13の事例データをもとにした工程別作業指示生成の処理フローのステップS42では、事例データ分析ステップS114にて得た上記特徴ベクトルおよび事例データの学習モデルをもとに、計算対象の3Dモデル情報131の部品、部組の特徴ベクトルを用いて、事例データにおける識別キー情報「工程名とノード種別」や「ベース部品」と同じと識別した部品、部組のノードを把握することで、既に実績のある作業ステップに基づいた作業指示を生成することができる。より具体的には、部組・作業ステップ設定部118は、ベース部品に対する位置情報を用いて部組を含む作業区分を複数設定し、作業区分ごとに過去に実施した類似する作業ステップを特定し、過去に実施した作業ステップの順に応じて作業ステップを設定する。
さらに、ベース部品設定部116は、作業区分ごとに、部品および部組間の隣接関係情報を用いて、当該作業区分に含まれる部組に対して作業区分のベース部品を再帰的に設定する。
部組・作業ステップ設定部118は、さらに、作業区分のベース部品に対する位置情報を用いて部組を含む作業区分を再帰的に設定し、当該作業区分ごとに、過去に実施した類似の作業ステップの順と類似する作業ステップを設定する。これにより、過去の類似の作業ステップを活用して階層ごとの作業ステップの順を決定することができる。
また図13の事例データをもとにした工程別作業指示生成の画面の例としては、図11と同様の設定定義画面でよく、「作業ステップ生成」400cの操作においてベース部品および作業ステップの区分け計算を行う際に、事例データの学習モデルを参照して、上記の処理のもと、事例データの部品および部組と類似したノードをもとに識別し、ベース部品、作業ステップを計算することができる。また、このとき、類似した事例データの検索結果として、計算結果確認画面600と同様な画面にて3Dモデル形状、組立シーケンスのツリー、3Dアニメーションなど工程別3D作業指示の情報を画面上に表示するとよい。
以上が、第二の実施形態に係る工程別3D作業指示生成システムである。なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。実施例の構成の一部を他の構成に置き換えることが可能であり、また、実施例の構成に他の構成を加えることも可能である。また、実施例の構成の一部について、削除をすることも可能である。
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
なお、上述した実施形態にかかる制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えても良い。以上、本発明について、実施形態を中心に説明した。