以下に、本願の開示する設計支援装置、設計支援プログラムおよび設計支援方法の各実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
実施例1に係る設計支援装置について説明する。図1は、実施例1に係る設計支援装置が適用されるシステム構成の一例を示す図である。図1の例では、システム1は、設計支援装置10と、メカニカルCADシステム20と、プリント板CADシステム21とを有する。設計支援装置10と、メカニカルCADシステム20およびプリント板CADシステム21とは、通信可能である。
メカニカルCADシステム20は、プリント板に搭載される機械製品、機械ユニットなどの機械設計を行う。メカニカルCADシステム20は、設計対象部品である筐体、電子部品、機構部品などの部品が定義されたCADデータを生成する。このCADデータによって、部品モデルが定義される。すなわち、メカニカルCADシステム20は、部品モデルを示すCADデータを生成する。なお、以下の説明では、部品モデルを示すCADデータを、「第一のデータ」と表記する。
図2は、第一のデータが示す部品モデルの一例を示す図である。図2の例では、部品モデル22は、部品本体22aと、フットプリントに搭載される端子22bとを有する。
プリント板CADシステム21は、設計対象基板であるプリント板の外形や、プリント板上の配線パターンなどの電気設計を行ってプリント板に関するCADデータを生成する。このCADデータによって、プリント板モデルが定義される。すなわち、プリント板CAD21は、プリント板モデルを示すCADデータを生成する。ここで、配線パターンには、電子部品などの端子が載置されて半田などにより取り付けられるフットプリントなどが含まれる。なお、以下の説明では、プリント板モデルを示すCADデータを、「第二のデータ」と表記する場合がある。
設計支援装置10は、メカニカルCADシステム20およびプリント板CADシステム21のそれぞれから第一のデータおよび第二のデータを取得する。そして、設計支援装置10は、部品モデルの複数の複数の最外側平面における部品モデルの特徴を、複数の最外側平面ごとに抽出する。そして、設計支援装置10は、抽出した特徴が所定の条件に合致する場合に、合致する特徴に対応する最外側平面を、第二のデータが示すプリント板モデルに搭載する側の面として決定する。このように、設計支援装置10は、自動的な処理によって、部品モデルのプリント板モデルに搭載される側の面を決定する。したがって、設計支援装置10によれば、ユーザなどにより部品モデルのプリント板モデルに搭載される側の面を決定する工数が削減されるため、簡易にCADデータの連携を図ることができる。また、以下の説明では、プリント板モデルに搭載する側の面を、「搭載面」と表記する場合がある。
[設計支援装置の機能構成]
図1に示すように、設計支援装置10は、入力部11と、表示部12と、I/F(InterFace)13と、記憶部14と、制御部15とを有する。
入力部11は、各種情報を制御部15に入力する。例えば、入力部11は、ユーザから、メカニカルCADシステム20およびプリント板CADシステム21からCADデータを取得する指示を受け付けて、受け付けた指示を制御部15に入力する。また、入力部11は、ユーザから、後述の連携処理などの各処理を実行する各指示を受け付けて、受け付けた指示を制御部15に入力する。入力部11のデバイスの一例としては、マウスやキーボードなどの操作受付デバイスなどが挙げられる。
出力部12は、各種の情報を出力する。例えば、出力部12は、液晶ディスプレイなどであり、後述の決定部15cによって、後述する搭載面を指定するための画面を表示する。また、出力部12は、後述の配置部15eによって、部品モデルがプリント板モデルに配置された組み立てモデルを表示する。
I/F13は、各装置間の通信を行うためのものである。例えば、I/F13には、設計支援装置10の制御部15と、メカニカルCADシステム20およびプリント板CADシステム21とが図示しないネットワークを介して接続される。これにより、設計支援装置10と、メカニカルCADシステム20およびプリント板CADシステム21とが通信を行うことができる。
記憶部14は、各種情報を記憶する。例えば、記憶部14は、第一のデータベース(Data Base)14aと、第二のデータベース14bと、候補面情報14cとを記憶する。以下の説明では、データベースを「DB」と表記する。
第一のDB14aには、第一のデータが登録される。例えば、第一のDB14aには、後述の取得部15aによりメカニカルCADシステム20から取得された第一のデータが登録される。
第二のDB14bには、第二のデータが登録される。例えば、第二のDB14bには、後述の取得部15aによりプリント板CADシステム21から取得された第二のデータが登録される。
候補面情報14cには、後述の搭載面の候補となる最外側平面の識別情報が登録される。例えば、候補面情報14cには、後述の決定部15cにより最外側平面の識別情報が登録される。
記憶部14は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部14は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
制御部15は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図1に示すように、制御部15は、取得部15aと、抽出部15bと、決定部15cと、生成部15dと、配置部15eとを有する。
取得部15aは、メカニカルCADシステム20およびプリント板CADシステム21のそれぞれから第一のデータおよび第二のデータを取得する。例えば、取得部15aは、入力部11から、メカニカルCADシステム20およびプリント板CADシステム21からCADデータを取得する指示を受信すると、次のような処理を行う。すなわち、取得部15aは、メカニカルCADシステム20に第一のデータを設計支援装置10に送信する指示を、I/F13を介して送信する。これにより、メカニカルCADシステム20から第一のデータが設計支援装置10に送信される。また、取得部15aは、プリント板CADシステム21に第二のデータを設計支援装置10に送信する指示を、I/F13を介して送信する。これにより、メカニカルCADシステム20から第一のデータが設計支援装置10に送信される。このようにして、取得部15aは、第一のデータおよび第二のデータを取得する。なお、取得部15aは、所定時間間隔、例えば、1時間ごとに、メカニカルCADシステム20に第一のデータを設計支援装置10に送信する指示、および、プリント板CADシステム21に第二のデータを設計支援装置10に送信する指示を送信することもできる。
また、取得部15aは、受信した第一のデータを第一のDB14aに登録し、第二のデータを第二のDB14bに登録する。また、入力部11から、連携処理を実行する指示を受信すると、取得部15aは、第一のDB14aから第一のデータを取得し、第二のDBから第二のデータを取得する。
抽出部15bは、部品モデルの複数の複数の最外側平面における部品モデルの特徴を、複数の最外側平面ごとに抽出する。
具体例を挙げて説明する。抽出部15bは、取得部15aにより第一のDB14aから取得された第一のデータが示す電子部品モデルの複数の面を抽出する。図2の例では、抽出部15bは、電子部品モデルである部品モデル22の部品本体22aの6つの面を抽出する。
そして、抽出部15bは、抽出した複数の面の中から、最大の面積の面を抽出する。図2の例では、抽出部15bは、6つの面のうち、面23を抽出する。続いて、抽出部15bは、抽出した最大の面積の面を含む平面を、第一基準平面として設定および定義する。図3は、実施例1に係る設計支援装置により実行される処理の一例を説明するための図である。図3の例では、抽出部15bは、面23を含む平面24を第一基準平面として設定および定義する。
そして、抽出部15bは、第一基準平面24と直交し、かつ、互いに直交する第二基準平面および第三基準平面を設定および定義する。ここで、第二基準平面および第三基準平面のそれぞれは、抽出した電子部品モデルの複数の面のいずれかに対して、平行な面である。図3の例では、抽出部15bは、第一基準平面24と直交し、かつ互いに直交する第二基準平面25および第三基準平面26を設定および定義する。
続いて、抽出部15bは、第一のデータに基づいて、電子部品の部品モデルの最も外側の位置を取得する。なお、以下の説明では、部品モデルの最も外側の位置を、「最外形位置」と表記する。図4は、実施例1に係る設計支援装置により実行される処理の一例を説明するための図である。図4の例では、抽出部15bは、部品モデルに定義された三次元の直交座標系におけるX軸、Y軸、Z軸の各軸について、最大座標値および最小座標値の6箇所の位置27a〜27fを、最外形位置として取得する。
そして、抽出部15bは、取得した最外形位置において、第一基準平面、第二基準平面および第三基準平面のいずれか1つに平行な面を設定および定義する。なお、以下の説明では、この平行な面を「最外側平面」と表記する。図4の例では、抽出部15bは、Z軸の最大座標値27aを含み、かつ第一基準平面24に平行な最外側平面28aを設定および定義する。また、図4の例では、抽出部15bは、Z軸の最小座標値27bを含み、かつ第一基準平面24に平行な最外側平面28bを設定および定義する。また、図4の例では、抽出部15bは、X軸の最小座標値27cを含み、かつ第三基準平面26に平行な最外側平面28cを設定および定義する。また、図4の例では、抽出部15bは、X軸の最大座標値27dを含み、かつ第三基準平面26に平行な最外側平面28dを設定および定義する。また、図4の例では、抽出部15bは、Y軸の最大座標値27eを含み、かつ第二基準平面25に平行な最外側平面28eを設定および定義する。また、図4の例では、抽出部15bは、Y軸の最小座標値27fを含み、かつ第三基準平面26に平行な最外側平面28fを設定および定義する。
そして、抽出部15bは、部品モデルの最外側平面における閉じた形状を、最外側平面ごとに取得する。図5および図6は、実施例1に係る設計支援装置により実行される処理の一例を説明するための図である。図6の例では、図5の例における各矢印a〜fの各方向に対応する部品モデル22の各最外側平面28a〜28fにおける特徴の一例が示されている。図6の例は、最外側平面28aにおける部品モデル22の形状29aを示す。また、図6の例は、最外側平面28bにおける部品モデル22の形状29bを示す。また、図6の例は、最外側平面28cにおける部品モデル22の形状29cを示す。また、図6の例は、最外側平面28dにおける部品モデル22の形状29dを示す。また、図6の例は、最外側平面28eにおける部品モデル22の形状29eを示す。また、図6の例は、最外側平面28fにおける部品モデル22の形状29fを示す。
図6の例では、抽出部15bは、最外側平面28a〜28fのそれぞれに対して、部品モデル22の形状29a〜29fのそれぞれを取得する。
続いて、抽出部15bは、各形状の面積を、最外側平面ごとに算出する。図6の例では、抽出部15bは、最外側平面28aにおける閉じた形状29aの面積を30[mm2]と算出する。また、図6の例では、抽出部15bは、最外側平面28bにおける閉じた形状29bの8個の形状のそれぞれの面積を2.5[mm2]と算出する。また、図6の例では、抽出部15bは、最外側平面28cにおける閉じた形状29cの4個の形状のそれぞれの面積を2[mm2]と算出する。また、図6の例では、抽出部15bは、最外側平面28dにおける閉じた形状29dの4個の形状のそれぞれの面積を2[mm2]と算出する。また、図6の例では、抽出部15bは、最外側平面28eにおける閉じた形状29eの面積を10[mm2]と算出する。また、図6の例では、抽出部15bは、最外側平面28fにおける閉じた形状29fの面積を10[mm2]と算出する。
続いて、抽出部15bは、各形状の面積の合計を、最外側平面ごとに算出する。以下の説明では、面積の合計を、「合計面積」と表記する。図6の例では、抽出部15bは、最外側平面28aにおける閉じた形状29aの合計面積を30[mm2]と算出する。また、図6の例では、抽出部15bは、最外側平面28bにおける閉じた形状29bの合計面積を20[mm2]と算出する。また、図6の例では、抽出部15bは、最外側平面28cにおける閉じた形状29cの合計面積を8[mm2]と算出する。また、図6の例では、抽出部15bは、最外側平面28dにおける閉じた形状29dの合計面積を8[mm2]と算出する。また、図6の例では、抽出部15bは、最外側平面28eにおける閉じた形状29eの合計面積を10[mm2]と算出する。また、図6の例では、抽出部15bは、最外側平面28fにおける閉じた形状29fの合計面積を10[mm2]と算出する。
また、抽出部15bは、部品モデルを最外側平面に投影させて、投影された領域の面積を複数の最外側平面ごとに算出する。図6の例では、抽出部15bは、部品モデル22を最外側平面28a〜28fのそれぞれに投影させて、最外側平面28a〜28fのそれぞれについて、投影された領域の面積を算出する。以下の説明では、投影された領域を「投影領域」と表記する。
そして、抽出部15bは、合計面積を投影領域の面積で除した値(合計面積/投影領域の面積)が、所定値、例えば、0.1より小さいか否かを判定する。図7および図8は、実施例1に係る設計支援装置により実行される処理の一例を説明するための図である。図7の例は、位置決め用のボス30aを有する電子部品の部品モデル30を示す。図7の例では、ボス30a側の面にフットプリントに搭載される端子30bを有する。すなわち、図7の例では、ボス30側の面が搭載面である。ここで、図8に示すように、ボス30側の最外側平面31における部品モデル30の形状32は、ボス30aの先端部分となる。そのため、詳細は後述するが、部品モデルの形状として、図8に示すような形状32が抽出されると、後述の決定部15cによりボス30側の面が搭載面として決定されなくなる。これは、ボス30aなどの突起物の存在により得られた最外側平面における部品モデルの形状が、搭載面を決定する際に用いられる形状として、不適切であるからである。
そこで、抽出部15bは、このような突起物により得られた最外側平面における部品モデルの形状の面積が、投影領域の面積よりも非常に小さいことを利用して、搭載面を決定する際に用いられる形状として不適切な形状を排除する。すなわち、抽出部15bは、合計面積を投影領域の面積で除した値が、所定値より小さい場合には、取得した形状が搭載面を決定する際に用いられる形状として不適切であるため、最外側平面を部品の内側に所定量移動させて、再び、部品モデルの形状を取得する。かかる所定量の一例としては、1mmなどが挙げられる。そして、抽出部15bは、移動後の最外側平面において、上述した方法と同様の方法で、各形状の面積、合計面積などを算出する。抽出部15bは、最外側平面を内側に移動させて、最外側平面における部品モデルの形状を取得する処理を、(合計面積/投影領域の面積)が、所定値より小さくなるまで繰り返す。図9は、取得される特徴の一例を示す図である。上記のような不適切な最外側平面における部品モデルの形状を排除する結果、抽出部15bは、図9の例に示すように、最外側平面31における部品モデル30の形状として、端子30bに対応する形状33を取得する。
また、抽出部15bは、各形状の個数を、最外側平面ごとに算出する。図6の例では、抽出部15bは、最外側平面28aにおける閉じた形状29aに含まれる形状の個数を1と算出する。また、図6の例では、抽出部15bは、最外側平面28bにおける閉じた形状29bに含まれる形状の個数を8と算出する。また、図6の例では、抽出部15bは、最外側平面28cにおける閉じた形状29cに含まれる形状の個数を4と算出する。また、図6の例では、抽出部15bは、最外側平面28dにおける閉じた形状29dに含まれる形状の個数を4と算出する。また、図6の例では、抽出部15bは、最外側平面28eにおける閉じた形状29eに含まれる形状の個数を1と算出する。また、図6の例では、抽出部15bは、最外側平面28fにおける閉じた形状29fに含まれる形状の個数を1と算出する。
そして、抽出部15bは、各形状間の距離を、最外側平面ごとに算出する。図6の例では、抽出部15bは、最外側平面28a〜28fの形状29a〜29fのそれぞれに含まれる形状について、最も近い形状との距離を、形状ごとに算出する。
続いて、抽出部15bは、形状の中心位置を、最外側平面ごとに算出する。そして、抽出部15bは、投影領域の中心位置を、最外側平面ごとに算出する。図6の例では、抽出部15bは、形状29a〜29fのそれぞれについて、中心位置を算出し、最外側平面28a〜28fのそれぞれの投影領域の中心位置を算出する。図10および図11は、中心位置の一例を説明するための図である。図10の例は、形状29bの中心位置c1および最外側平面28bの投影領域の中心位置c2を示す。図10の例では、中心位置c1および中心位置c2とが同一である。これは、最外側平面28bが搭載面であり、搭載面における形状の中心位置と投影領域の中心位置とが一致することに起因する。図11の例は、形状29dの中心位置c1および最外側平面28dの投影領域の中心位置c2を示す。図11の例では、中心位置c1と中心位置c2とが同一でない。これは、最外側平面28dが搭載面でないことに起因する。
決定部15cは、抽出部15bにより抽出された特徴が所定の条件に合致する場合に、合致する特徴に対応する最外側平面を、第二のデータが示すプリント板モデルに搭載する側の面として決定する。
具体例を挙げて説明する。決定部15cは、候補面情報14cに、抽出部15bにより設定および定義された全ての最外側平面の識別情報を登録する。
そして、決定部15cは、候補面情報14cに登録された全ての最外側平面の中から平行な最外側平面のペアを決定し、それぞれのペアについて次のような処理を行う。すなわち、決定部15cは、ペアとなる2つの最外側平面の形状の個数が同一か否かを判定する。また、決定部15cは、ペアとなる2つの最外側平面のそれぞれの合計面積の比が所定範囲内となるか否かを判定する。ここで、ペアとなる2つの最外側平面のいずれかが、搭載面である場合には、ペアとなる2つの最外側平面の形状の個数は異なる。また、ペアとなる2つの最外側平面のいずれかが、搭載面である場合には、ペアとなる2つの最外側平面のそれぞれの合計面積は大きく異なり、その2つの面積の比は、所定範囲内に収まらない。そこで、決定部15cは、ペアとなる2つの最外側平面の形状の個数が同一である場合には、そのペアとなる2つの最外側平面は搭載面でないと考えられるため、ペアとなる2つの最外側平面の識別情報を候補面情報14cから削除する。また、決定部15cは、ペアとなる2つの最外側平面のそれぞれの合計面積の比が所定範囲内、例えば、0.9から1.1までの範囲内である場合には、次のような処理を行う。すなわち、決定部15cは、そのペアとなる2つの最外側平面は搭載面でないと考えられるため、ペアとなる2つの最外側平面の識別情報を候補面情報14cから削除する。
図6の例では、決定部15cは、平行な最外側平面のペアとして、最外側平面28aおよび28bのペア、最外側平面28cおよび28dのペア、最外側平面28eおよび28fのペアを決定する。そして、図6の例では、決定部15cは、最外側平面28cおよび28dのペアの各形状の個数、最外側平面28eおよび28fのペアの各形状の個数が同一であるため、候補面情報14cから、最外側平面28c、28d、28e、28fの識別情報を削除する。
そして、決定部15cは、候補面情報14cに登録された最外側平面のそれぞれについて、形状の個数が複数か否かを判定する。ここで、搭載面となる最外側平面では、複数の端子が形状として取得されるため、取得された形状が1つである場合には、その形状に対応する最外側平面は、搭載面でないと考えられる。そこで、決定部15cは、形状の個数が複数でない場合、すなわち、1つの場合には、その形状に対応する最外側平面の識別情報を候補面情報14cから削除する。
続いて、決定部15cは、候補面情報14cに登録された最外側平面の数が1つであるか否かを判定する。1つである場合には、候補面情報14cに識別情報が登録された最外側平面を搭載面として決定する。1つでない場合には、決定部15cは、候補面情報14cに登録された最外側平面のそれぞれについて、次のような処理を行う。すなわち、決定部15cは、抽出部15bで算出された各形状の面積が全て同一、または、全部の形状のうち所定の割合の個数の形状、例えば、全部の形状のうち、半分の個数の形状の面積が同一であるか否かを判定する。同様に、決定部15cは、候補面情報14cに登録された最外側平面のそれぞれについて、次のような処理を行う。すなわち、決定部15cは、抽出部15bで算出された各形状間の距離が全て同一、または、全部の形状のうち所定の割合の個数の形状、例えば、全部の形状のうち、半分の個数の形状間の距離が同一であるか否かを判定する。ここで、面に複数の部品が設けられた電子部品の部品モデルについて説明する。図12は、部品モデルの一例を示す図である。図12の例は、部品本体の面に複数の部品34a〜34eが設けられた部品モデル34を示す。図13は、図12の例での部品モデルの最外側平面における形状の一例を示す図である。図13の例は、最外側平面35a〜35fにおける部品モデル34の形状を示す。図13の例では、最外側平面35aにおいて、部品34a〜34eに対応する形状36a〜36fが存在する。
ここで、電子部品の端子は、搭載部分の面積が全て同じか、または、全ての端子のうち所定の割合の個数の面積が同じである。一方、図12に示すように、部品本体の面に設けられた複数の部品34a〜34eは、その面積が全て異なるか、または、全ての部品34a〜34eのうち所定の割合の個数の部品の面積が同一とならない。
また、電子部品の端子は、最も近い他の端子との距離が全て端子について同じか、または、全ての端子のうち所定の割合の個数の端子間の距離が同じである。一方、図12に示すように、部品本体の面に設けられた複数の部品34a〜34eは、部品間の距離が全て異なるか、または、全ての部品34a〜34eのうち所定の割合の個数の部品間の距離が同一とならない。
そこで、決定部15cは、各形状の面積が全て同一、または、全部の形状のうち所定の割合の個数の形状の面積が同一でない場合には、その形状に対応する最外側平面の識別情報を候補面情報14cから削除する。また、決定部15cは、各形状間の距離が全て同一、または、全部の形状のうち所定の割合の個数の形状間の距離が同一でない場合には、その形状に対応する最外側平面の識別情報を候補面情報14cから削除する。
続いて、決定部15cは、候補面情報14cに登録された最外側平面の数が1つであるか否かを判定する。1つである場合には、候補面情報14cに識別情報が登録された最外側平面を搭載面として決定する。1つでない場合には、決定部15cは、候補面情報14cに登録された最外側平面のそれぞれについて、次のような処理を行う。すなわち、決定部15cは、抽出部15bで算出された形状の中心位置と、投影領域の中心位置とが一致するか否かを判定する。上述したように、形状の中心位置と投影領域の中心位置とが一致する場合には、対応する最外側平面は搭載面と考えられ、一致しない場合には、対応する最外側平面は搭載面でないと考えられる。そこで、決定部15cは、形状の中心位置と、投影領域の中心位置とが一致しない場合には、その形状に対応する最外側平面の識別情報を候補面情報14cから削除する。
続いて、決定部15cは、候補面情報14cに登録された最外側平面の数が1つであるか否かを判定する。1つである場合には、候補面情報14cに識別情報が登録された最外側平面を搭載面として決定する。1つでない場合には、決定部15cは、ユーザによる搭載面の指定を受け付ける画面を表示するように、出力部12を制御する。図14は、ユーザによる搭載面の指定を受け付ける画面の一例を示す図である。図14の例では、出力部12の表示画面にユーザによる搭載面の指定を受け付ける画面40が示されている。図14の例では、画面40とともに図示しない部品モデルが出力部12の表示画面に表示される。この例の場合では、部品モデルの各面がユーザによって指定することが可能である。そして、搭載面としてユーザによって部品モデルのいずれかの面が指定され、完了ボタンが押下されると、決定部15cは、ユーザによって指定された面を搭載面として決定する。
上述してきたように、取得部15aは、メカニカルCADシステム20およびプリント板CADシステム21のそれぞれから第一のデータおよび第二のデータを取得する。そして、抽出部15bは、部品モデルの複数の複数の最外側平面における部品モデルの特徴を、複数の最外側平面ごとに抽出する。そして、決定部15cは、抽出した特徴が所定の条件に合致する場合に、合致する特徴に対応する最外側平面を、第二のデータが示すプリント板モデルに搭載する側の面として決定する。このように、設計支援装置10は、自動的な処理によって、部品モデルのプリント板モデルに搭載される側の面を決定する。したがって、設計支援装置10によれば、ユーザなどにより部品モデルのプリント板モデルに搭載される側の面を決定する工数が削減されるため、簡易にCADデータの連携を図ることができる。
生成部15dは、決定部15cによりプリント板モデルに搭載する側の面として決定された最外側平面における特徴に基づいて、プリント板モデル上の部品モデルを搭載するためのフットプリントを生成する。
具体例を挙げて説明する。生成部15dは、搭載面として決定された最外側平面における各形状が格子状に配置されているか否かを判定する。ここで、かかる判定方法の一例について説明する。図15は、各形状が格子状に配置されているか否かを判定する方法の一例を説明するための図である。図15の例は、各形状50を含む最外側平面51の各辺のうち、最も長い辺に対応する軸がX軸である場合を示す。また、図15の例は、X軸に垂直であり、かつ、最外側平面51上の軸がY軸である場合を示す。生成部15dは、X軸、Y軸方向に配置された形状の個数を計数し、X軸とY軸とで計数された個数が同一、または、X軸とY軸とで計数された個数の差が所定の閾値以下である場合には、各形状が格子状に配置されていると判定する。図15の例では、生成部15dは、X軸方向の形状50の個数6、Y軸方向の形状50の個数6を計数する。そして、図15の例では、生成部15dは、X軸とY軸とで計数された個数が同一であるため、各形状が格子状に配置されていると判定する。一方、X軸とY軸とで計数された個数の差が所定の閾値より大きい場合には、生成部15dは、各形状が格子状に配置されていないと判定する。
そして、生成部15dは、格子状に配置されていると判定した場合には、隣接する形状との間隔を考慮して、全ての形状を拡大した場合に、隣接する形状と重ならないように、各形状を一様に拡大する。図16は、実施例1に係る設計支援装置により実行される処理の一例を説明するための図である。例えば、図15の例では、各形状50のX軸方向の間隔がP2、Y軸方向の間隔がP1である。そのため、各形状50を拡大した場合に、各形状50が重ならないように、生成部15dは、P1およびP2のうち短い方の間隔を決定し、決定したP1またはP2の半分の値よりも各形状50の半径Rが短くなるように、各形状50の半径Rの値を算出する。ただし、半径Rの値は、形状50の半径rよりも大きい値である。そして、生成部15dは、算出した半径Rの値の円52をフットプリントとして定義する。このような処理を生成部15dは、全ての形状について行うことで、フットプリントを生成する。
一方、生成部15dは、格子状に配置されていないと判定した場合には、内側と外側とで各形状の拡大率を変えて、各形状を拡大する。図17および図18は、実施例1に係る設計支援装置により実行される処理の一例を説明するための図である。例えば、図17の例では、生成部15dは、最外側平面54の中心位置56を検出することで、内側および外側を定義するための中心線57を抽出する。そして、生成部15dは、各形状55a〜55hのそれぞれについて、中心線57を用いて、X軸方向の外側および内側、並びに、Y軸方向の外側および内側を検出する。そして、生成部15dは、各形状55a〜55hのそれぞれについて、X軸方向の内側および外側、並びに、Y軸方向の内側および外側のそれぞれに対応する拡大率で各形状55a〜55hを拡大して、拡大した形状60をフットプリントとして定義する。図18の例では、形状55aの拡大方法の一例が示されている。図18の例では、Y軸方向の内側については、第一の拡大率、例えば、1.2倍で形状55aを拡大し、Y軸方向の外側については、第二の拡大率、例えば、1.5倍で形状55aを拡大する。また、図18の例では、X軸方向の内側については、第三の拡大率、例えば、1.4倍で形状55aを拡大し、Y軸方向の外側については、第四の拡大率、例えば、1.3倍で拡大する。そして、生成部15dは、拡大された形状60をフットプリントとして定義する。このような処理を生成部15dは、全ての形状について行うことで、フットプリントを生成する。
また、生成部15dは、部品搭載領域を決定する。具体例について説明する。図19は、実施例1に係る設計支援装置により実行される処理の一例を説明するための図である。生成部15dは、電子部品の部品モデルを搭載面として決定された最外側平面に投影した場合の線画情報を取得する。そして、生成部15dは、生成したフットプリントの形状と線画情報とを合成し、合成した領域を部品形状領域として生成する。図19の例では、生成部15dは、部品形状領域70を生成する。そして、生成部15dは、部品形状領域に、部品外形の公知差、および、プリント板に電子部品を搭載する際の既知のずれ量を加えた領域を部品搭載領域として定義および決定する。図19の例では、生成部15dは、公知差またはずれ量71などを加味した部品搭載領域72を定義および生成する。部品形状領域70および部品搭載領域72には、電子部品のプリント板への配置処理を行う際に用いられる各種領域、例えば、部品搭載時のハンドリング領域、他の部品の搭載禁止領域などを設定することが可能である。
また、生成部15dは、電子部品の部品モデルの高さを決定する。具体例について説明する。図20は、実施例1に係る設計支援装置により実行される処理の一例を説明するための図である。図20の例は、部品モデル80を示す。図20の例では、生成部15dは、電子部品の部品モデルの搭載方向と逆方向81を検出する。そして、図20の例では、生成部15dは、検出した逆方向81の部品モデル80の最外位置82を検出する。続いて、図20の例では、生成部15dは、検出した最外位置82と、プリント板モデルの搭載面との距離83を部品モデルの高さとして決定する。ここで、プリント板モデルのフットプリントと、部品モデルの端子とを接合するための材料である半田材料の厚みを加味する場合について、説明する。図21は、実施例1に係る設計支援装置により実行される処理の一例を説明するための図である。図21の例では、生成部15dは、距離83に半田材料の厚み85を加えた値を、部品モデル80の高さ86として決定する。
配置部15eは、決定部15cにより決定された搭載面の端子を、生成部15dにより生成されたプリント板モデルのフットプリントに搭載して、部品モデルとプリント板モデルとを組み合わせた組み合わせモデルを生成する。そして、配置部15eは、生成した組み合わせモデルを表示するように、出力部12を表示制御する。
制御部15は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
[処理の流れ]
次に、本実施例に係る設計支援装置10の処理の流れを説明する。図21は、実施例1に係る連携処理の手順を示すフローチャートである。連携処理が実行されるタイミングの一例としては、入力部11を介して、ユーザから連携処理を実行する指示を制御部15が受け付けた場合などが挙げられる。
図22に示すように、取得部15aは、第一のデータを取得する(S101)。取得部15aは、第二のデータを取得する(S102)。続いて、抽出部15bは、後述する特徴抽出処理を実行する(S103)。その後、決定部15cは、後述の搭載面決定処理を実行する(S104)。そして、生成部15dは、後述のフットプリント生成処理を実行する(S105)。続いて、生成部15dは、後述の部品搭載領域決定処理を実行する(S106)。その後、生成部15dは、後述の高さ決定処理を実行する(S107)。そして、配置部15eは、組み合わせモデルを生成する(S108)。その後、配置部15eは、生成した組み合わせモデルを表示するように、出力部12を表示制御する(S109)。
次に特徴抽出処理について説明する。図23は、実施例1に係る特徴抽出処理の手順を示すフローチャートである。
図23に示すように、抽出部15bは、取得部15aにより第一のDB14aから取得された第一のデータが示す電子部品モデルの複数の面を抽出する(S201)。そして、抽出部15bは、抽出した複数の面の中から、最大の面積の面を抽出する(S202)。続いて、抽出部15bは、抽出した最大の面積の面を含む平面を、第一基準平面として設定および定義する(S203)。
そして、抽出部15bは、第一基準平面24と直交し、かつ、互いに直交する第二基準平面および第三基準平面を設定および定義する(S204)。続いて、抽出部15bは、第一のデータに基づいて、電子部品の部品モデルの複数の最外形位置を取得する(S205)。
そして、抽出部15bは、取得した複数の最外形位置のそれぞれについて、第一基準平面、第二基準平面および第三基準平面のいずれか1つに平行な最外形平面を設定および定義する(S206)。
そして、抽出部15bは、部品モデルの最外側平面における閉じた形状を、最外側平面ごとに取得する(S207)。続いて、抽出部15bは、下記のS209で、未選択の最外側平面があるか否かを判定する(S208)。未選択の最外側平面がない場合(S208否定)には、抽出部15bは、処理結果を制御部15の内部メモリに格納し、リターンする。一方、未選択の最外側平面がある場合(S208肯定)には、抽出部15bは、未選択の最外側平面を1つ選択する(S209)。そして、抽出部15bは、選択した最外側平面における各形状の面積を算出する(S210)。
続いて、抽出部15bは、算出した各形状の合計面積を算出する(S211)。その後、抽出部15bは、部品モデルを選択した最外側平面に投影させて、投影領域の面積を算出する(S212)。そして、抽出部15bは、合計面積を投影領域の面積で除した値(合計面積/投影領域の面積)が、所定値、例えば、0.1より小さいか否かを判定する(S213)。
合計面積を投影領域の面積で除した値が、所定値より小さい場合(S213肯定)には、抽出部15bは、選択した最外側平面を部品の内側に所定量移動させる(S214)。そして、抽出部15bは、再び、移動後の最外側平面における部品モデルの形状を取得し(S215)、S210へ戻る。
一方、合計面積を投影領域の面積で除した値が、所定値以上である場合(S213否定)には、抽出部15bは、選択した最外側平面における各形状の個数を算出する(S216)。
そして、抽出部15bは、選択した最外側平面における各形状間の距離を算出する(S217)。続いて、抽出部15bは、選択した最外側平面における形状の中心位置を算出する(S218)。そして、抽出部15bは、選択した最外側平面における投影領域の中心位置を算出し(S219)、S208へ戻る。
次に搭載面決定処理について説明する。図24および図25は、実施例1に係る搭載面決定処理の手順を示すフローチャートである。
図26に示すように、決定部15cは、候補面情報14cに、抽出部15bにより設定および定義された全ての最外側平面の識別情報を登録する(S301)。そして、決定部15cは、候補面情報14cに登録された全ての最外側平面の中から平行な最外側平面のペアを全て決定し、下記のS303で未選択のペアがあるか否かを判定する(S302)。未選択のペアがある場合(S302肯定)には、決定部15cは、未選択のペアを1つ選択する(S303)。続いて、決定部15cは、選択したペアの2つの最外側平面の形状の個数が同一か否かを判定する(S304)。同一である場合(S304肯定)には、決定部15cは、ペアとなる2つの最外側平面の識別情報を候補面情報14cから削除し(S306)、S302へ戻る。一方、同一でない場合(S304否定)には、決定部15cは、ペアとなる2つの最外側平面のそれぞれの合計面積の比が所定範囲内となるか否かを判定する(S305)。合計面積の比が所定範囲内である場合(S305肯定)には、S306へ進む。また、合計面積の比が所定範囲内でない場合(S305否定)には、S302へ戻る。
一方、未選択のペアがない場合(S302否定)には、決定部15cは、候補面情報14cに登録された最外側平面の中に、下記のS308で未選択の最外側平面があるか否かを判定する(S307)。未選択の最外側平面がある場合(S307肯定)には、決定部15cは、未選択の最外側平面を1つ選択する(S308)。続いて、決定部15cは、選択した最外側平面について、形状の個数が複数か否かを判定する(S309)。形状の個数が複数でない場合(S309否定)には、決定部15cは、その形状に対応する最外側平面の識別情報を候補面情報14cから削除し(S310)、S307へ戻る。また、形状の個数が複数である場合(S309肯定)にも、S307へ戻る。
一方、未選択の最外側平面がない場合(S307否定)には、決定部15cは、候補面情報14cに登録された最外側平面の数が1つであるか否かを判定する(S311)。1つである場合(S311肯定)には、決定部15cは、候補面情報14cに識別情報が登録された最外側平面を搭載面として決定し(S327)、処理結果を制御部15の内部メモリに格納し、リターンする。一方、1つでない場合(S311否定)には、決定部15cは、候補面情報14cに登録された最外側平面の中に、下記のS313で未選択の最外側平面があるか否かを判定する(S312)。未選択の最外側平面がある場合(S312肯定)には、決定部15cは、未選択の最外側平面を1つ選択する(S313)。続いて、決定部15cは、選択した最外側平面について、抽出部15bで算出された各形状の面積が全て同一、または、全部の形状のうち所定の割合の個数の形状の面積が同一であるか否かを判定する(S314)。面積が全て同一、または、所定の割合の個数の形状の面積が同一でない場合(S314否定)には、決定部15cは、その形状に対応する最外側平面の識別情報を候補面情報14cから削除し(S315)、S312へ戻る。
また、面積が全て同一、または、所定の割合の個数の形状の面積が同一である場合(S314肯定)には、決定部15cは、次のような処理を行う。すなわち、決定部15cは、選択した最外側平面について、抽出部15bで算出された各形状間の距離が全て同一、または、全部の形状のうち所定の割合の個数の形状間の距離が同一であるか否かを判定する(S316)。各形状間の距離が全て同一、または、所定の割合の個数の形状間の距離が同一でない場合(S316否定)には、その形状に対応する最外側平面の識別情報を候補面情報14cから削除し(S317)、S312へ戻る。また、各形状間の距離が全て同一、または、所定の割合の個数の形状間の距離が同一である場合(S316肯定)にも、S312へ戻る。
一方、未選択の最外側平面がない場合(S312否定)には、決定部15cは、候補面情報14cに登録された最外側平面の数が1つであるか否かを判定する(S318)。1つである場合(S318肯定)には、S327へ進む。一方、1つでない場合(S318否定)には、決定部15cは、候補面情報14cに登録された最外側平面の中に、下記のS320で未選択の最外側平面があるか否かを判定する(S319)。未選択の最外側平面がある場合(S319肯定)には、決定部15cは、未選択の最外側平面を1つ選択する(S320)。続いて、決定部15cは、選択した最外側平面について、抽出部15bで算出された形状の中心位置と、投影領域の中心位置とが一致するか否かを判定する(S321)。形状の中心位置と、投影領域の中心位置とが一致しない場合(S321否定)には、決定部15cは、その形状に対応する最外側平面の識別情報を候補面情報14cから削除し(S322)、S319へ戻る。また、形状の中心位置と、投影領域の中心位置とが一致する場合(S321肯定)にも、S319へ戻る。
一方、未選択の最外側平面がない場合(S319否定)には、決定部15cは、候補面情報14cに登録された最外側平面の数が1つであるか否かを判定する(S323)。1つである場合(S323肯定)には、S327へ進む。一方、1つでない場合(S323否定)には、決定部15cは、ユーザによる搭載面の指定を受け付ける画面を表示するように、出力部12を制御する(S324)。そして、決定部15cは、搭載面としてユーザによって部品モデルのいずれかの面が指定され、完了ボタンが押下されたか否かを判定する(S325)。完了ボタンが押下されていない場合(S325否定)には、決定部15cは、再度、同様の判定をS325で行う。一方、完了ボタンが押下された場合(S325肯定)には、決定部15cは、ユーザによって指定された面を搭載面として決定し(S326)、処理結果を制御部15の内部メモリに格納し、リターンする。
次にフットプリント生成処理について説明する。図26は、実施例1に係るフットプリント生成処理の手順を示すフローチャートである。
図26に示すように、生成部15dは、X軸およびY軸を定義する(S401)。そして、生成部15dは、搭載面として決定された最外側平面における各形状が格子状に配置されているか否かを判定する(S402)。
格子状に配置されている場合(S402肯定)には、生成部15dは、隣接する形状との間隔を考慮して、全ての形状を拡大した場合に、隣接する形状と重ならないように、各形状を一様に拡大する(S403)。そして、生成部15dは、処理結果を制御部15の内部メモリに格納し、リターンする。
一方、格子状に配置されていない場合(S402否定)には、生成部15dは、最外側平面の中心位置を検出することで、内側および外側を定義するための中心線を抽出する(S404)。そして、生成部15dは、各形状について、中心線を用いて、X軸方向の外側および内側、並びに、Y軸方向の外側および内側を検出する(S405)。そして、生成部15dは、各形状について、X軸方向の内側および外側、並びに、Y軸方向の内側および外側のそれぞれに対応する拡大率で拡大して、拡大した形状をフットプリントとして定義する(S406)。そして、生成部15dは、処理結果を制御部15の内部メモリに格納し、リターンする。
次に部品搭載領域決定処理について説明する。図27は、実施例1に係る部品搭載領域決定処理の手順を示すフローチャートである。
図27に示すように、生成部15dは、電子部品の部品モデルを搭載面として決定された最外側平面に投影した場合の線画情報を取得する(S501)。そして、生成部15dは、生成したフットプリントの形状と線画情報とを合成し、合成した領域を部品形状領域として生成する(S502)。そして、生成部15dは、部品形状領域に、部品外形の公知差、および、プリント板に電子部品を搭載する際の既知のずれ量を加えた領域を部品搭載領域として定義および決定する(S503)。そして、生成部15dは、処理結果を制御部15の内部メモリに格納し、リターンする。
次に高さ決定処理について説明する。図28は、実施例1に係る高さ決定処理の手順を示すフローチャートである。
図27に示すように、生成部15dは、電子部品の部品モデルの搭載方向と逆方向を検出する(S601)。そして、生成部15dは、検出した逆方向の部品モデルの最外位置を検出する(S602)。続いて、生成部15dは、部品モデルの高さを決定する際に、半田材料の厚みを加味するか否かを判定する(S603)。加味しない場合(S603否定)には、生成部15dは、検出した最外位置と、プリント板モデルの搭載面との距離を部品モデルの高さとして決定する(S605)。そして、生成部15dは、処理結果を制御部15の内部メモリに格納し、リターンする。一方、加味する場合(S603肯定)には、生成部15dは、プリント板モデルの搭載面との距離に半田材料の厚みを加えた値を、部品モデルの高さとして決定する(S604)。そして、生成部15dは、処理結果を制御部15の内部メモリに格納し、リターンする。
上述してきたように、本実施例に係る設計支援装置10は、メカニカルCADシステム20およびプリント板CADシステム21のそれぞれから第一のデータおよび第二のデータを取得する。そして、本実施例に係る設計支援装置10は、部品モデルの複数の複数の最外側平面における部品モデルの特徴を、複数の最外側平面ごとに抽出する。そして、本実施例に係る設計支援装置10は、抽出した特徴が所定の条件に合致する場合に、合致する特徴に対応する最外側平面を、第二のデータが示すプリント板モデルに搭載する側の面として決定する。このように、本実施例に係る設計支援装置10は、自動的な処理によって、部品モデルのプリント板モデルに搭載される側の面を決定する。したがって、本実施例に係る設計支援装置10によれば、ユーザなどにより部品モデルのプリント板モデルに搭載される側の面を決定する工数が削減されるため、簡易にCADデータの連携を図ることができる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
例えば、実施例1では、設計支援装置10が、メカニカルCADシステム20およびプリント板CADシステム21と別な装置である場合について説明した。しかしながら、開示の設計支援装置10を、メカニカルCADシステム20またはプリント板CADシステム21に組み込むことができる。
また、実施例1において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。例えば、S312〜S317の処理を省略することができる。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。例えば、S312〜S317の処理を行う前に、S318〜S326の処理を行うこともできる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示す生成部15dと、配置部15eとが統合されてもよい。
[設計支援プログラム]
また、上記の実施例で説明した設計支援装置10の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図29を用いて、上記の実施例で説明した設計支援装置10と同様の機能を有する設計支援プログラムを実行するコンピュータの一例を説明する。図29は、設計支援プログラムを実行するコンピュータを示す図である。
図29に示すように、コンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340とを有する。これら310〜340の各部は、バス350を介して接続される。なお、CPU310は、上述した制御部15の一例である。また、ROM320、HDD330、RAM340は、上述した記憶部14の一例である。
ROM320には、OS(Operating System)プログラムなどが記憶されている。
HDD330には、上記の実施例1で示す取得部15aと、抽出部15bと、決定部15cと、生成部15dと、配置部15eと同様の機能を発揮する設計支援プログラム330aが予め記憶される。なお、設計支援プログラム330aについては、適宜分離しても良い。例えば、取得部15aと、抽出部15bと、決定部15cと同様の機能を発揮するプログラムと、生成部15dと、配置部15eと同様の機能を発揮するプログラムとに分離しても良い。
また、HDD330には、第一のDB、第二のDB、候補面情報が設けられる。この第一のDB、第二のDB、候補面情報のそれぞれは、図1に示した第一のDB14a、第二のDB14b、候補面情報14cに対応する。
CPU310は、設計支援プログラム330aをHDD330から読み出して実行する。また、CPU310は、第一のDB、第二のDB、候補面情報を読み出してRAM340に格納する。CPU310は、RAM340に格納された第一のDB、第二のDB、候補面情報を用いて、設計支援プログラム330aを実行する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納されなくともよい。処理に用いられるデータのみがRAM340に格納されれば良い。
なお、上記した設計支援プログラムについては、必ずしも最初からHDD330に記憶させておく必要はない。
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。