検出プログラム、検出方法および検出装置
【課題】データに含まれるランナーシステムを自動的に検出すること。
【解決手段】検出プログラムは、解析対象のデータに含まれるランナーシステムモデルに基づいて、次のような処理をコンピュータに実行させる。すなわち、検出プログラムは、ランナーシステムモデル13aが示すランナーシステム20において、断面の形状が円である突出した部分を特定することで、スプルー20aを検出する処理をコンピュータに実行させる。検出プログラムは、データ、およびゲートの形状に基づいて、ゲート20bを検出する処理をコンピュータに実行させる。検出プログラムは、ランナーシステムモデル、スプルー、およびゲートに基づいて、ランナーシステムのランナー20cを検出する処理をコンピュータに実行させる。
【解決手段】検出プログラムは、解析対象のデータに含まれるランナーシステムモデルに基づいて、次のような処理をコンピュータに実行させる。すなわち、検出プログラムは、ランナーシステムモデル13aが示すランナーシステム20において、断面の形状が円である突出した部分を特定することで、スプルー20aを検出する処理をコンピュータに実行させる。検出プログラムは、データ、およびゲートの形状に基づいて、ゲート20bを検出する処理をコンピュータに実行させる。検出プログラムは、ランナーシステムモデル、スプルー、およびゲートに基づいて、ランナーシステムのランナー20cを検出する処理をコンピュータに実行させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検出プログラム、検出方法および検出装置に関する。
【背景技術】
【0002】
近年、世界的に、環境性能指向が進んでいる。そのため、樹脂製品の需要性が高まっている。そして、樹脂製品の成形性を製造前に検証する樹脂流動解析の普及が進んでいる。樹脂流動解析では、3次元Computer Aided Design(CAD)で作成したモデルをComputer Aided Engineering(CAE)に取り込む技術が一般的である。
【0003】
樹脂流動解析の一例では、樹脂成形するためのランナーシステムのモデルを含むCADデータがCAEに取り込まれて、所定のランナーシステムを用いて樹脂製品を製造した場合の所定時間内における金型への溶融樹脂の充填量などが予測される。樹脂流動解析の他の例では、ランナーシステムのモデルを含むCADデータがCAEに取り込まれて、金型への溶融樹脂の充填率が所定の値を満たす場合のランナーシステムのゲートの出射部分の開口面積が予測される。
【0004】
このような樹脂流動解析では、CADデータがCAEに取り込まれた場合に、解析を行うユーザは、表示装置に表示されたランナーシステムを目視で識別する。そして、ユーザは、識別したランナーシステムに対して、キーボードやマウスなどの入力部を介して、手動で、ランナーシステムであることを示す属性を割り当てる。かかる属性の割り当て方法の一例としては、ランナーシステム全体に、ランナーシステムであることを示す属性を割り当てる方法がある。また、他の例では、ランナーシステムのスプルー、ゲート、ランナーの各々に、スプルー、ゲート、ランナーの各々であることを示す属性を割り当てる方法がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−344096号公報
【特許文献2】特開平10−138310号公報
【特許文献3】特開2005−301450号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記の従来の技術では、ユーザが、ランナーシステムに対して手動で属性を割り当てるため、余分な手間がかかるという問題がある。これは、従来の技術では、データに含まれるランナーシステムを自動的に検出できないからである。そのため、従来の技術では、バッチ処理による解析の自動実行を行うことができず、現在の流行である最適化の適用の障害となっている。
【0007】
開示の技術は、上記に鑑みてなされたものであって、データに含まれるランナーシステムを自動的に検出することができる検出プログラム、検出方法および検出装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本願の開示する検出プログラムは、一つの態様において解析対象のデータに含まれるランナーシステムモデルに基づいて、次のような処理をコンピュータに実行させる。すなわち、本願の開示する検出プログラムは、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出する処理をコンピュータに実行させる。そして、本願の開示する検出プログラムは、前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出する処理をコンピュータに実行させる。そして、本願の開示する検出プログラムは、前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する処理をコンピュータに実行させる。
【発明の効果】
【0009】
本願の開示する検出プログラムの一つの態様によれば、データに含まれるランナーシステムを自動的に検出することができる。
【図面の簡単な説明】
【0010】
【図1】図1は、実施例1に係る検出装置の構成を示す図である。
【図2】図2は、CADデータの形式の一例を示す図である。
【図3】図3は、ランナーシステムモデルが示すランナーシステム、および製品モデルが示す製品の一例を示す図である。
【図4】図4は、ランナーシステムモデルが示すランナーシステムの一例を示す図である。
【図5】図5は、実施例1におけるスプルーの検出方法の一例を説明するための図である。
【図6】図6は、第2の検出部の処理の一例を説明するための図である。
【図7】図7は、実施例1に係る検出処理の手順を示すフローチャートである。
【図8】図8は、実施例1に係るスプルー検出処理の手順を示すフローチャートである。
【図9】図9は、実施例1に係るゲート候補検出処理の手順を示すフローチャートである。
【図10】図10は、実施例1に係るゲート・ランナー検出処理の手順を示すフローチャートである。
【図11】図11は、検出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0011】
以下に、本願の開示する検出プログラム、検出方法および検出装置の各実施例を図面に基づいて詳細に説明する。なお、各実施例は開示の技術を限定するものではない。
【実施例1】
【0012】
[検出装置の構成]
図1は、実施例1に係る検出装置の構成を示す図である。本実施例に係る検出装置10は、ランナーシステムモデルを含むCADデータから、ランナーシステムモデルが示すランナーシステムのスプルー、ゲートを検出する。また、本実施例に係る検出装置10は、スプルーとゲートとの間のランナーシステムモデルの部分をランナーとして検出する。
【0013】
図1に示すように、検出装置10は、入力部11と、出力部12と、記憶部13と、制御部14とを有する。
【0014】
入力部11は、各種情報を制御部14に入力する。例えば、入力部11は、ユーザから、後述の検出処理を実行する指示を受け付けて、受け付けた指示を制御部14に入力する。入力部11は、マウスやキーボードなどの操作受付デバイスである。
【0015】
出力部12は、各種の情報を出力する。出力部12のデバイスの一例としては、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などの表示デバイスや、音声を出力する音声出力デバイスなどが挙げられる。例えば、出力部12が表示デバイスである場合には、出力部12は、後述のシミュレート部14dから送信されたシミュレーション結果を表示する。また、出力部12が音声デバイスである場合には、出力部12は、後述のシミュレート部14dから送信されたシミュレーション結果を音声で出力する。
【0016】
記憶部13は、各種情報を記憶する。例えば、記憶部13は、ランナーシステムのモデルであるランナーシステムモデル13aと、ランナーシステムにより溶融樹脂が金型に流し込まれて成形された製品のモデルである製品モデル13bとを含むCADデータ13cを記憶する。CADデータ13cは、解析対象のデータであり、後述のシミュレート部14dによるシミュレーションに用いられる。
【0017】
CADデータのデータ構造としては、例えば、面(face)、線(edge)を含むデータ構造が挙げられる。例えば、面は、モデルが示す物体を形成するものである。面は、「ID(Identification)」、「形状」、「かかる形状を形成する各線の各ID」の各情報を含む。また、線は、線が閉じていない場合には「両端部の位置座標」、線が閉じている場合には両端部が存在しないので「線が示す形状」、および「ID」の各情報を含む。図2は、CADデータの形式の一例を示す図である。図2の例では、所定のモデルが示す物体の一部分を示す面15aおよび面15bが示されている。
【0018】
図2の例では、面15aは、「ID」が「1」で、「形状」が四角形で、四角形を構成する4つの線100〜103の各IDが「100」、「101」、「102」、「103」である場合が示されている。また、図2の例では、面15bは、「ID」が「2」で、「形状」が四角形で、四角形を構成する4つの線100、104〜106の各IDが「100」、「104」、「105」、「106」である場合が示されている。したがって、CADデータの形式がこのような場合には、2つの面で共通する線が存在する場合には、両面がつながっていると判断することができる。例えば、図2の例では、面15aと面15bとの両面では、IDが「100」である線が共通するので、面15aと面15bとはつながっている、すなわち連続性があると判断することができる。なお、面が「円」である場合には、円を形成する線は閉じており、線が示す形状が「円」となるため、線の情報には、「線が示す形状」が「円」であることが含まれる。また、直方体を構成する6つの面のうち、直方体の周りを一周した場合の4つの面を一つの「面」とする場合もある。このような場合に、面の形状は、「四角形」となる。また、かかる「四角形」を形成する線は閉じており、線が示す形状も「四角形」となる。このため、線の情報には、「線が示す形状」が「四角形」であることが含まれる。
【0019】
図3は、ランナーシステムモデルが示すランナーシステム、および製品モデルが示す製品の一例を示す図である。図3に示すように、ランナーシステムモデル13aが示すランナーシステム20は、製品モデル13bが示す製品21に接続されている。
【0020】
図4は、ランナーシステムモデルが示すランナーシステムの一例を示す図である。図4に示すように、ランナーシステム20は、スプルー20aと、ゲート20bと、ランナー20cとを有する。
【0021】
スプルー20aは、図示しない射出成形機のノズルに接する部分からランナー20cに至るまでの溶融樹脂の流入通路を形成する部品である。スプルー20aの形状の一例としては、円柱に勾配をつけた形状である円形テーパーが挙げられる。また、スプルー20aの断面の一例としては、円形が挙げられる。また、他形状と接していない円断面を、ランナーシステムモデル13aから読み取れば、その円断面を入り口とするスプルー20aを検出することが可能となる。なお、上記のような円形テーパーをスプルー20aに採用する場合には、スプルー20aの開口面積は、射出成形機のノズル側ほど、狭くなる。
【0022】
ゲート20bは、溶融樹脂がランナー20cから金型キャビティに流入するための部品である。成形品の形状、外観、品質などを考慮して種々のゲートが使用される。ゲート20bの形状の一例としては、円形テーパーまたは直方体が挙げられる。また、ゲート20bの形状の他の例としては、直円柱が挙げられる。また、ゲート20bの断面の一例としては、円形または四角が挙げられる。また、ゲート20bの開口面積は、金型キャビティ側ほど、狭くなるか、全て同一となる。したがって、溶融樹脂が流れる上流側の長さが、下流側の長さよりも短くなるような線により形成される面をランナーシステムモデル13aから読み取れば、その面の位置からゲート20bを検出することができる。
【0023】
ランナー20cは、溶融樹脂がスプルー20aからゲート20bに至る中間の通路を形成する部品である。ランナー20cの形状の一例としては、円形、直方体または台形が挙げられる。また、ランナー20cの断面の一例としては、円形、四角形または台形が挙げられる。
【0024】
記憶部13は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部13は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
【0025】
制御部14は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部14は、図1に示すように、第1の検出部14aと、第2の検出部14bと、第3の検出部14cと、シミュレート部14dとを有する。
【0026】
第1の検出部14aは、スプルーを検出する。例えば、第1の検出部14aは、記憶部13からCADデータ13cを取得する。第1の検出部14aは、CADデータ13cに含まれる面のうち、形状が「円」で、XY平面に平行で、かつ面の位置がZ軸方向で最大となる面を特定する。そして、第1の検出部14aは、特定した面を、スプルー20aの入り口の面として検出する。なお、CADデータ13cを生成する際に、Z軸の正の方向に、スプルー20aの入り口が設定されているものとする。また、面の位置は、面を形成する線の両端末の位置のうち、Z軸方向の位置が最大のものを面の位置として採用することができる。
【0027】
図5は、実施例1におけるスプルーの検出方法の一例を説明するための図である。図5の例では、第1の検出部14aは、形状が「円」で、XY平面に平行で、かつZ軸方向の座標値が最大の面25を特定し、特定した面25をスプルー20aの入り口として検出する。
【0028】
そして、第1の検出部14aは、スプルー20aの入り口として検出した面とつながっている面のIDを検出する。続いて、第1の検出部14aは、検出したIDが示す面を形成する各線の各IDを検出する。そして、第1の検出部14aは、検出した面のIDおよび各線の各IDを、スプルー20aを形成する面および線のIDとして記憶部13に格納する。このように、第1の検出部14aは、スプルー20aを形成する面および線の各IDを検出することで、スプルー20aを検出する。
【0029】
そして、第1の検出部14aは、スプルー20aを形成する面および線の各IDに対応付けて、スプルーであることを示す属性を記憶部13に格納する。このように、第1の検出部14aは、断面の形状が円である突出した部分を特定することで、スプルー20aを検出する。
【0030】
図5の例では、面25に、円筒面である面26がつながっている。このような場合には、第1の検出部14aは、面26のID「26」を検出する。また、図5の例では、第1の検出部14aは、面26を形成する各線27、28の各ID「27」、「28」を検出する。そして、図5の例では、第1の検出部14aは、スプルー20aを形成する面および線のIDとして、ID「26」、ID「27」、ID「28」を記憶部13に格納する。
【0031】
また、第1の検出部14aは、面および線に対してIDを新たに割り当てる。例えば、第1の検出部14aは、スプルー20aの入り口に近い側から順番に、面および線のそれぞれに、それぞれ独立して、IDとして正の整数を昇順で割り当てる。ここで、例えば、整数「1」をIDとして割り当てられた面を、「face(1)」と表す。同様に、整数「N」をIDとして割り当てられた面を、「face(N)」と表す。また、整数「1」をIDとして割り当てられた線を、「edge(1)」と表す。同様に、整数「N」をIDとして割り当てられた線を、「edge(N)」と表す。また、face(N)の面の形状を形成する線のうち、最もスプルー20a側に位置する線を「edgeN」と表現し、最も金型キャビティ側に位置する線を「edgeN+1」と表現する。
【0032】
第2の検出部14bは、ゲートを検出する。ここで、第2の検出部14bは、ゲート20bに含まれる任意の一つの面を形成する線のうち、金型キャビティ側に位置する線の長さは、スプルー20a側に位置する線の長さ以下であることを利用して、ゲートを検出する。ゲート20bの開口面積が金型キャビティ側ほど広くなるように設計すると、溶融樹脂を射出する圧力が弱くなり、所望の溶融樹脂を金型キャビティに充填することができなくなり、製品の射出成形に支障をきたす場合がある。そのため、ゲート20bの開口面積が金型キャビティ側ほど広くならないように設計するのが一般的である。
【0033】
具体例を挙げて説明すると、例えば、第2の検出部14bは、face(n)の面の形状が「円筒面」であり、edgenの形状が「円」であり、edgen+1の形状が「円」である場合には、次のような処理を行う。すなわち、第2の検出部14bは、edgenおよびedgen+1の各線をXY平面に投影するとともに、XZ平面に投影する。そして、第2の検出部14bは、XY平面に投影されたedgen+1の長さが、edgenの長さ以下である場合、または、XZ平面に投影されたedgen+1の長さが、edgenの長さ以下である場合には、次のような処理を行う。すなわち、第2の検出部14bは、(edgen,face(n),edgen+1)の組をゲート候補として検出し、検出したゲート候補を配列A[n]に格納する。
【0034】
また、第2の検出部14bは、face(n)の面の形状が「四角形」であり、edgenの形状が「四角形」であり、edgen+1の形状が「四角形」である場合には、次のような処理を行う。すなわち、第2の検出部14bは、edgenおよびedgen+1の各線をXY平面に投影するとともに、XZ平面に投影する。そして、第2の検出部14bは、XY平面に投影されたedgen+1の長さが、edgenの長さ以下である場合、または、XZ平面に投影されたedgen+1の長さが、edgenの長さ以下である場合には、次のような処理を行う。すなわち、第2の検出部14bは、(edgen,face(n),edgen+1)の組をゲート候補として、配列Aに格納する。
【0035】
第2の検出部14bは、上記の処理をnの値が2から、面に割り当てられたIDの数の最大値となるまで、繰り返し行う。このようにして、第2の検出部14bは、配列Aにゲート候補の組を格納する。なお、配列A[i]は、配列Aに格納されたi番目のゲート候補を指す。
【0036】
そして、第2の検出部14bは、配列Aに格納された各ゲート候補の面および線のIDに基づいて、面がつながっている各ゲート候補どうしを組み合わせて一つの要素として、配列Rに格納する。なお、配列R[i]は、配列Rに格納されたi番目の要素を指す。
【0037】
そして、第2の検出部14bは、配列Rの各要素に含まれる各線に、スプルー20aの入り口に近い側から順番に、IDとして正の整数を昇順で新たに割り当てる。
【0038】
図6は、第2の検出部の処理の一例を説明するための図である。図6の例には、模擬されたランナーシステム20の一例の上面図が示されている。図6の例では、線51が「edge5」、面52が「face(5)」、線53が「edge6」、面54が「face(6)」、線55が「edge7」、面56が「face(7)」、線57が「edge8」に対応する。また、図6の例では、線58が「edge10」、面59が「face(10)」、線60が「edge11」、面61が「face(11)」、線62が「edge12」、面63が「face(12)」、線64が「edge13」に対応する。また、図6の例では、線65が「edge15」、面66が「face(15)」、線67が「edge16」、面68が「face(16)」、線69が「edge17」、面70が「face(17)」、線71が「edge18」に対応する。
【0039】
また、図6の例では、線72が「edge20」、面73が「face(20)」、線74が「edge21」、面75が「face(21)」、線76が「edge22」、面77が「face(22)」、線78が「edge23」に対応する。また、図6の例では、線79が「edge25」、面80が「face(25)」、線81が「edge26」、面82が「face(26)」、線83が「edge27」、面84が「face(27)」、線85が「edge28」に対応する。また、図6の例では、線86が「edge30」、面87が「face(30)」、線88が「edge31」、面89が「face(31)」、線90が「edge32」、面91が「face(32)」、線92が「edge33」に対応する。
【0040】
なお、図6の例では、線55、面56及び線57により構成される部分は、製品である。また、図6の例では、線62、面63及び線64により構成される部分は、製品である。また、図6の例では、線69、面70及び線71により構成される部分は、製品である。また、図6の例では、線76、面77及び線78により構成される部分は、製品である。また、図6の例では、線83、面84及び線85により構成される部分は、製品である。また、図6の例では、線90、面91及び線92により構成される部分は、製品である。
【0041】
図6の例では、第2の検出部14bは、(edge5,face(5),edge6)を配列A[1]に、(edge6,face(6),edge7)を配列A[2]に、(edge7,face(7),edge8)を配列A[3]に格納する。また、図6の例では、第2の検出部14bは、(edge10,face(10),edge11)を配列A[4]に、(edge11,face(11),edge12)を配列A[5]に、(edge12,face(12),edge13)を配列A[6]に格納する。
【0042】
また、図6の例では、第2の検出部14bは、(edge15,face(15),edge16)を配列A[7]に、(edge16,face(16),edge17)を配列A[8]に格納する。また、図6の例では、第2の検出部14bは、(edge17,face(17),edge18)を配列A[9]に格納する。また、図6の例では、第2の検出部14bは、(edge20,face(20),edge21)を配列A[10]に、(edge21,face(21),edge22)を配列A[11]に格納する。また、図6の例では、第2の検出部14bは、(edge22,face(22),edge23)を配列A[12]に格納する。
【0043】
また、図6の例では、第2の検出部14bは、(edge25,face(25),edge26)を配列A[13]に、(edge26,face(26),edge27)を配列A[14]に格納する。また、図6の例では、第2の検出部14bは、(edge27,face(27),edge28)を配列A[15]に格納する。また、図6の例では、第2の検出部14bは、(edge30,face(30),edge31)を配列A[16]に、(edge31,face(31),edge32)を配列A[17]に格納する。また、図6の例では、第2の検出部14bは、(edge32,face(32),edge33)を配列A[18]に格納する。このように、図6の例において、第2の検出部14bは、要素数が18となる配列Aを生成する。
【0044】
そして、図6の例では、第2の検出部14bは、(edge5,face(5),edge6)、(edge6,face(6),edge7)および(edge7,face(7),edge8)のゲート候補同士を組み合わせて一つの要素とする。そして、第2の検出部14bは、かかる要素を配列R[1]に格納する。
【0045】
また、図6の例では、第2の検出部14bは、(edge10,face(10),edge11)、(edge11,face(11),edge12)および(edge12,face(12),edge13)のゲート候補同士を組み合わせて一つの要素とする。そして、第2の検出部14bは、かかる要素を配列R[2]に格納する。
【0046】
また、図6の例では、第2の検出部14bは、(edge15,face(15),edge16)、(edge16,face(16),edge17)および(edge17,face(17),edge18)のゲート候補同士を組み合わせて一つの要素とする。そして、第2の検出部14bは、かかる要素を配列R[3]に格納する。
【0047】
また、図6の例では、第2の検出部14bは、(edge20,face(20),edge21)、(edge21,face(21),edge22)および(edge22,face(22),edge23)のゲート候補同士を組み合わせて一つの要素とする。そして、第2の検出部14bは、かかる要素を配列R[4]に格納する。
【0048】
また、図6の例では、第2の検出部14bは、(edge25,face(25),edge26)、(edge26,face(26),edge27)および(edge27,face(27),edge28)のゲート候補同士を組み合わせて一つの要素とする。そして、第2の検出部14bは、かかる要素を配列R[5]に格納する。
【0049】
また、図6の例では、第2の検出部14bは、(edge30,face(30),edge31)、(edge31,face(31),edge32)および(edge32,face(32),edge33)のゲート候補同士を組み合わせて一つの要素とする。そして、第2の検出部14bは、かかる要素を配列R[6]に格納する。
【0050】
このように、図6の例において、第2の検出部14bは、要素数が6となる配列Rを生成する。
【0051】
そして、図6の例では、第2の検出部14bは、配列R[1]の要素に含まれるedge5、edge6およびedge7のそれぞれの線に対して、新たにIDとして1,2,3のそれぞれを割り当てる。これにより、edge[1]、edge[2]およびedge[3]のそれぞれは、edge5、edge6およびedge7の各線を示す。
【0052】
また、図6の例では、第2の検出部14bは、配列R[2]の要素に含まれるedge10、edge11およびedge12のそれぞれの線に対して、新たにIDとして4,5,6のそれぞれを割り当てる。これにより、edge[4]、edge[5]およびedge[6]のそれぞれは、edge10、edge11およびedge12の各線を示す。
【0053】
また、図6の例では、第2の検出部14bは、配列R[3]の要素に含まれるedge15、edge16およびedge17のそれぞれの線に対して、新たにIDとして7,8,9のそれぞれを割り当てる。これにより、edge[7]、edge[8]およびedge[9]のそれぞれは、edge15、edge16およびedge17の各線を示す。
【0054】
また、図6の例では、第2の検出部14bは、配列R[4]の要素に含まれるedge20、edge21およびedge22のそれぞれの線に対して、新たにIDとして10,11,12のそれぞれを割り当てる。これにより、edge[10]、edge[11]およびedge[12]のそれぞれは、edge20、edge21およびedge22の各線を示す。
【0055】
また、図6の例では、第2の検出部14bは、配列R[5]の要素に含まれるedge25、edge26およびedge27のそれぞれの線に対して、新たにIDとして13,14,15のそれぞれを割り当てる。これにより、edge[13]、edge[14]およびedge[15]のそれぞれは、edge25、edge26およびedge27の各線を示す。
【0056】
また、図6の例では、第2の検出部14bは、配列R[6]の要素に含まれるedge30、edge31およびedge32のそれぞれの線に対して、新たにIDとして16,17,18のそれぞれを割り当てる。これにより、edge[16]、edge[17]およびedge[18]のそれぞれは、edge30、edge31およびedge32の各線を示す。
【0057】
そして、第2の検出部14bは、配列Rの各要素ごとに、各線をXY平面に投影するとともに、XZ平面に投影する。そして、第2の検出部14bは、配列Rの各要素ごとに、XY平面に投影されたedge[m+1]の長さが、edge[m]の長さ以下であるか、XZ平面に投影されたedge[m+1]の長さが、edge[m]の長さ以下である場合には、次の処理を行う。すなわち、第2の検出部14bは、(edge[m],(edge[m]およびedge[m+1]の各線を有する面),edge[m+1])の組をゲートとして検出する。すなわち、第2の検出部14bは、edge[m+1]の長さが、edge[m]の長さ以下とならない場合のedge[m]およびedge[m+1]の各線を有する面は、製品を形成する面であるため、ゲートを形成する面として検出しない。
【0058】
図6の例では、第2の検出部14bは、(edge[1],face(5),edge[2])の組をゲートとして検出する。また、図6の例では、第2の検出部14bは、(edge[4],face(10),edge[5])の組をゲートとして検出する。また、図6の例では、第2の検出部14bは、(edge[7],face(15),edge[8])の組をゲートとして検出する。また、図6の例では、第2の検出部14bは、(edge[10],face(20),edge[11])の組をゲートとして検出する。また、図6の例では、第2の検出部14bは、(edge[13],face(25),edge[14])の組をゲートとして検出する。また、図6の例では、第2の検出部14bは、(edge[16],face(30),edge[17])の組をゲートとして検出する。
【0059】
そして、第2の検出部14bは、ゲートとして検出したIDの組を、ゲート20bを形成する面および線のIDとして記憶部13に格納する。このように、第2の検出部14bは、ゲート20bを形成する面および線のIDを検出することで、ゲート20bを検出する。
【0060】
そして、第2の検出部14bは、ゲート20bを形成する面および線のIDに対応付けて、ゲートであることを示す属性を記憶する。
【0061】
第3の検出部14cは、スプルー20aと、ゲート20bとの間のランナーシステムモデル13aの部分をランナー20cとして検出する。第3の検出部14cは、ランナー20cとして検出した部分の線および面の各IDに、ランナーであることを示す属性を対応付けて記憶部13に記憶する。
【0062】
シミュレート部14dは、ランナーシステム20を用いてシミュレーションを行う。例えば、シミュレート部14dは、記憶部13から、対応付けられた各属性とともにスプルー20a、ゲート20bおよびランナー20cをランナーシステム20として取得し、ランナーシステム20を用いてシミュレーションを行う。シミュレーションの一例としては、シミュレート部14dは、ランナーシステム20を用いて樹脂製品を製造した場合の所定時間内における金型への溶融樹脂の充填量などを予測する。また、他の例では、シミュレート部14dは、金型への溶融樹脂の充填率が所定の値を満たす場合のランナーシステム20のゲート20bの出射部分の開口面積を予測する。そして、シミュレート部14dは、シミュレーション結果を出力部12に送信する。
【0063】
制御部14は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、または、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
【0064】
[処理の流れ]
次に、本実施例に係る検出装置10の処理の流れを説明する。図7は、実施例1に係る検出処理の手順を示すフローチャートである。この検出処理は、入力部11から制御部14に検出処理を実行する指示が入力された場合に実行される。
【0065】
図7に示すように、第1の検出部14aは、スプルー20aを検出するスプルー検出処理を実行する(ステップS101)。第2の検出部14bは、ゲート候補を検出するゲート候補検出処理を実行する(ステップS102)。第2の検出部14bおよび第3の検出部14cは、ゲート20bおよびランナー20cを検出するゲート・ランナー検出処理を実行する(ステップS103)。そして、シミュレート部14dは、検出したスプルー20a、ゲート20bおよびランナー20cを用いてシミュレーションを行い、シミュレーション結果を出力部12に送信し(ステップS104)、処理を終了する。
【0066】
続いて、上記のステップS101で実行するスプルー検出処理について説明する。図8は、実施例1に係るスプルー検出処理の手順を示すフローチャートである。
【0067】
図8に示すように、第1の検出部14aは、記憶部13からCADデータ13cを取得する(ステップS201)。続いて、第1の検出部14aは、形状が「円」で、XY平面に平行で、かつZ軸方向の座標値が最大の面を特定し、特定した面をスプルー20aの入り口として検出する(ステップS202)。そして、第1の検出部14aは、スプルー20aの入り口に近い側から順番に、面および線のそれぞれに、それぞれ独立して、IDとして正の整数を昇順で割り当てる(ステップS203)。続いて、第1の検出部14aは、スプルー20aの入り口として検出した面とつながっている面、すなわち、スプルー20aを形成する面のIDを検出する(ステップS204)。
【0068】
そして、第1の検出部14aは、検出したIDが示す面を形成する各線の各IDを検出する(ステップS205)。続いて、第1の検出部14aは、検出した面のIDおよび各線の各IDを、スプルー20aを形成する面および線のIDとして記憶部13に格納する(ステップS206)。そして、第1の検出部14aは、スプルー20aを形成する面および線のIDに対応付けて、スプルーであることを示す属性を記憶部13に格納し(ステップS207)、処理結果を制御部14の内部メモリに格納し、リターンする。
【0069】
続いて、上記のステップS102で実行するゲート候補検出処理について説明する。図9は、実施例1に係るゲート候補検出処理の手順を示すフローチャートである。
【0070】
図9に示すように、第2の検出部14bは、変数nの値を「2」に設定する(ステップS301)。
【0071】
続いて、第2の検出部14bは、次の2つの判定の少なくとも一方を行う(ステップS302)。一つ目の判定は、face(n)の面の形状が「円筒面」であり、edgenの形状が「円」であり、edgen+1の形状が「円」であるか否かの判定である。二つ目の判定は、face(n)の面の形状が「四角形(直方体の6面のうち4面の場合)」であり、edgenの形状が「四角形」であり、edgen+1の形状が「四角形」であるか否かの判定である。
【0072】
ステップS302で両方の判定で否定判定の場合には、ステップS306へ進む。ここで、ステップS302で少なくとも一方の判定で肯定判定の場合には、第2の検出部14bは、edgenおよびedgen+1の各線をXY平面に投影するとともに、XZ平面に投影する(ステップS303)。続いて、第2の検出部14bは、XY平面に投影されたedgen+1の長さが、edgenの長さ以下である場合、または、XZ平面に投影されたedgen+1の長さが、edgenの長さ以下である場合(ステップS304肯定)には、次のような処理を行う。すなわち、第2の検出部14bは、(edgen,face(n),edgen+1)の組をゲート候補として、配列Aに格納する(ステップS305)。また、XY平面に投影されたedgen+1の長さが、edgenの長さ以下でなく、かつXZ平面に投影されたedgen+1の長さが、edgenの長さ以下でない場合(ステップS304否定)には、ステップS306へ進む。
【0073】
そして、第2の検出部14bは、変数nの値を一つインクリメントする(ステップS306)。続いて、第2の検出部14bは、変数nの値が、面に割り当てられたIDの数の最大値を超えたか否かを判定する(ステップS307)。変数nの値が、面に割り当てられたIDの数の最大値を超えた場合(ステップS307肯定)には、第2の検出部14bは、処理結果を制御部14の内部メモリに格納し、リターンする。一方、変数nの値が、面に割り当てられたIDの数の最大値を超えていない場合(ステップS307否定)には、ステップS302へ戻る。
【0074】
続いて、上記のステップS103で実行するゲート・ランナー検出処理について説明する。図10は、実施例1に係るゲート・ランナー検出処理の手順を示すフローチャートである。
【0075】
図10に示すように、第2の検出部14bは、配列Aに格納された各ゲート候補の面および線のIDに基づいて、面がつながっている各ゲート候補どうしを組み合わせて一つの要素として、配列Rに格納する(ステップS401)。
【0076】
そして、第2の検出部14bは、配列Rの各要素に含まれる各線に、スプルー20aの入り口に近い側から順番に、IDとして正の整数を昇順で新たに割り当てる(ステップS402)。
【0077】
続いて、第2の検出部14bは、変数i、mの各値を1に設定する(ステップS403)。そして、配列R[i]の要素のedge[m+1]およびedge[m]の各線をXY平面に投影するとともに、XZ平面に投影する(ステップS404)。なお、ステップS404の処理は、すでに投影された線については省略できる。
【0078】
そして、第2の検出部14bは、次の2つの判定の少なくとも一方を行う(ステップS405)。一つ目の判定は、XY平面に投影されたedge[m+1]の長さが、edge[m]の長さ以下であるか否かの判定である。二つめの判定は、XZ平面に投影されたedge[m+1]の長さが、edge[m]の長さ以下であるか否かの判定である。
【0079】
ステップS405で、両方の判定で否定判定の場合には、ステップS412へ進む。また、ステップS405で少なくとも一方の判定で肯定判定の場合には、第2の検出部14bは、(edge[m],(edge[m]およびedge[m+1]の各線を有する面),edge[m+1])の組をゲートとして検出する(ステップS406)。
【0080】
そして、第2の検出部14bは、ゲート20bを形成する面および線のIDに対応付けて、ゲートであることを示す属性を記憶部13に格納する(ステップS407)。そして、第3の検出部14cは、スプルー20aと、ゲート20bとの間のランナーシステムモデル13aの部分をランナー20cとして検出する(ステップS408)。その後、第3の検出部14cは、ランナー20cとして検出した部分の線および面の各IDに、ランナーであることを示す属性を対応付けて記憶部13に格納する(ステップS409)。
【0081】
その後、第3の検出部14cは、変数mの値を一つインクリメントする(ステップS410)。続いて、第3の検出部14cは、変数mの値が配列R[i]の要素に含まれる線の個数以上となったか否かを判定する(ステップS411)。変数mの値が配列R[i]の要素に含まれる線の個数以上となっていない場合(ステップS411否定)には、ステップS404に戻る。
【0082】
一方、変数mの値が配列R[i]の要素に含まれる線の個数以上となった場合(ステップS411肯定)には、第3の検出部14cは、変数iの値を一つインクリメントする(ステップS412)。そして、第3の検出部14cは、変数iの値が配列Rの要素数を超えたか否かを判定する(ステップS413)。変数iの値が配列Rの要素数を超えていない場合(ステップS413否定)には、ステップS404に戻る。一方、変数iの値が配列Rの要素数を超えた場合(ステップS413肯定)には、第2の検出部14bおよび第3の検出部14cは、処理結果を制御部14の内部メモリに格納し、リターンする。
【0083】
[実施例1の効果]
上述してきたように、本実施例に係る検出装置10は、解析対象のCADデータ13cに含まれるランナーシステムモデル13aに基づいて、次のような処理を行う。すなわち、本実施例に係る検出装置10は、ランナーシステムモデル13aが示すランナーシステム20において、断面の形状が円である突出した部分を特定することで、ランナーシステム20のスプルー20aを検出する。また、本実施例に係る検出装置10は、CADデータ13c、およびゲートの形状、例えばテーパー形状、直方体または直円柱に基づいて、ランナーシステム20のゲート20bを検出する。また、本実施例に係る検出装置10は、ランナーシステムモデル13a、スプルー20a、およびゲート20bに基づいて、ランナーシステム20のランナー20cを検出する。よって、本実施例に係る検出装置10によれば、CADデータ13cに含まれるランナーシステム20を自動的に検出することができる。
【0084】
また、本実施例に係る検出装置10は、スプルー20aとゲート20bとの間のランナーシステムモデル20の部分をランナー20cとして検出する。よって、本実施例に係る検出装置10によれば、複雑な処理を行うことなく簡易にランナー20cを検出することができる。
【0085】
また、本実施例に係る検出装置10は、ランナーシステム20の形状が広くなる部分までのランナーシステムモデル13aの部分を、ゲート20bとして検出する。本実施例に係る検出装置10によれば、ランナーシステム20と、ランナーシステム20に接続されている製品21とを高い精度で切り分けることができ、より高い精度でランナーシステム20の検出を行うことができる。
【0086】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0087】
上記の実施例では、CADデータ13cを生成する際に、Z軸の正の方向に、スプルー20aの入り口が設定された場合について例示したが、開示の装置はこれに限定されない。例えば、CADデータ13cを生成する際に、X軸またはY軸の正の方向に、スプルー20aの入り口を設定するようにしてもよい。
【0088】
また、上記の実施例では、各処理で割り当てたIDを元のランナーシステムモデル13aに含まれている、対応するIDに変換しない場合について例示したが、開示の装置はこれに限定されない。例えば、各処理で割り当てたIDを元のランナーシステムモデル13aに含まれている、対応するIDに変換するようにしてもよい。
【0089】
また、実施例1において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。例えば、図8のステップS201において、ユーザが入力部11を操作して、CADデータを入力するようにしてもよい。
【0090】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。例えば、ステップS303、ステップS404で全ての平面について図形の長さを算出したが、開示の装置はこれに限られない。例えば、開示の装置は、ステップS303、ステップS404において、各線をXY平面またはXZ平面の何れかの平面に投影するようにしてもよい。
【0091】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示す第3の検出部14cとシミュレート部14dとが統合されてもよい。また、図1に示す第1の検出部14aと第2の検出部14bと第3の検出部14cとが統合されてもよい。
【実施例2】
【0092】
[検出プログラム]
また、上記の実施例で説明した検出装置10の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図11を用いて、上記の実施例で説明した検出装置と同様の機能を有する検出プログラムを実行するコンピュータの一例を説明する。図11は、検出プログラムを実行するコンピュータを示す図である。
【0093】
図11に示すように、実施例2におけるコンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340を有する。これら300〜340の各部は、バス400を介して接続される。
【0094】
ROM320には、上記の実施例1で示す第1の検出部14aと、第2の検出部14bと、第3の検出部14cと、シミュレート部14dと同様の機能を発揮する検出プログラムが予め記憶される。すなわち、ROM320には、図11に示すように、検出プログラム320aが記憶される。なお、検出プログラム320aについては、適宜分離しても良い。
【0095】
そして、CPU310が、検出プログラム320aをROM320から読み出して実行する。
【0096】
そして、HDD330には、CADデータ330aが設けられる。CADデータ330aは、図1に示したCADデータ13cに対応する。
【0097】
そして、CPU310は、CADデータ330aを読み出してRAM340に格納する。CPU310は、RAM340に格納されたCADデータ340aを用いて、検出プログラム320aを実行する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納される必要はなく、処理に必要なデータのみがRAM340に格納されれば良い。
【0098】
なお、上記した検出プログラムについては、必ずしも最初からHDD330に記憶させておく必要はない。
【0099】
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0100】
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0101】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0102】
(付記1)解析対象のデータに含まれるランナーシステムモデルに基づいて、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出し、
前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出し、
前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する
処理をコンピュータに実行させることを特徴とする検出プログラム。
【0103】
(付記2)前記ゲートを検出する処理は、前記データ、および前記ゲートの形状であるテーパー形状であって、樹脂の射出に近づくほど開口面積が狭くなるテーパー形状、若しくは直方体、または直円柱に基づいて、前記ゲートを検出することを特徴とする付記1に記載の検出プログラム。
【0104】
(付記3)前記ランナーを検出する処理は、前記スプルーと前記ゲートとの間の前記ランナーシステムモデルの部分を前記ランナーとして検出することを特徴とする付記1または2に記載の検出プログラム。
【0105】
(付記4)前記ゲートを検出する処理は、前記ランナーシステムの形状が広くなる部分までの前記ランナーシステムモデルの部分を、前記ゲートとして検出することを特徴とする付記1〜3の何れか1つに記載の検出プログラム。
【0106】
(付記5)コンピュータが実行する検出方法であって、
解析対象のデータに含まれるランナーシステムモデルに基づいて、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出し、
前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出し、
前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する
ことを特徴とする検出方法。
【0107】
(付記6)前記データ、および前記ゲートの形状であるテーパー形状であって、樹脂の射出に近づくほど開口面積が狭くなるテーパー形状、若しくは直方体、または直円柱に基づいて、前記ゲートを検出することを特徴とする付記5に記載の検出方法。
【0108】
(付記7)前記スプルーと前記ゲートとの間の前記ランナーシステムモデルの部分を前記ランナーとして検出することを特徴とする付記5または6に記載の検出方法。
【0109】
(付記8)前記ランナーシステムの形状が広くなる部分までの前記ランナーシステムモデルの部分を、前記ゲートとして検出することを特徴とする付記5〜7の何れか1つに記載の検出方法。
【0110】
(付記9)解析対象のデータに含まれるランナーシステムモデルに基づいて、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出する第1の検出部と、
前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出する第2の検出部と、
前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する第3の検出部と
を有することを特徴とする検出装置。
【0111】
(付記10)前記第2の検出部は、前記データ、および前記ゲートの形状であるテーパー形状であって、樹脂の射出に近づくほど開口面積が狭くなるテーパー形状、若しくは直方体、または直円柱に基づいて、前記ゲートを検出することを特徴とする付記9に記載の検出装置。
【0112】
(付記11)前記第3の検出部は、前記スプルーと前記ゲートとの間の前記ランナーシステムモデルの部分を前記ランナーとして検出することを特徴とする付記9または10に記載の検出装置。
【0113】
(付記12)前記第2の検出部は、前記ランナーシステムの形状が広くなる部分までの前記ランナーシステムモデルの部分を、前記ゲートとして検出することを特徴とする付記9〜11の何れか1つに記載の検出装置。
【符号の説明】
【0114】
10 検出装置
11 入力部
12 出力部
13 記憶部
13a ランナーシステムモデル
13b 製品モデル
13c CADデータ
14 制御部
14a 第1の検出部
14b 第2の検出部
14c 第3の検出部
14d シミュレート部
【技術分野】
【0001】
本発明は、検出プログラム、検出方法および検出装置に関する。
【背景技術】
【0002】
近年、世界的に、環境性能指向が進んでいる。そのため、樹脂製品の需要性が高まっている。そして、樹脂製品の成形性を製造前に検証する樹脂流動解析の普及が進んでいる。樹脂流動解析では、3次元Computer Aided Design(CAD)で作成したモデルをComputer Aided Engineering(CAE)に取り込む技術が一般的である。
【0003】
樹脂流動解析の一例では、樹脂成形するためのランナーシステムのモデルを含むCADデータがCAEに取り込まれて、所定のランナーシステムを用いて樹脂製品を製造した場合の所定時間内における金型への溶融樹脂の充填量などが予測される。樹脂流動解析の他の例では、ランナーシステムのモデルを含むCADデータがCAEに取り込まれて、金型への溶融樹脂の充填率が所定の値を満たす場合のランナーシステムのゲートの出射部分の開口面積が予測される。
【0004】
このような樹脂流動解析では、CADデータがCAEに取り込まれた場合に、解析を行うユーザは、表示装置に表示されたランナーシステムを目視で識別する。そして、ユーザは、識別したランナーシステムに対して、キーボードやマウスなどの入力部を介して、手動で、ランナーシステムであることを示す属性を割り当てる。かかる属性の割り当て方法の一例としては、ランナーシステム全体に、ランナーシステムであることを示す属性を割り当てる方法がある。また、他の例では、ランナーシステムのスプルー、ゲート、ランナーの各々に、スプルー、ゲート、ランナーの各々であることを示す属性を割り当てる方法がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−344096号公報
【特許文献2】特開平10−138310号公報
【特許文献3】特開2005−301450号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記の従来の技術では、ユーザが、ランナーシステムに対して手動で属性を割り当てるため、余分な手間がかかるという問題がある。これは、従来の技術では、データに含まれるランナーシステムを自動的に検出できないからである。そのため、従来の技術では、バッチ処理による解析の自動実行を行うことができず、現在の流行である最適化の適用の障害となっている。
【0007】
開示の技術は、上記に鑑みてなされたものであって、データに含まれるランナーシステムを自動的に検出することができる検出プログラム、検出方法および検出装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本願の開示する検出プログラムは、一つの態様において解析対象のデータに含まれるランナーシステムモデルに基づいて、次のような処理をコンピュータに実行させる。すなわち、本願の開示する検出プログラムは、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出する処理をコンピュータに実行させる。そして、本願の開示する検出プログラムは、前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出する処理をコンピュータに実行させる。そして、本願の開示する検出プログラムは、前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する処理をコンピュータに実行させる。
【発明の効果】
【0009】
本願の開示する検出プログラムの一つの態様によれば、データに含まれるランナーシステムを自動的に検出することができる。
【図面の簡単な説明】
【0010】
【図1】図1は、実施例1に係る検出装置の構成を示す図である。
【図2】図2は、CADデータの形式の一例を示す図である。
【図3】図3は、ランナーシステムモデルが示すランナーシステム、および製品モデルが示す製品の一例を示す図である。
【図4】図4は、ランナーシステムモデルが示すランナーシステムの一例を示す図である。
【図5】図5は、実施例1におけるスプルーの検出方法の一例を説明するための図である。
【図6】図6は、第2の検出部の処理の一例を説明するための図である。
【図7】図7は、実施例1に係る検出処理の手順を示すフローチャートである。
【図8】図8は、実施例1に係るスプルー検出処理の手順を示すフローチャートである。
【図9】図9は、実施例1に係るゲート候補検出処理の手順を示すフローチャートである。
【図10】図10は、実施例1に係るゲート・ランナー検出処理の手順を示すフローチャートである。
【図11】図11は、検出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0011】
以下に、本願の開示する検出プログラム、検出方法および検出装置の各実施例を図面に基づいて詳細に説明する。なお、各実施例は開示の技術を限定するものではない。
【実施例1】
【0012】
[検出装置の構成]
図1は、実施例1に係る検出装置の構成を示す図である。本実施例に係る検出装置10は、ランナーシステムモデルを含むCADデータから、ランナーシステムモデルが示すランナーシステムのスプルー、ゲートを検出する。また、本実施例に係る検出装置10は、スプルーとゲートとの間のランナーシステムモデルの部分をランナーとして検出する。
【0013】
図1に示すように、検出装置10は、入力部11と、出力部12と、記憶部13と、制御部14とを有する。
【0014】
入力部11は、各種情報を制御部14に入力する。例えば、入力部11は、ユーザから、後述の検出処理を実行する指示を受け付けて、受け付けた指示を制御部14に入力する。入力部11は、マウスやキーボードなどの操作受付デバイスである。
【0015】
出力部12は、各種の情報を出力する。出力部12のデバイスの一例としては、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などの表示デバイスや、音声を出力する音声出力デバイスなどが挙げられる。例えば、出力部12が表示デバイスである場合には、出力部12は、後述のシミュレート部14dから送信されたシミュレーション結果を表示する。また、出力部12が音声デバイスである場合には、出力部12は、後述のシミュレート部14dから送信されたシミュレーション結果を音声で出力する。
【0016】
記憶部13は、各種情報を記憶する。例えば、記憶部13は、ランナーシステムのモデルであるランナーシステムモデル13aと、ランナーシステムにより溶融樹脂が金型に流し込まれて成形された製品のモデルである製品モデル13bとを含むCADデータ13cを記憶する。CADデータ13cは、解析対象のデータであり、後述のシミュレート部14dによるシミュレーションに用いられる。
【0017】
CADデータのデータ構造としては、例えば、面(face)、線(edge)を含むデータ構造が挙げられる。例えば、面は、モデルが示す物体を形成するものである。面は、「ID(Identification)」、「形状」、「かかる形状を形成する各線の各ID」の各情報を含む。また、線は、線が閉じていない場合には「両端部の位置座標」、線が閉じている場合には両端部が存在しないので「線が示す形状」、および「ID」の各情報を含む。図2は、CADデータの形式の一例を示す図である。図2の例では、所定のモデルが示す物体の一部分を示す面15aおよび面15bが示されている。
【0018】
図2の例では、面15aは、「ID」が「1」で、「形状」が四角形で、四角形を構成する4つの線100〜103の各IDが「100」、「101」、「102」、「103」である場合が示されている。また、図2の例では、面15bは、「ID」が「2」で、「形状」が四角形で、四角形を構成する4つの線100、104〜106の各IDが「100」、「104」、「105」、「106」である場合が示されている。したがって、CADデータの形式がこのような場合には、2つの面で共通する線が存在する場合には、両面がつながっていると判断することができる。例えば、図2の例では、面15aと面15bとの両面では、IDが「100」である線が共通するので、面15aと面15bとはつながっている、すなわち連続性があると判断することができる。なお、面が「円」である場合には、円を形成する線は閉じており、線が示す形状が「円」となるため、線の情報には、「線が示す形状」が「円」であることが含まれる。また、直方体を構成する6つの面のうち、直方体の周りを一周した場合の4つの面を一つの「面」とする場合もある。このような場合に、面の形状は、「四角形」となる。また、かかる「四角形」を形成する線は閉じており、線が示す形状も「四角形」となる。このため、線の情報には、「線が示す形状」が「四角形」であることが含まれる。
【0019】
図3は、ランナーシステムモデルが示すランナーシステム、および製品モデルが示す製品の一例を示す図である。図3に示すように、ランナーシステムモデル13aが示すランナーシステム20は、製品モデル13bが示す製品21に接続されている。
【0020】
図4は、ランナーシステムモデルが示すランナーシステムの一例を示す図である。図4に示すように、ランナーシステム20は、スプルー20aと、ゲート20bと、ランナー20cとを有する。
【0021】
スプルー20aは、図示しない射出成形機のノズルに接する部分からランナー20cに至るまでの溶融樹脂の流入通路を形成する部品である。スプルー20aの形状の一例としては、円柱に勾配をつけた形状である円形テーパーが挙げられる。また、スプルー20aの断面の一例としては、円形が挙げられる。また、他形状と接していない円断面を、ランナーシステムモデル13aから読み取れば、その円断面を入り口とするスプルー20aを検出することが可能となる。なお、上記のような円形テーパーをスプルー20aに採用する場合には、スプルー20aの開口面積は、射出成形機のノズル側ほど、狭くなる。
【0022】
ゲート20bは、溶融樹脂がランナー20cから金型キャビティに流入するための部品である。成形品の形状、外観、品質などを考慮して種々のゲートが使用される。ゲート20bの形状の一例としては、円形テーパーまたは直方体が挙げられる。また、ゲート20bの形状の他の例としては、直円柱が挙げられる。また、ゲート20bの断面の一例としては、円形または四角が挙げられる。また、ゲート20bの開口面積は、金型キャビティ側ほど、狭くなるか、全て同一となる。したがって、溶融樹脂が流れる上流側の長さが、下流側の長さよりも短くなるような線により形成される面をランナーシステムモデル13aから読み取れば、その面の位置からゲート20bを検出することができる。
【0023】
ランナー20cは、溶融樹脂がスプルー20aからゲート20bに至る中間の通路を形成する部品である。ランナー20cの形状の一例としては、円形、直方体または台形が挙げられる。また、ランナー20cの断面の一例としては、円形、四角形または台形が挙げられる。
【0024】
記憶部13は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部13は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
【0025】
制御部14は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部14は、図1に示すように、第1の検出部14aと、第2の検出部14bと、第3の検出部14cと、シミュレート部14dとを有する。
【0026】
第1の検出部14aは、スプルーを検出する。例えば、第1の検出部14aは、記憶部13からCADデータ13cを取得する。第1の検出部14aは、CADデータ13cに含まれる面のうち、形状が「円」で、XY平面に平行で、かつ面の位置がZ軸方向で最大となる面を特定する。そして、第1の検出部14aは、特定した面を、スプルー20aの入り口の面として検出する。なお、CADデータ13cを生成する際に、Z軸の正の方向に、スプルー20aの入り口が設定されているものとする。また、面の位置は、面を形成する線の両端末の位置のうち、Z軸方向の位置が最大のものを面の位置として採用することができる。
【0027】
図5は、実施例1におけるスプルーの検出方法の一例を説明するための図である。図5の例では、第1の検出部14aは、形状が「円」で、XY平面に平行で、かつZ軸方向の座標値が最大の面25を特定し、特定した面25をスプルー20aの入り口として検出する。
【0028】
そして、第1の検出部14aは、スプルー20aの入り口として検出した面とつながっている面のIDを検出する。続いて、第1の検出部14aは、検出したIDが示す面を形成する各線の各IDを検出する。そして、第1の検出部14aは、検出した面のIDおよび各線の各IDを、スプルー20aを形成する面および線のIDとして記憶部13に格納する。このように、第1の検出部14aは、スプルー20aを形成する面および線の各IDを検出することで、スプルー20aを検出する。
【0029】
そして、第1の検出部14aは、スプルー20aを形成する面および線の各IDに対応付けて、スプルーであることを示す属性を記憶部13に格納する。このように、第1の検出部14aは、断面の形状が円である突出した部分を特定することで、スプルー20aを検出する。
【0030】
図5の例では、面25に、円筒面である面26がつながっている。このような場合には、第1の検出部14aは、面26のID「26」を検出する。また、図5の例では、第1の検出部14aは、面26を形成する各線27、28の各ID「27」、「28」を検出する。そして、図5の例では、第1の検出部14aは、スプルー20aを形成する面および線のIDとして、ID「26」、ID「27」、ID「28」を記憶部13に格納する。
【0031】
また、第1の検出部14aは、面および線に対してIDを新たに割り当てる。例えば、第1の検出部14aは、スプルー20aの入り口に近い側から順番に、面および線のそれぞれに、それぞれ独立して、IDとして正の整数を昇順で割り当てる。ここで、例えば、整数「1」をIDとして割り当てられた面を、「face(1)」と表す。同様に、整数「N」をIDとして割り当てられた面を、「face(N)」と表す。また、整数「1」をIDとして割り当てられた線を、「edge(1)」と表す。同様に、整数「N」をIDとして割り当てられた線を、「edge(N)」と表す。また、face(N)の面の形状を形成する線のうち、最もスプルー20a側に位置する線を「edgeN」と表現し、最も金型キャビティ側に位置する線を「edgeN+1」と表現する。
【0032】
第2の検出部14bは、ゲートを検出する。ここで、第2の検出部14bは、ゲート20bに含まれる任意の一つの面を形成する線のうち、金型キャビティ側に位置する線の長さは、スプルー20a側に位置する線の長さ以下であることを利用して、ゲートを検出する。ゲート20bの開口面積が金型キャビティ側ほど広くなるように設計すると、溶融樹脂を射出する圧力が弱くなり、所望の溶融樹脂を金型キャビティに充填することができなくなり、製品の射出成形に支障をきたす場合がある。そのため、ゲート20bの開口面積が金型キャビティ側ほど広くならないように設計するのが一般的である。
【0033】
具体例を挙げて説明すると、例えば、第2の検出部14bは、face(n)の面の形状が「円筒面」であり、edgenの形状が「円」であり、edgen+1の形状が「円」である場合には、次のような処理を行う。すなわち、第2の検出部14bは、edgenおよびedgen+1の各線をXY平面に投影するとともに、XZ平面に投影する。そして、第2の検出部14bは、XY平面に投影されたedgen+1の長さが、edgenの長さ以下である場合、または、XZ平面に投影されたedgen+1の長さが、edgenの長さ以下である場合には、次のような処理を行う。すなわち、第2の検出部14bは、(edgen,face(n),edgen+1)の組をゲート候補として検出し、検出したゲート候補を配列A[n]に格納する。
【0034】
また、第2の検出部14bは、face(n)の面の形状が「四角形」であり、edgenの形状が「四角形」であり、edgen+1の形状が「四角形」である場合には、次のような処理を行う。すなわち、第2の検出部14bは、edgenおよびedgen+1の各線をXY平面に投影するとともに、XZ平面に投影する。そして、第2の検出部14bは、XY平面に投影されたedgen+1の長さが、edgenの長さ以下である場合、または、XZ平面に投影されたedgen+1の長さが、edgenの長さ以下である場合には、次のような処理を行う。すなわち、第2の検出部14bは、(edgen,face(n),edgen+1)の組をゲート候補として、配列Aに格納する。
【0035】
第2の検出部14bは、上記の処理をnの値が2から、面に割り当てられたIDの数の最大値となるまで、繰り返し行う。このようにして、第2の検出部14bは、配列Aにゲート候補の組を格納する。なお、配列A[i]は、配列Aに格納されたi番目のゲート候補を指す。
【0036】
そして、第2の検出部14bは、配列Aに格納された各ゲート候補の面および線のIDに基づいて、面がつながっている各ゲート候補どうしを組み合わせて一つの要素として、配列Rに格納する。なお、配列R[i]は、配列Rに格納されたi番目の要素を指す。
【0037】
そして、第2の検出部14bは、配列Rの各要素に含まれる各線に、スプルー20aの入り口に近い側から順番に、IDとして正の整数を昇順で新たに割り当てる。
【0038】
図6は、第2の検出部の処理の一例を説明するための図である。図6の例には、模擬されたランナーシステム20の一例の上面図が示されている。図6の例では、線51が「edge5」、面52が「face(5)」、線53が「edge6」、面54が「face(6)」、線55が「edge7」、面56が「face(7)」、線57が「edge8」に対応する。また、図6の例では、線58が「edge10」、面59が「face(10)」、線60が「edge11」、面61が「face(11)」、線62が「edge12」、面63が「face(12)」、線64が「edge13」に対応する。また、図6の例では、線65が「edge15」、面66が「face(15)」、線67が「edge16」、面68が「face(16)」、線69が「edge17」、面70が「face(17)」、線71が「edge18」に対応する。
【0039】
また、図6の例では、線72が「edge20」、面73が「face(20)」、線74が「edge21」、面75が「face(21)」、線76が「edge22」、面77が「face(22)」、線78が「edge23」に対応する。また、図6の例では、線79が「edge25」、面80が「face(25)」、線81が「edge26」、面82が「face(26)」、線83が「edge27」、面84が「face(27)」、線85が「edge28」に対応する。また、図6の例では、線86が「edge30」、面87が「face(30)」、線88が「edge31」、面89が「face(31)」、線90が「edge32」、面91が「face(32)」、線92が「edge33」に対応する。
【0040】
なお、図6の例では、線55、面56及び線57により構成される部分は、製品である。また、図6の例では、線62、面63及び線64により構成される部分は、製品である。また、図6の例では、線69、面70及び線71により構成される部分は、製品である。また、図6の例では、線76、面77及び線78により構成される部分は、製品である。また、図6の例では、線83、面84及び線85により構成される部分は、製品である。また、図6の例では、線90、面91及び線92により構成される部分は、製品である。
【0041】
図6の例では、第2の検出部14bは、(edge5,face(5),edge6)を配列A[1]に、(edge6,face(6),edge7)を配列A[2]に、(edge7,face(7),edge8)を配列A[3]に格納する。また、図6の例では、第2の検出部14bは、(edge10,face(10),edge11)を配列A[4]に、(edge11,face(11),edge12)を配列A[5]に、(edge12,face(12),edge13)を配列A[6]に格納する。
【0042】
また、図6の例では、第2の検出部14bは、(edge15,face(15),edge16)を配列A[7]に、(edge16,face(16),edge17)を配列A[8]に格納する。また、図6の例では、第2の検出部14bは、(edge17,face(17),edge18)を配列A[9]に格納する。また、図6の例では、第2の検出部14bは、(edge20,face(20),edge21)を配列A[10]に、(edge21,face(21),edge22)を配列A[11]に格納する。また、図6の例では、第2の検出部14bは、(edge22,face(22),edge23)を配列A[12]に格納する。
【0043】
また、図6の例では、第2の検出部14bは、(edge25,face(25),edge26)を配列A[13]に、(edge26,face(26),edge27)を配列A[14]に格納する。また、図6の例では、第2の検出部14bは、(edge27,face(27),edge28)を配列A[15]に格納する。また、図6の例では、第2の検出部14bは、(edge30,face(30),edge31)を配列A[16]に、(edge31,face(31),edge32)を配列A[17]に格納する。また、図6の例では、第2の検出部14bは、(edge32,face(32),edge33)を配列A[18]に格納する。このように、図6の例において、第2の検出部14bは、要素数が18となる配列Aを生成する。
【0044】
そして、図6の例では、第2の検出部14bは、(edge5,face(5),edge6)、(edge6,face(6),edge7)および(edge7,face(7),edge8)のゲート候補同士を組み合わせて一つの要素とする。そして、第2の検出部14bは、かかる要素を配列R[1]に格納する。
【0045】
また、図6の例では、第2の検出部14bは、(edge10,face(10),edge11)、(edge11,face(11),edge12)および(edge12,face(12),edge13)のゲート候補同士を組み合わせて一つの要素とする。そして、第2の検出部14bは、かかる要素を配列R[2]に格納する。
【0046】
また、図6の例では、第2の検出部14bは、(edge15,face(15),edge16)、(edge16,face(16),edge17)および(edge17,face(17),edge18)のゲート候補同士を組み合わせて一つの要素とする。そして、第2の検出部14bは、かかる要素を配列R[3]に格納する。
【0047】
また、図6の例では、第2の検出部14bは、(edge20,face(20),edge21)、(edge21,face(21),edge22)および(edge22,face(22),edge23)のゲート候補同士を組み合わせて一つの要素とする。そして、第2の検出部14bは、かかる要素を配列R[4]に格納する。
【0048】
また、図6の例では、第2の検出部14bは、(edge25,face(25),edge26)、(edge26,face(26),edge27)および(edge27,face(27),edge28)のゲート候補同士を組み合わせて一つの要素とする。そして、第2の検出部14bは、かかる要素を配列R[5]に格納する。
【0049】
また、図6の例では、第2の検出部14bは、(edge30,face(30),edge31)、(edge31,face(31),edge32)および(edge32,face(32),edge33)のゲート候補同士を組み合わせて一つの要素とする。そして、第2の検出部14bは、かかる要素を配列R[6]に格納する。
【0050】
このように、図6の例において、第2の検出部14bは、要素数が6となる配列Rを生成する。
【0051】
そして、図6の例では、第2の検出部14bは、配列R[1]の要素に含まれるedge5、edge6およびedge7のそれぞれの線に対して、新たにIDとして1,2,3のそれぞれを割り当てる。これにより、edge[1]、edge[2]およびedge[3]のそれぞれは、edge5、edge6およびedge7の各線を示す。
【0052】
また、図6の例では、第2の検出部14bは、配列R[2]の要素に含まれるedge10、edge11およびedge12のそれぞれの線に対して、新たにIDとして4,5,6のそれぞれを割り当てる。これにより、edge[4]、edge[5]およびedge[6]のそれぞれは、edge10、edge11およびedge12の各線を示す。
【0053】
また、図6の例では、第2の検出部14bは、配列R[3]の要素に含まれるedge15、edge16およびedge17のそれぞれの線に対して、新たにIDとして7,8,9のそれぞれを割り当てる。これにより、edge[7]、edge[8]およびedge[9]のそれぞれは、edge15、edge16およびedge17の各線を示す。
【0054】
また、図6の例では、第2の検出部14bは、配列R[4]の要素に含まれるedge20、edge21およびedge22のそれぞれの線に対して、新たにIDとして10,11,12のそれぞれを割り当てる。これにより、edge[10]、edge[11]およびedge[12]のそれぞれは、edge20、edge21およびedge22の各線を示す。
【0055】
また、図6の例では、第2の検出部14bは、配列R[5]の要素に含まれるedge25、edge26およびedge27のそれぞれの線に対して、新たにIDとして13,14,15のそれぞれを割り当てる。これにより、edge[13]、edge[14]およびedge[15]のそれぞれは、edge25、edge26およびedge27の各線を示す。
【0056】
また、図6の例では、第2の検出部14bは、配列R[6]の要素に含まれるedge30、edge31およびedge32のそれぞれの線に対して、新たにIDとして16,17,18のそれぞれを割り当てる。これにより、edge[16]、edge[17]およびedge[18]のそれぞれは、edge30、edge31およびedge32の各線を示す。
【0057】
そして、第2の検出部14bは、配列Rの各要素ごとに、各線をXY平面に投影するとともに、XZ平面に投影する。そして、第2の検出部14bは、配列Rの各要素ごとに、XY平面に投影されたedge[m+1]の長さが、edge[m]の長さ以下であるか、XZ平面に投影されたedge[m+1]の長さが、edge[m]の長さ以下である場合には、次の処理を行う。すなわち、第2の検出部14bは、(edge[m],(edge[m]およびedge[m+1]の各線を有する面),edge[m+1])の組をゲートとして検出する。すなわち、第2の検出部14bは、edge[m+1]の長さが、edge[m]の長さ以下とならない場合のedge[m]およびedge[m+1]の各線を有する面は、製品を形成する面であるため、ゲートを形成する面として検出しない。
【0058】
図6の例では、第2の検出部14bは、(edge[1],face(5),edge[2])の組をゲートとして検出する。また、図6の例では、第2の検出部14bは、(edge[4],face(10),edge[5])の組をゲートとして検出する。また、図6の例では、第2の検出部14bは、(edge[7],face(15),edge[8])の組をゲートとして検出する。また、図6の例では、第2の検出部14bは、(edge[10],face(20),edge[11])の組をゲートとして検出する。また、図6の例では、第2の検出部14bは、(edge[13],face(25),edge[14])の組をゲートとして検出する。また、図6の例では、第2の検出部14bは、(edge[16],face(30),edge[17])の組をゲートとして検出する。
【0059】
そして、第2の検出部14bは、ゲートとして検出したIDの組を、ゲート20bを形成する面および線のIDとして記憶部13に格納する。このように、第2の検出部14bは、ゲート20bを形成する面および線のIDを検出することで、ゲート20bを検出する。
【0060】
そして、第2の検出部14bは、ゲート20bを形成する面および線のIDに対応付けて、ゲートであることを示す属性を記憶する。
【0061】
第3の検出部14cは、スプルー20aと、ゲート20bとの間のランナーシステムモデル13aの部分をランナー20cとして検出する。第3の検出部14cは、ランナー20cとして検出した部分の線および面の各IDに、ランナーであることを示す属性を対応付けて記憶部13に記憶する。
【0062】
シミュレート部14dは、ランナーシステム20を用いてシミュレーションを行う。例えば、シミュレート部14dは、記憶部13から、対応付けられた各属性とともにスプルー20a、ゲート20bおよびランナー20cをランナーシステム20として取得し、ランナーシステム20を用いてシミュレーションを行う。シミュレーションの一例としては、シミュレート部14dは、ランナーシステム20を用いて樹脂製品を製造した場合の所定時間内における金型への溶融樹脂の充填量などを予測する。また、他の例では、シミュレート部14dは、金型への溶融樹脂の充填率が所定の値を満たす場合のランナーシステム20のゲート20bの出射部分の開口面積を予測する。そして、シミュレート部14dは、シミュレーション結果を出力部12に送信する。
【0063】
制御部14は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、または、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
【0064】
[処理の流れ]
次に、本実施例に係る検出装置10の処理の流れを説明する。図7は、実施例1に係る検出処理の手順を示すフローチャートである。この検出処理は、入力部11から制御部14に検出処理を実行する指示が入力された場合に実行される。
【0065】
図7に示すように、第1の検出部14aは、スプルー20aを検出するスプルー検出処理を実行する(ステップS101)。第2の検出部14bは、ゲート候補を検出するゲート候補検出処理を実行する(ステップS102)。第2の検出部14bおよび第3の検出部14cは、ゲート20bおよびランナー20cを検出するゲート・ランナー検出処理を実行する(ステップS103)。そして、シミュレート部14dは、検出したスプルー20a、ゲート20bおよびランナー20cを用いてシミュレーションを行い、シミュレーション結果を出力部12に送信し(ステップS104)、処理を終了する。
【0066】
続いて、上記のステップS101で実行するスプルー検出処理について説明する。図8は、実施例1に係るスプルー検出処理の手順を示すフローチャートである。
【0067】
図8に示すように、第1の検出部14aは、記憶部13からCADデータ13cを取得する(ステップS201)。続いて、第1の検出部14aは、形状が「円」で、XY平面に平行で、かつZ軸方向の座標値が最大の面を特定し、特定した面をスプルー20aの入り口として検出する(ステップS202)。そして、第1の検出部14aは、スプルー20aの入り口に近い側から順番に、面および線のそれぞれに、それぞれ独立して、IDとして正の整数を昇順で割り当てる(ステップS203)。続いて、第1の検出部14aは、スプルー20aの入り口として検出した面とつながっている面、すなわち、スプルー20aを形成する面のIDを検出する(ステップS204)。
【0068】
そして、第1の検出部14aは、検出したIDが示す面を形成する各線の各IDを検出する(ステップS205)。続いて、第1の検出部14aは、検出した面のIDおよび各線の各IDを、スプルー20aを形成する面および線のIDとして記憶部13に格納する(ステップS206)。そして、第1の検出部14aは、スプルー20aを形成する面および線のIDに対応付けて、スプルーであることを示す属性を記憶部13に格納し(ステップS207)、処理結果を制御部14の内部メモリに格納し、リターンする。
【0069】
続いて、上記のステップS102で実行するゲート候補検出処理について説明する。図9は、実施例1に係るゲート候補検出処理の手順を示すフローチャートである。
【0070】
図9に示すように、第2の検出部14bは、変数nの値を「2」に設定する(ステップS301)。
【0071】
続いて、第2の検出部14bは、次の2つの判定の少なくとも一方を行う(ステップS302)。一つ目の判定は、face(n)の面の形状が「円筒面」であり、edgenの形状が「円」であり、edgen+1の形状が「円」であるか否かの判定である。二つ目の判定は、face(n)の面の形状が「四角形(直方体の6面のうち4面の場合)」であり、edgenの形状が「四角形」であり、edgen+1の形状が「四角形」であるか否かの判定である。
【0072】
ステップS302で両方の判定で否定判定の場合には、ステップS306へ進む。ここで、ステップS302で少なくとも一方の判定で肯定判定の場合には、第2の検出部14bは、edgenおよびedgen+1の各線をXY平面に投影するとともに、XZ平面に投影する(ステップS303)。続いて、第2の検出部14bは、XY平面に投影されたedgen+1の長さが、edgenの長さ以下である場合、または、XZ平面に投影されたedgen+1の長さが、edgenの長さ以下である場合(ステップS304肯定)には、次のような処理を行う。すなわち、第2の検出部14bは、(edgen,face(n),edgen+1)の組をゲート候補として、配列Aに格納する(ステップS305)。また、XY平面に投影されたedgen+1の長さが、edgenの長さ以下でなく、かつXZ平面に投影されたedgen+1の長さが、edgenの長さ以下でない場合(ステップS304否定)には、ステップS306へ進む。
【0073】
そして、第2の検出部14bは、変数nの値を一つインクリメントする(ステップS306)。続いて、第2の検出部14bは、変数nの値が、面に割り当てられたIDの数の最大値を超えたか否かを判定する(ステップS307)。変数nの値が、面に割り当てられたIDの数の最大値を超えた場合(ステップS307肯定)には、第2の検出部14bは、処理結果を制御部14の内部メモリに格納し、リターンする。一方、変数nの値が、面に割り当てられたIDの数の最大値を超えていない場合(ステップS307否定)には、ステップS302へ戻る。
【0074】
続いて、上記のステップS103で実行するゲート・ランナー検出処理について説明する。図10は、実施例1に係るゲート・ランナー検出処理の手順を示すフローチャートである。
【0075】
図10に示すように、第2の検出部14bは、配列Aに格納された各ゲート候補の面および線のIDに基づいて、面がつながっている各ゲート候補どうしを組み合わせて一つの要素として、配列Rに格納する(ステップS401)。
【0076】
そして、第2の検出部14bは、配列Rの各要素に含まれる各線に、スプルー20aの入り口に近い側から順番に、IDとして正の整数を昇順で新たに割り当てる(ステップS402)。
【0077】
続いて、第2の検出部14bは、変数i、mの各値を1に設定する(ステップS403)。そして、配列R[i]の要素のedge[m+1]およびedge[m]の各線をXY平面に投影するとともに、XZ平面に投影する(ステップS404)。なお、ステップS404の処理は、すでに投影された線については省略できる。
【0078】
そして、第2の検出部14bは、次の2つの判定の少なくとも一方を行う(ステップS405)。一つ目の判定は、XY平面に投影されたedge[m+1]の長さが、edge[m]の長さ以下であるか否かの判定である。二つめの判定は、XZ平面に投影されたedge[m+1]の長さが、edge[m]の長さ以下であるか否かの判定である。
【0079】
ステップS405で、両方の判定で否定判定の場合には、ステップS412へ進む。また、ステップS405で少なくとも一方の判定で肯定判定の場合には、第2の検出部14bは、(edge[m],(edge[m]およびedge[m+1]の各線を有する面),edge[m+1])の組をゲートとして検出する(ステップS406)。
【0080】
そして、第2の検出部14bは、ゲート20bを形成する面および線のIDに対応付けて、ゲートであることを示す属性を記憶部13に格納する(ステップS407)。そして、第3の検出部14cは、スプルー20aと、ゲート20bとの間のランナーシステムモデル13aの部分をランナー20cとして検出する(ステップS408)。その後、第3の検出部14cは、ランナー20cとして検出した部分の線および面の各IDに、ランナーであることを示す属性を対応付けて記憶部13に格納する(ステップS409)。
【0081】
その後、第3の検出部14cは、変数mの値を一つインクリメントする(ステップS410)。続いて、第3の検出部14cは、変数mの値が配列R[i]の要素に含まれる線の個数以上となったか否かを判定する(ステップS411)。変数mの値が配列R[i]の要素に含まれる線の個数以上となっていない場合(ステップS411否定)には、ステップS404に戻る。
【0082】
一方、変数mの値が配列R[i]の要素に含まれる線の個数以上となった場合(ステップS411肯定)には、第3の検出部14cは、変数iの値を一つインクリメントする(ステップS412)。そして、第3の検出部14cは、変数iの値が配列Rの要素数を超えたか否かを判定する(ステップS413)。変数iの値が配列Rの要素数を超えていない場合(ステップS413否定)には、ステップS404に戻る。一方、変数iの値が配列Rの要素数を超えた場合(ステップS413肯定)には、第2の検出部14bおよび第3の検出部14cは、処理結果を制御部14の内部メモリに格納し、リターンする。
【0083】
[実施例1の効果]
上述してきたように、本実施例に係る検出装置10は、解析対象のCADデータ13cに含まれるランナーシステムモデル13aに基づいて、次のような処理を行う。すなわち、本実施例に係る検出装置10は、ランナーシステムモデル13aが示すランナーシステム20において、断面の形状が円である突出した部分を特定することで、ランナーシステム20のスプルー20aを検出する。また、本実施例に係る検出装置10は、CADデータ13c、およびゲートの形状、例えばテーパー形状、直方体または直円柱に基づいて、ランナーシステム20のゲート20bを検出する。また、本実施例に係る検出装置10は、ランナーシステムモデル13a、スプルー20a、およびゲート20bに基づいて、ランナーシステム20のランナー20cを検出する。よって、本実施例に係る検出装置10によれば、CADデータ13cに含まれるランナーシステム20を自動的に検出することができる。
【0084】
また、本実施例に係る検出装置10は、スプルー20aとゲート20bとの間のランナーシステムモデル20の部分をランナー20cとして検出する。よって、本実施例に係る検出装置10によれば、複雑な処理を行うことなく簡易にランナー20cを検出することができる。
【0085】
また、本実施例に係る検出装置10は、ランナーシステム20の形状が広くなる部分までのランナーシステムモデル13aの部分を、ゲート20bとして検出する。本実施例に係る検出装置10によれば、ランナーシステム20と、ランナーシステム20に接続されている製品21とを高い精度で切り分けることができ、より高い精度でランナーシステム20の検出を行うことができる。
【0086】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0087】
上記の実施例では、CADデータ13cを生成する際に、Z軸の正の方向に、スプルー20aの入り口が設定された場合について例示したが、開示の装置はこれに限定されない。例えば、CADデータ13cを生成する際に、X軸またはY軸の正の方向に、スプルー20aの入り口を設定するようにしてもよい。
【0088】
また、上記の実施例では、各処理で割り当てたIDを元のランナーシステムモデル13aに含まれている、対応するIDに変換しない場合について例示したが、開示の装置はこれに限定されない。例えば、各処理で割り当てたIDを元のランナーシステムモデル13aに含まれている、対応するIDに変換するようにしてもよい。
【0089】
また、実施例1において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。例えば、図8のステップS201において、ユーザが入力部11を操作して、CADデータを入力するようにしてもよい。
【0090】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。例えば、ステップS303、ステップS404で全ての平面について図形の長さを算出したが、開示の装置はこれに限られない。例えば、開示の装置は、ステップS303、ステップS404において、各線をXY平面またはXZ平面の何れかの平面に投影するようにしてもよい。
【0091】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示す第3の検出部14cとシミュレート部14dとが統合されてもよい。また、図1に示す第1の検出部14aと第2の検出部14bと第3の検出部14cとが統合されてもよい。
【実施例2】
【0092】
[検出プログラム]
また、上記の実施例で説明した検出装置10の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図11を用いて、上記の実施例で説明した検出装置と同様の機能を有する検出プログラムを実行するコンピュータの一例を説明する。図11は、検出プログラムを実行するコンピュータを示す図である。
【0093】
図11に示すように、実施例2におけるコンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340を有する。これら300〜340の各部は、バス400を介して接続される。
【0094】
ROM320には、上記の実施例1で示す第1の検出部14aと、第2の検出部14bと、第3の検出部14cと、シミュレート部14dと同様の機能を発揮する検出プログラムが予め記憶される。すなわち、ROM320には、図11に示すように、検出プログラム320aが記憶される。なお、検出プログラム320aについては、適宜分離しても良い。
【0095】
そして、CPU310が、検出プログラム320aをROM320から読み出して実行する。
【0096】
そして、HDD330には、CADデータ330aが設けられる。CADデータ330aは、図1に示したCADデータ13cに対応する。
【0097】
そして、CPU310は、CADデータ330aを読み出してRAM340に格納する。CPU310は、RAM340に格納されたCADデータ340aを用いて、検出プログラム320aを実行する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納される必要はなく、処理に必要なデータのみがRAM340に格納されれば良い。
【0098】
なお、上記した検出プログラムについては、必ずしも最初からHDD330に記憶させておく必要はない。
【0099】
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0100】
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0101】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0102】
(付記1)解析対象のデータに含まれるランナーシステムモデルに基づいて、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出し、
前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出し、
前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する
処理をコンピュータに実行させることを特徴とする検出プログラム。
【0103】
(付記2)前記ゲートを検出する処理は、前記データ、および前記ゲートの形状であるテーパー形状であって、樹脂の射出に近づくほど開口面積が狭くなるテーパー形状、若しくは直方体、または直円柱に基づいて、前記ゲートを検出することを特徴とする付記1に記載の検出プログラム。
【0104】
(付記3)前記ランナーを検出する処理は、前記スプルーと前記ゲートとの間の前記ランナーシステムモデルの部分を前記ランナーとして検出することを特徴とする付記1または2に記載の検出プログラム。
【0105】
(付記4)前記ゲートを検出する処理は、前記ランナーシステムの形状が広くなる部分までの前記ランナーシステムモデルの部分を、前記ゲートとして検出することを特徴とする付記1〜3の何れか1つに記載の検出プログラム。
【0106】
(付記5)コンピュータが実行する検出方法であって、
解析対象のデータに含まれるランナーシステムモデルに基づいて、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出し、
前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出し、
前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する
ことを特徴とする検出方法。
【0107】
(付記6)前記データ、および前記ゲートの形状であるテーパー形状であって、樹脂の射出に近づくほど開口面積が狭くなるテーパー形状、若しくは直方体、または直円柱に基づいて、前記ゲートを検出することを特徴とする付記5に記載の検出方法。
【0108】
(付記7)前記スプルーと前記ゲートとの間の前記ランナーシステムモデルの部分を前記ランナーとして検出することを特徴とする付記5または6に記載の検出方法。
【0109】
(付記8)前記ランナーシステムの形状が広くなる部分までの前記ランナーシステムモデルの部分を、前記ゲートとして検出することを特徴とする付記5〜7の何れか1つに記載の検出方法。
【0110】
(付記9)解析対象のデータに含まれるランナーシステムモデルに基づいて、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出する第1の検出部と、
前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出する第2の検出部と、
前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する第3の検出部と
を有することを特徴とする検出装置。
【0111】
(付記10)前記第2の検出部は、前記データ、および前記ゲートの形状であるテーパー形状であって、樹脂の射出に近づくほど開口面積が狭くなるテーパー形状、若しくは直方体、または直円柱に基づいて、前記ゲートを検出することを特徴とする付記9に記載の検出装置。
【0112】
(付記11)前記第3の検出部は、前記スプルーと前記ゲートとの間の前記ランナーシステムモデルの部分を前記ランナーとして検出することを特徴とする付記9または10に記載の検出装置。
【0113】
(付記12)前記第2の検出部は、前記ランナーシステムの形状が広くなる部分までの前記ランナーシステムモデルの部分を、前記ゲートとして検出することを特徴とする付記9〜11の何れか1つに記載の検出装置。
【符号の説明】
【0114】
10 検出装置
11 入力部
12 出力部
13 記憶部
13a ランナーシステムモデル
13b 製品モデル
13c CADデータ
14 制御部
14a 第1の検出部
14b 第2の検出部
14c 第3の検出部
14d シミュレート部
【特許請求の範囲】
【請求項1】
解析対象のデータに含まれるランナーシステムモデルに基づいて、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出し、
前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出し、
前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する
処理をコンピュータに実行させることを特徴とする検出プログラム。
【請求項2】
前記ゲートを検出する処理は、前記データ、および前記ゲートの形状であるテーパー形状であって、樹脂の射出に近づくほど開口面積が狭くなるテーパー形状、若しくは直方体、または直円柱に基づいて、前記ゲートを検出することを特徴とする請求項1に記載の検出プログラム。
【請求項3】
前記ランナーを検出する処理は、前記スプルーと前記ゲートとの間の前記ランナーシステムモデルの部分を前記ランナーとして検出することを特徴とする請求項1または2に記載の検出プログラム。
【請求項4】
前記ゲートを検出する処理は、前記ランナーシステムの形状が広くなる部分までの前記ランナーシステムモデルの部分を、前記ゲートとして検出することを特徴とする請求項1〜3の何れか1項に記載の検出プログラム。
【請求項5】
コンピュータが実行する検出方法であって、
解析対象のデータに含まれるランナーシステムモデルに基づいて、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出し、
前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出し、
前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する
ことを特徴とする検出方法。
【請求項6】
解析対象のデータに含まれるランナーシステムモデルに基づいて、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出する第1の検出部と、
前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出する第2の検出部と、
前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する第3の検出部と
を有することを特徴とする検出装置。
【請求項1】
解析対象のデータに含まれるランナーシステムモデルに基づいて、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出し、
前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出し、
前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する
処理をコンピュータに実行させることを特徴とする検出プログラム。
【請求項2】
前記ゲートを検出する処理は、前記データ、および前記ゲートの形状であるテーパー形状であって、樹脂の射出に近づくほど開口面積が狭くなるテーパー形状、若しくは直方体、または直円柱に基づいて、前記ゲートを検出することを特徴とする請求項1に記載の検出プログラム。
【請求項3】
前記ランナーを検出する処理は、前記スプルーと前記ゲートとの間の前記ランナーシステムモデルの部分を前記ランナーとして検出することを特徴とする請求項1または2に記載の検出プログラム。
【請求項4】
前記ゲートを検出する処理は、前記ランナーシステムの形状が広くなる部分までの前記ランナーシステムモデルの部分を、前記ゲートとして検出することを特徴とする請求項1〜3の何れか1項に記載の検出プログラム。
【請求項5】
コンピュータが実行する検出方法であって、
解析対象のデータに含まれるランナーシステムモデルに基づいて、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出し、
前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出し、
前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する
ことを特徴とする検出方法。
【請求項6】
解析対象のデータに含まれるランナーシステムモデルに基づいて、前記ランナーシステムモデルが示すランナーシステムにおいて、断面の形状が円である突出した部分を特定することで、前記ランナーシステムのスプルーを検出する第1の検出部と、
前記データ、およびゲートの形状に基づいて、前記ランナーシステムのゲートを検出する第2の検出部と、
前記ランナーシステムモデル、前記スプルー、および前記ゲートに基づいて、前記ランナーシステムのランナーを検出する第3の検出部と
を有することを特徴とする検出装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−116148(P2012−116148A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2010−269597(P2010−269597)
【出願日】平成22年12月2日(2010.12.2)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願日】平成22年12月2日(2010.12.2)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]