以下、本発明の実施形態を図面を用いて詳細に説明する。図1は、本発明に係る管体(パイプ)の3次元曲げ加工シミュレーションを実行するコンピュータ装置Mの構成をブロック図により示している。
コンピュータ装置Mは、キーボード11、マウス11aおよび表示器12を備えている。キーボード11は複数の操作子からなり、同操作子の操作状態はバス15に接続された検出回路13内に各操作子に対応して設けられた操作子スイッチのオン・オフによってそれぞれ検出される。マウス11aは、キーボード11を介して検出回路13に接続されており、このマウス11aの移動方向、移動量およびクリックの有無も検出回路13により検出される。そして、これらキーボード11およびマウス11aは、後述する設計データまたは加工データをコンピュータ装置Mに入力したり、各種指示を入力するために、例えば、オペレータによって操作される。
表示器12は、液晶ディスプレイまたはブラウン管装置などで構成されており、入力された各データや後述する各プログラムの実行によって再現されたシミュレーション結果などを表示する。この表示器12の表示態様は、バス15に接続された表示制御回路14によって制御される。
また、バス15には、CPU16、ROM17、RAM18および記憶装置19が接続されている。CPU16は、各種プログラムを実行してコンピュータ装置Mの各種動作を制御する。ROM17は、システムプログラム、コンピュータ装置Mの各種機能を実現するための一部のプログラム、各種データなどを予め記憶している。RAM18は、プログラムおよびプログラムの実行時に利用されるデータを一時的に記憶する。
記憶装置19は、コンピュータ装置Mに装着されたハードディスク(HD)、同コンピュータ装置Mに装着可能なコンパクトディスク(CD)、デジタル多目的ディスク(DVD)、光磁気ディスク(MO)などの各種記録媒体と、同各記録媒体に対するドライブユニットを含むものである。これらの記録媒体は、大量のデータおよびプログラムを記憶および読み出し可能にしており、同記録媒体内には、プログラムファイル記憶部19a、設計データ記憶部19b、加工データ記憶部19cおよびベンダ形状データ記憶部19dが構築されている。
プログラムファイル記憶部19aは、図3,7,8および図11に示すプログラムを含む各種プログラムを記憶している。設計データ記憶部19bは、後述するように、オペレータによって入力された3次元的に曲げ加工されたパイプの形状(以下、製品形状という)を表す設計データを記憶している。加工データ記憶部19cは、直管状のパイプに対して所定の曲げ加工を施す曲げ加工機(以下、ベンダという)を制御するためのデータであって、設計データに基づいて曲げ加工に必要な動作量を表す加工データを記憶している。ベンダ形状データ記憶部19dは、ベンダを構成する各部材(例えば、パイプに曲げ加工を施す曲げヘッド、パイプを挟持するチャックのチャックホルダや機台など)とベンダの周辺に存在する障害物(例えば、壁面や床面など)の形状を表す形状データおよびそれらの配置を表す配置データなどを記憶している。
また、バス15には、通信インターフェース回路20(以下、通信I/F20という)も接続されている。通信I/F20は、インターネット、LAN(Local Area Network)やシリアル通信回線などのネットワークNWに接続するためのインターフェースである。これにより、コンピュータ装置Mは、通信I/F20を介して、外部の他のコンピュータ装置と通信可能となっている。
次に、上記のように構成したコンピュータ装置Mを用いて実行されるパイプの3次元曲げ加工シミュレーションについて詳細に説明する。このパイプの3次元曲げ加工シミュレーションプログラムは、図3に示す基準形状作成プログラムと図7に示すシミュレーションプログラムとから構成されている。このため、まず、オペレータは、コンピュータ装置Mに対して、図3に示す基準形状作成プログラムを実行させる。
すなわち、オペレータは、キーボード11またはマウス11aを利用して、コンピュータ装置Mに基準形状作成プログラムの実行開始を指示する。この指示に応じて、コンピュータ装置MのCPU16は、記憶装置19のプログラムファイル記憶部19aに記憶されている基準形状作成プログラムを読み出し、同プログラムの実行をステップS10にて開始する。そして、CPU16は、ステップS11にて、オペレータに対し、入力するデータとして、設計データまたは加工データのうちの一方を選択させる。具体的に説明すると、CPU16は、表示器12に対して、設計データまたは加工データを選択するためのメッセージを表示させる。これにより、オペレータは、表示器12の表示画面上に表示されたメッセージに従い、キーボード11またはマウス11aを利用して、設計データまたは加工データの一方を選択する。
続いて、CPU16は、ステップS12にて、オペレータによって設計データの入力が選択されたか否かを判定する。すなわち、CPU16は、前記ステップS11にて、オペレータが設計データの入力を選択していれば、「Yes」と判定してステップS13に進む。ステップS13においては、CPU16は、オペレータに対して、設計データを順次入力するように促す。具体的に説明すると、CPU16は、表示制御回路14に対して、表示器12の表示画面を設計データの入力画面に切り替えるように指示する。この指示に基づき、表示制御回路14は、表示器12の表示画面を設計データの入力画面に切り替える。これにより、オペレータは、表示器12の表示画面に従って、製品形状を表す設計データを順次入力する。そして、CPU16は、入力された設計データを記憶装置19の記録媒体に構築された設計データ記憶部19bに記憶する。なお、この場合、入力された設計データを、通信I/F20を介して、外部のコンピュータ装置に出力することも可能である。
ここで、オペレータによる設計データの入力について、図4(a)に示すように、極めて簡単な製品形状の設計データを入力する場合を例示して説明しておく。図4(a)に例示した製品形状は、始点としてのポイントP1から終点としてのポイントP5までの間に曲げポイントP2,P3およびP4が設定されている。そして、各曲げポイントP2,P3,P4にて、曲げ半径R1,R2,R3で曲げ加工されることにより、直管状のパイプが3次元的な製品形状に成形される。このため、オペレータは、各ポイントP1〜P5の位置関係を3次元座標、すなわち、x座標、y座標、z座標として入力するとともに、曲げポイントP2,P3,P4での曲げ半径R1,R2,R3を入力する。
具体的に説明すると、オペレータは、例えば、図4(b)に示すように、表示器12に表示された表示画面に従って、始点としてのポイントP1の位置を表す3次元座標(X1,Y1,Z1)を入力する。次に、オペレータは、ポイントP2の位置を表す3次元座標(X2,Y2,Z2)を入力し、このポイントP2における曲げ半径R1を入力する。また、オペレータは、同様にして、ポイントP3の位置を表す3次元座標(X3,Y3,Z3)とこのポイントP3における曲げ半径R2を入力し、ポイントP4の位置を表す3次元座標(X4,Y4,Z4)とこのポイントP4における曲げ半径R3を入力する。さらに、オペレータは、終点としてのポイントP5の位置を表す3次元座標(X5,Y5,Z5)を入力する。このように、製品形状を表す設計データは、始点から終点までの各ポイントP1〜P5の各3次元座標と、曲げポイントP2,P3およびP4の曲げ半径R1,R2およびR3とから構成されるものであり、これらの各値が順次入力される。
そして、オペレータは、設計データの入力が終了すると、CPU16に対して、データの入力完了を指示する。この指示に応じて、CPU16は、入力された設計データを設計データ記憶部19bの所定記憶位置に記憶し、ステップS14にて、入力された設計データを加工データに変換する。この加工データへの変換について以下に説明する。加工データは、前記ステップS13にて入力されて設計データ記憶部19bに記憶された設計データにより表される製品形状を実現するために、ベンダの加工動作量を制御するデータである。
一般的に、直管状のパイプを3次元形状に曲げ加工するベンダに要求される動作としては、パイプの送り動作、ひねり動作および曲げ動作が必要となる。このため、加工データは、パイプの実長、送り長さ、ひねり角および曲げ角から構成される。ここで、パイプの実長とは、各ポイント間の3次元距離を表すものである。また、送り長さとは、実長から曲げ形状部分を除いた直線要素の長さを表すものである。また、ひねり角とは、曲げ形状部分を含んで決定される2面のそれぞれの法線の角度差を表すものである。さらに、曲げ角とは、曲げポイントを含む3つのポイントで形成される角度に対する補角を表すものである。なお、送り長さはパイプを順送(送り動作)する場合を正の値で表し、逆送(戻し動作)する場合を負の値で表す。また、ひねり角および曲げ角は、パイプの順送方向を基準として、例えば、右方向に回転する場合を正の値で表し、左方向に回転する場合を負の値で表す。
したがって、CPU16は、設計データ記憶部19bに記憶された設計データを用いて、図5(a)に示すように、パイプの実長、送り長さ、ひねり角および曲げ角を算出することにより、加工データに変換する。具体的に説明すると、CPU16は、図5(b)に示すように、記憶された設計データのうちのポイントP1とポイントP2の3次元座標を用いて、ポイントP1とポイントP2間の3次元距離すなわち実長d1を算出する。同様にして、ポイントP2とポイントP3間の実長d2、ポイントP3とポイントP4間の実長d3およびポイントP4とポイントP5間の実長d4をそれぞれ算出する。
また、CPU16は、入力された設計データのうちの曲げポイントP2,P3,P4の曲げ半径R1,R2,R3を用い、図5(b)に示すように、曲げ半径R1,R2,R3によって決定される円弧と、直線P1P2,直線P2P3,直線P3P4および直線P4P5との接点A〜Fを求める。そして、CPU16は、前記算出した実長d1から距離P2と接点Aまでの距離を減じて送り長さL1を算出する。同様に、CPU16は、各曲げポイントP2,P3,P4と接点B,C,D,Eまでの各距離を、実長d2、d3から減じて送り長さL2,L3を算出する。さらに、CPU16は、算出した実長d4から距離P4と接点Fまでの距離を減じて送り長さL4を算出する。
また、CPU16は、ポイントP1,P2,P3によって決定される面の法線と、ポイントP2,P3,P4によって決定される面の法線との間の角度差すなわちひねり角θ1を算出する。また、同様に、CPU16は、ポイントP2,P3,P4によって決定される面の法線と、ポイントP3,P4,P5によって決定される面の法線との間の角度差すなわちひねり角θ2を算出する。
さらに、CPU16は、ポイントP1,P2,P3によって決定される角度を算出し、同算出した角度の補角すなわち曲げ角Θ1を算出する。同様にして、CPU16は、ポイントP2,P3,P4によって決定される角度から曲げ角Θ2およびポイントP3,P4,P5によって決定される角度から曲げ角Θ3を算出する。このように、実長、送り長さ、ひねり角および曲げ角を算出することによって、図5(a)に示すように、設計データを変換した加工データが作成される。
また、前記ステップS11にて、オペレータによって設計データの入力が選択されていなければ、言い換えれば、加工データの入力が選択されていれば、CPU16は、前記ステップS12にて「No」と判定してステップS15に進む。ステップS15においては、オペレータは、上述したように算出される加工データを、キーボード11を利用して入力する。
そして、CPU16は、前記ステップS14にて加工データを作成した場合、または、前記ステップS15にて加工データが入力された場合には、記憶装置19の加工データ記憶部19cの所定記憶位置に加工データを記憶する。このとき、CPU16は、送り長さ、ひねり角および曲げ角を一連の工程とみなし、この工程ごとに、例えば、加工工程番号などの加工工程名を関連付けて、作成した加工データを加工データ記憶部19cに記憶する。
ここで、コンピュータ装置Mは、通信I/F20を備えていて、外部の他のコンピュータ装置との通信が可能とされている。このため、オペレータによる、前記ステップS13における設計データの入力または前記ステップS15における加工データの入力に代えて、他のコンピュータ装置から取得した設計データまたは加工データを直接入力するように実施することも可能である。この場合、例えば、他のコンピュータ装置から設計データを取得すると、コンピュータ装置MのCPU16は、取得した設計データを設計データ記憶部19bに記憶するとともに、同記憶した設計データを変換した加工データを加工データ記憶部19cに記憶する。また、他のコンピュータ装置から加工データを取得した場合には、CPU16は、取得した加工データを加工データ記憶部19cに記憶する。このように、他のコンピュータ装置から必要なデータを取得することにより、オペレータがキーボード11を利用してデータを入力する必要が無くなり、データ入力に関する負担を軽減することができる。
前記ステップS14またはステップS15の処理後、CPU16は、ステップS16にて、オペレータに対して、パイプの3次元曲げ加工シミュレーションに使用するベンダ形状、言い換えれば、実際にパイプに対して曲げ加工を施すベンダ形状を選択するように促す。すなわち、CPU16は、現在、ベンダ形状データ記憶部19dに記憶されている種々のベンダ形状を確認する。そして、CPU16は、確認した結果を表す情報を表示器12に表示させる。これにより、オペレータは、3次元曲げ加工シミュレーションに使用するベンダ形状を、例えば、マウス11aを利用して選択する。そして、CPU16は、オペレータによってベンダ形状が選択されると、ステップS17に進む。
ステップS17においては、CPU16は、予めベンダ形状データ記憶部19dに記憶されていて、選択されたベンダ形状に対応するベンダ形状データを取得し、このベンダ形状データに基づくベンダ形状を表示器12の表示画面上に再現して表示する。このベンダ形状の表示について詳細に説明する。ベンダ形状は、図6に示すように、パイプに曲げ加工を施す部分、より詳しくは、曲げ加工されたパイプがベンダと接触(干渉)する可能性のある周辺部材のみが再現されて表示される。具体的に表示される部材としては、ベンダを構成する機台B、曲げヘッドMH、曲げヘッドMHに接続されたハーネスHNおよび曲げ加工されたパイプの周辺に存在する部材(床面、壁面)であり、これら部材が再現されて表示される。
このように、表示すべき部材を必要最小限に限定することにより、ベンダ形状の再現に必要なデータ容量を小さくして必要な演算量を少なくすることができる。これにより、高速に再現してベンダ形状を表示することができる。ここで、後述するように、本実施形態においては、加工対象であるパイプの形状が1本の直線として表示される。このため、ベンダ形状を再現するときには、ベンダを構成する各部材の大きさは、実際のパイプが有する外径に比例するように決定される。すなわち、実際のパイプの外径が大きくなるに伴って、ベンダを構成する各部材の大きさが相対的に大きくなるように再現される。
また、これらの周辺部材は、図6に示すように、その曲面部分が、同曲面部分に外接する多角形により近似されて表示される。このように、曲面部分が多角形により近似されて表示されることにより、より高速に表示することができるとともに、本来1つの面で構成される部材の曲面部分が多数の面に細分化されて表示されることになる。これにより、後述する干渉チェックにおいて、パイプとベンダとの干渉をより正確に判定することができるとともに、干渉位置をより明確に表示することができる。
したがって、CPU16は、ベンダ形状データ記憶部19dに記憶されていて、オペレータによって選択されたベンダ形状(より詳しくは、周辺部材の形状)を表すベンダ形状データを取得して、RAM18の所定記憶位置に一時的に記憶する。そして、CPU16は、取得したベンダ形状データを表示制御回路14に供給するとともに、同回路14に対して、ベンダ形状を表示器12に表示するように指示する。これにより、表示制御回路14は、図6に示すように、オペレータが選択したベンダ形状を表示器12の表示画面上に再現して表示させる。
このように、前記ステップS17にてベンダ形状を再現して表示すると、CPU16は、ステップS18にて、加工前のパイプP(以下、本明細書における説明においては、加工対象であるパイプPをワークPともいう)の形状をその中心軸と一致させた直線で表示する。そして、CPU16は、実際のベンダに加工前のパイプ(ワーク)をセットした状態を再現して表示する。なお、このワークPの表示においては、オペレータによる図示しない入力操作によって入力された製品長の直線が表示されるものとする。このワークPの表示においては、CPU16が、表示制御回路14に対して直線状のワーク形状を表す形状データを供給することによって、同形状データに基づいて表示器12にワーク形状を表示させる。これにより、表示器12の表示画面には、加工開始前のベンダ形状と直線状のワーク形状が表示される。
そして、CPU16は、前記ステップS18の表示処理によって加工前のワーク形状を表示させると、ステップS19にて、基準形状作成プログラムの実行を終了する。このように、CPU16は、基準形状作成プログラムの実行を終了すると、図示しないプログラムを実行することにより、表示器12の表示画面上に曲げ加工シミュレーションの実行を開始するか否かを表示させる。この表示に従い、オペレータによってシミュレーションの実行開始が指示されると、CPU16は、図7に示すシミュレーションプログラムの実行を開始する。このシミュレーションプログラムは、記憶装置19の加工データ記憶部19cに記憶された工程ごとの加工データに基づいて、実際の曲げ加工機(ベンダ)によるワーク(パイプ)の曲げ加工を再現して表示するプログラムである。
このシミュレーションプログラムは、図7に示すように、ステップS100にてその実行が開始される。なお、このシミュレーションプログラムを実行する場合には、CPU16は、図示しない初期設定プログラムを実行し、各種パラメータ値を初期値(例えば、後述する中止フラグFRG_Sを”0”)に設定する。ステップS101においては、前記基準形状作成プログラムのステップS14にて設計データから変換した加工データ、または、ステップS15にて入力された加工データであって、記憶装置19の加工データ記憶部19cに記憶された加工データを読み出す(入力する)。そして、CPU16は、読み出した加工データをRAM18の所定記憶位置に一時的に記憶する。ここで、CPU16は、シミュレーションプログラムのステップS102以降を実行するに当たり、RAM18に記憶した加工データを一工程ずつ参照して実行するものとする。
ステップS102においては、CPU16は、RAM18に一時的に記憶した一の工程の加工データを参照して、この工程に送り指示が有るか否かを判定する。すなわち、CPU16は、参照した工程の加工データの送り長さを確認する。そして、送り長さに値が入力されていれば、CPU16は、送り指示が有るために「Yes」と判定して、ステップS103に進む。一方、参照した工程における加工データの送り長さに値が入力されていなければ、CPU16は、「No」と判定してステップS106に進む。
ステップS103においては、CPU16は、現在の加工工程名を表示器12に表示させる。具体的に説明すると、CPU16は、参照した加工データに関連付けられている加工工程名、すなわち、加工工程番号を表す情報を取得し、同取得した情報を表示制御回路14に供給する。表示制御回路14は、供給された加工工程番号を表す情報に基づいて、表示器12の所定表示位置に加工工程番号を表示させる。このとき、加工工程番号とともに、例えば、現在の加工内容すなわち「送り」などを併せて表示するとよい。これにより、オペレータは、現在の加工内容を極めて容易に確認することができる。
このように、CPU16は、前記ステップS103にて加工工程名を表示させると、続くステップS104にて加工データにより指示された送り長さだけ移動させたワークPの形状データを作成する。すなわち、CPU16は、実際のベンダがワークを移動させる送り動作を再現するように、表示器12に表示されているワークPを移動させた形状データを作成する。そして、CPU16は、形状データを作成すると、同作成した形状データをRAM18内に一時的に記憶して、ステップS105に進む。
ステップS105においては、CPU16は、前記ステップS104にて作成したワークPの形状データに基づいて、送り動作後のワークPの形状を表示器12に表示させる。具体的に説明すると、CPU16は、RAM18に一時的に記憶した形状データを表示制御回路14に供給するとともに、同供給した形状データに基づいて表示器12を制御するように指示する。表示制御回路14は、同指示に従い、供給された形状データに基づいて表示器12の表示画面を切り替える。この表示画面切り替えにおいては、上述したベンダ形状が表示されるとともに、指示された送り長さだけ移動したワークPの形状が表示される。そして、CPU16は、表示器12に送り動作後のワークPを表示させると、ステップS106に進む。
ステップS106においては、CPU16は、前記ステップS101にてRAM18に一時的に記憶した一の工程の加工データを参照して、この工程にひねり指示が有るか否かを判定する。すなわち、CPU16は、参照した工程の加工データにおけるひねり角の値を確認する。そして、ひねり角の値が入力されていれば、CPU16は、ひねり指示が有るため「Yes」と判定してステップS107に進み、ひねり動作時干渉チェックルーチンを実行する。一方、ひねり角の値が入力されていなければ、CPU16は、ひねり指示が無いため「No」と判定してステップS108に進む。
ステップS107にて実行されるひねり動作時干渉チェックルーチンは、図8に示すように、ステップS150にてその実行が開始される。そして、ステップS151にて、CPU16は、加工データによって指示されたひねり角をn分割する。この分割について、以下に説明する。
一般的に、3次元に曲げ加工されたワークと、ベンダやベンダ周辺の障害物(以下、これらをまとめてベンダ等という)との干渉は、ワークのひねり動作時や曲げ動作時に生じる。特に、ひねり動作時においては、曲げ加工前のワークの軸線周りにて、曲げ加工された部分または曲げヘッドが回転するため、ベンダ等と干渉を生じる可能性が高くなる。このため、コンピュータ装置Mを用いて、ひねり動作時に生じる干渉をチェックする際には、3次元に曲げ加工されたワークPとベンダ等との干渉部位および干渉状態を詳細に確認する必要がある。この確認においては、ワークPのひねり動作における動作分解能が高いほど、詳細に確認することができる。
このため、CPU16は、加工データによって指示されたひねり角を、所定の角度間隔(例えば、5゜間隔)でn分割し、ひねり動作時の動作分解能を高める。そして、CPU16は、指示されたひねり角をn分割すると、同分割したそれぞれのひねり角をRAM18に記憶して、ステップS152以降の各ステップを繰り返し実行する。すなわち、ステップS152にて、n分割したひねり角のうち、第i番目(i=1,2,…,n)のひねり角まで回転させたときのワークPの状態を表す形状データを作成する。この形状データの作成に際しては、種々の方法が考えられるが、例えば、既に曲げ加工されたポイントが存在する場合には、このポイントを曲げ加工前の直線状のワークPを回転基準として第i番目のひねり角と一致するまで回転させることによって、形状データを作成することができる。または、曲げヘッドMHを第i番目のひねり角と一致するまで回転させることによっても、ワークPとの相対的な位置関係が変化するため、形状データを作成することができる。
そして、CPU16は、形状データを作成すると、同作成した形状データをRAM18内に一時的に記憶して、ステップS153に進む。ステップS153においては、CPU16は、第i番目のひねり角を表示器12の所定表示位置に表示させる。このとき、第i番目のひねり角の表示に加えて、加工工程番号とともに、例えば、現在の加工内容すなわち「ひねり」などを併せて表示するとよい。これにより、オペレータは、現在の加工内容(すなわち、何度ワークPが回転されたか)を極めて容易に確認することができる。
続くステップS154にて、CPU16は、第i番目のひねり角だけ回転させたワークPの形状または回転させた曲げヘッドMHの形状を、図9に示すように、表示器12に表示させる。なお、このステップS154におけるワークPの形状の表示に関しては、前記ステップS105におけるワークPの形状の表示と同様に表示されるため、その詳細な説明を省略する。ここで、後述する曲げ動作時干渉チェックルーチンの説明で詳述するように、ワークPの曲げ形状部分は、複数の直線を連結することによって近似されて表示される。これにより、CPU16、表示器12および表示制御回路14によって実現されるワークPの形状の表示を高速に行うことができる。
このように、第i番目のひねり角まで回転したワークPまたは回転させた曲げヘッドMHの形状を表示すると、CPU16は、ステップS155にて、ベンダ等とワークPとの間に干渉が生じているか否かを判定する。すなわち、CPU16は、ベンダ等とワークPとの間に干渉が生じている場合、言い換えれば、ベンダ等を形成する多角形に関連して形成される面とワークPの形状を表す直線とが交点を有している場合には、「Yes」と判定してステップS156に進む。なお、このベンダ等とワークPとの干渉判定の詳細については、後述する曲げ動作時干渉チェックルーチンにおいて詳細に説明する。一方、ベンダ等とワークPとの間に干渉が生じていない場合には、CPU16は、「No」と判定して、ステップS158に進む。
ステップS156においては、CPU16は、図10に示すように、ベンダ等とワークPとの干渉部位を表示器12の表示画面上に表示させる。具体的に説明すると、CPU16は、前記ステップS155の判定処理により、ベンダ等を形成する多角形に関連して形成される面とワークPの形状を表す直線との交点を把握することができる。このため、CPU16は、この交点近傍の直線部分を、例えば、一般部分と異なる色彩で表示したり、一般部分よりも太い線で表示したりして、オペレータが容易に識別できる態様で表示器12に表示させる。ここで、図10においては、ベンダの曲げヘッドMHとワークPとが干渉した場合を示している。なお、この場合、コンピュータ装置Mの表示器12にシミュレーション結果を表示することに加えて、同結果を表すデータを通信I/F20を介して供給することにより、他のコンピュータ装置に表示することもできる。
このように、干渉部分を表示器12に表示させると、CPU16は、ステップS157にて、オペレータに対して、シミュレーションを続けるか否かを選択させる。これは、以下に示す理由によるものである。上述したように、前記ステップS155における干渉判定に基づいて、ベンダ等とワークPとの干渉が生じる場合には、CPU16は、ステップS156にて干渉部位を表示器12に表示させる。これにより、オペレータは、ベンダ等とワークPとの干渉部位を極めて容易に確認することができる。
ところで、曲げ加工のシミュレーションを実行することにより、ベンダ等とワークPとの干渉発生が確認できた場合には、実際に発生するであろう干渉を回避するための別工程を再構築することが行われる。この別工程を再構築するときには、例えば、あるひねり工程の第i番目のひねり角にて干渉が発生することが確認できた場合、他のひねり工程におけるひねり動作で干渉が発生するか否かを予め確認しておく必要がある。すなわち、干渉の発生が確認できた工程のみを再度検討して別工程を再構築する場合もあれば、曲げ加工の全工程を再度検討して再構築する場合もある。
このため、CPU16は、ステップS157にて、オペレータに対して、シミュレーションを継続する必要があるか否かを選択するように促す。具体的に説明すると、CPU16は、現在表示されているシミュレーション結果、より詳しくは、ワークPをひねり動作することによってベンダ等と干渉が生じた状態を表すシミュレーション結果を、ワークPのひねり動作を一時停止させることにより表示器12に表示させ続ける。そして、CPU16は、シミュレーションを続けるか否かをオペレータに選択させるためのメッセージを表す情報を表示制御回路14に対して供給する。これにより、表示制御回路14は、表示器12の表示態様を制御し、所定の表示位置に前記メッセージを表示させる。
この状態において、オペレータが、キーボード11またはマウス11aを利用して、シミュレーションの継続を選択すると、CPU16は「Yes」と判定してステップS158に進む。ステップS158においては、CPU16は、第i番目のひねり角に対応するひねり動作番号iが最終のひねり動作番号nであるか否かを判定する。すなわち、CPU16は、現在のひねり動作番号iが「n」でなければ「No」と判定して、ステップS159に進む。ステップS159においては、CPU16は、ひねり動作番号iを「1」だけインクリメントし、ふたたび、ステップS152以降の各ステップ処理をひねり動作番号i+1すなわち第i+1番目のひねり角について実行する。
そして、現在のひねり動作番号iが最終のひねり動作番号nと一致するまで、繰り返し、ステップS152〜ステップS159までの各ステップの処理を実行する。これにより、第i番目のひねり角にて干渉が発生していても、引き続き、シミュレーションを継続することができる。一方、前記ステップS158にて、ひねり動作番号iが「n」であれば「Yes」と判定する。そして、ステップS161にて、ひねり動作時干渉チェックルーチンの実行を終了する。
また、前記ステップS157において、オペレータが、シミュレーションの中止を選択していれば、CPU16は「No」と判定してステップS160に進む。ステップS160においては、CPU16は、シミュレーションの中止を設定するための中止フラグFRG_Sを、シミュレーションの中止を表す”1”に設定する。そして、CPU16は、ステップS161にて、ひねり動作時干渉チェックルーチンの実行を終了する。
ふたたび、図7のシミュレーションプログラムに戻り、CPU16は、ステップS108にて、中止フラグFRG_Sが”0”であるか否かを判定する。すなわち、中止フラグFRG_Sが”0”であれば、言い換えれば、オペレータによってシミュレーションの継続が選択されていれば、「Yes」と判定して、ステップS109に進む。一方、中止フラグFRG_Sが”1”であれば、オペレータによってシミュレーションの中止が指示されているため、「No」と判定して、ステップS113に進み、シミュレーションプログラムの実行を終了する。この場合、シミュレーションの実行を中止した後、例えば、基本形状作成プログラムを実行することによって、オペレータは、別工程の加工データを設定することができる。そして、ふたたび、シミュレーションプログラムを実行することにより、再構築した別工程で干渉が生じるか否かを確認することができる。
ステップS109においては、CPU16は、前記ステップS101にてRAM18に一時的に記憶した一の工程の加工データを参照して、この工程に曲げ指示が有るか否かを判定する。すなわち、CPU16は、参照した工程の加工データの曲げ角の値を確認する。そして、曲げ角の値が入力されていれば、CPU16は、曲げ指示が有るため「Yes」と判定してステップS110に進み、曲げ動作時干渉チェックルーチンを実行する。一方、曲げ角の値が入力されていなければ、CPU16は、曲げ指示が無いため「No」と判定してステップS111に進む。
ステップS110にて実行される曲げ動作時干渉チェックルーチンは、図11に示すように、ステップS200にてその実行が開始される。そして、ステップS201にてCPU16は、加工データによって指示された曲げ角、言い換えれば、同曲げ角によって曲げ加工されたワークPの円弧形状部分をm分割する。この分割について、以下に説明する。
ベンダ等とワークPとの干渉は、上述したひねり動作時に加えて、ワークPの曲げ動作時においても生じる可能性がある。そして、ひねり動作時と同様に、曲げ動作時に生じる干渉をチェックする際にも、ワークPの曲げ動作における動作分解能を高くすることによって、干渉状態および干渉位置を詳細に確認することができる。一方で、曲げ動作時における動作分解能を高めた場合には、曲げ加工によって変形する部分(円弧部分)が連続した短い直線で表される。このように、曲げ加工部分を短い直線で再現して表示するためには、実際に曲げ加工されたときの円弧部分上に存在する多数の点を計算して結ぶ必要があり、この結果、形状の再現に必要なデータ量が増大する。したがって、曲げ動作を再現して表示する際には、表示速度が低下する。
これに対して、例えば、前記円弧部分の曲線上に多数存在する点から適宜選択した点を算出し、この点を直線で結ぶ、言い換えれば、曲線部分を多角形で表すと、ワークPの形状の再現に必要なデータ数を少なくすることができて、表示速度を向上することができる。ところが、適宜選択する点の数を少なくすると、実際の円弧形状すなわち曲線と多角形を形成する直線(以下、この直線を簡略化直線という)との間のズレ量が大きくなり、曲げ加工部分を適正に再現できない場合がある。したがって、ベンダ等とワークPとの干渉チェックの精度が大幅に低下する可能性がある。
このため、本発明者は、曲げ加工部分の実際の円弧形状(曲線)と簡略化直線とのズレ量が干渉チェックの精度を確保できる許容範囲内となる点数、言い換えれば、曲げ角の分割数mを検討した。以下、この検討結果を説明する。
図12は、曲げ加工における曲げ角に対して、この曲げ角で実際に曲げ加工したときの円弧形状と簡略化直線との間の距離(ズレ量)の関係を示すグラフである。ここで、干渉チェックの精度を確保できるズレ量としては、曲げ加工時に設定される曲げ公差に対して十分に小さな、例えば、0.2mmに設定する。そして、図12のグラフから明らかなように、加工データの曲げ角(すなわち円弧形状)を10゜以内の角度で分割すれば、設計データに基づく曲げ半径Rの大きさによらず、曲げ加工による実際の円弧形状と簡略化直線とのズレ量が十分に小さく抑えられることが理解できる。
このとき、簡略化直線は、図13に示すように、幾何学的に決定される。すなわち、図13に示すように、実際に曲げ加工された円弧形状の半径、言い換えれば、曲げ半径をRとして、この円弧形状をともに同じ大きさの中心角θ1,θ2で分割する場合を考えると、円弧に接する直線は、下記式1に示すように表すことができる。
tan(θ1/2)×R+tan(θ2/2)×R …式1
前記式1に従って決定される直線すなわち簡略化直線を採用して、分割された円弧形状を多角形とすることにより、実際の円弧形状と簡略化直線との間のズレ量が小さくすることができて、干渉チェックの精度を十分に確保することができる。また、このように、円弧形状を簡略化直線によって多角形化することによって、形状の再現に必要なデータ量を少なくすることができるため、ワークPの形状を高速に表示することができる。
このことに基づき、CPU16は、指示された曲げ角を、例えば、10°ごとにm分割すると、同分割したそれぞれの曲げ角をRAM18に記憶して、ステップS202以降の各ステップを繰り返し実行する。すなわち、ステップS202にて、m分割した曲げ角のうち、第j番目(j=1,2,…,m)の曲げ角まで曲げた(回転させた)ときのワークPの状態を表す形状データ、言い換えれば、前記式1によって決定される簡略化直線を表す形状データを作成する。
このように、曲げ動作時の形状データを作成すると、CPU16は、ステップS203以降の各ステップ処理を、上述したひねり動作時干渉チェックルーチンのステップS153以降と同様に実行する。すなわち、CPU16は、ステップS203にて、第j番目の曲げ角を表示器12の所定表示位置に表示させ、ステップS204にて、第j番目の曲げ角だけ回転させたワークPの形状を表示器12に表示させる。このとき、第j番目の曲げ角の表示に加えて、加工工程番号とともに、例えば、現在の加工内容すなわち「曲げ」などを併せて表示するとよい。これにより、オペレータは、現在の加工内容を極めて容易に確認することができる。
ステップS205においては、ベンダ等とワークPとの間に干渉が生じているか否かを、ベンダ等を形成する多角形に関連して形成される面とワークPを表す直線(または、曲げ加工部分においては簡略化直線)との交点の有無に基づいて判定する。この判定について具体的に説明する。
上述したように、ベンダ等を形成する各部材の大きさは、実際のワーク(パイプ)の外径に比例するように決定される。これにより、シミュレーションの実行に際して、ワークPの形状が直線で表されていても、ワークPとベンダ等との相対的な大きさの関係および相対的な位置関係が変化することなく、実際の大きさの関係および位置関係を維持した状態で再現することができる。また、ワークPの形状は、曲げ加工部分が前記式1に従って決定される簡略化直線により多角形化される。これにより、ワークPの3次元形状は、実際のワークの3次元形状に対してほぼ一致する。
このように、ベンダ等とワークPとが再現されている状態においては、ベンダ等を形成する多角形に関連して形成される面とワークPの形状を表す直線(または簡略化直線)とが交点を有していれば、ベンダ等とワークPは、確実に互いに接触(干渉)した状態にある。したがって、ベンダ等を形成する面とワークPの形状を表す直線とが交点を有するか否かを判定することのみで、ベンダ等とワークPとが干渉しているか否かを正確に判定することができる。また、交点の有無を演算すればよいので、干渉の有無を高速に判定することができる。
したがって、CPU16は、ステップS205にて、上述した交点の有無に基づいて、ベンダ等とワークPとの間に干渉が生じていれば、「Yes」と判定してステップS206に進み、同ステップS206にて干渉部位を表示器12の表示画面上に表示させる。なお、この場合も、コンピュータ装置Mの表示器12にシミュレーション結果を表示することに加えて、同結果を表すデータを通信I/F20を介して供給することにより、他のコンピュータ装置に表示することもできる。そして、CPU16は、ステップS207にて、シミュレーションの継続か中止かのいずれか一方をオペレータに選択させる。この選択により、継続が選択されれば、CPU16は、「Yes」と判定してステップS208以降の各ステップの処理を実行する。一方、シミュレーションの中止が選択されれば、CPU16は、ステップS210にて、中止フラグFRG_Sを”1”に設定し、ステップS211にて曲げ動作時干渉チェックルーチンの実行を終了する。
ステップS208においては、第j番目の曲げ角に対応する曲げ動作番号jが最終の曲げ動作番号mであるか否かを判定する。そして、現在の曲げ動作番号jが最終の曲げ動作番号mでなければ、「No」判定に基づき、ステップS209を実行し、曲げ動作番号jを「1」だけインクリメントし、ふたたび、ステップS202以降の各ステップ処理を実行する。そして、現在の曲げ動作番号jが最終の曲げ動作番号mと一致するまで、繰り返し、ステップS202以降の各ステップ処理を実行し、ステップS208の「Yes」判定に基づき、ステップS211にて、曲げ動作時干渉チェックルーチンの実行を終了する。
ふたたび、図7のシミュレーションプログラムに戻り、CPU16は、ステップS111にて、中止フラグFRG_Sが”0”であるか否かを判定し、中止フラグFRG_Sが”0”であれば、言い換えれば、オペレータによってシミュレーションの中止が指示されていなければ、「Yes」と判定して、ステップS112に進む。ステップS112においては、CPU16は、前記ステップS101にてRAM18に一次的に記憶した全加工工程について、曲げ加工のシミュレーションが終了したか否かを判定する。この判定により、未だ全加工工程についてシミュレーションが実行されていなければ、「No」と判定し、ふたたび、他の工程についてステップS102以降の各ステップ処理を実行する。一方、全加工工程について曲げ加工シミュレーションの実行が終了していれば、CPU16は、「Yes」と判定して、ステップS113に進み、シミュレーションプログラムの実行を終了する。
また、前記ステップS111にて、中止フラグFRG_Sが”1”であれば、オペレータによってシミュレーションの中止が指示されている。このため、CPU16は、「No」と判定して、ステップS113に進み、シミュレーションプログラムの実行を終了する。
以上の説明からも理解できるように、本実施形態によれば、ベンダ等の形状を表示するときには、ベンダ等を構成する複数の部材のうち、ワークPの周辺に存在する周辺部材、言い換えれば、曲げ加工された管体と干渉を生じる可能性が高い部材を選択的に表示することができる。これにより、曲げ加工されたワークPが干渉を生じるか否かを確認するときには、必要最小限の部材によってベンダ等の形状を表示すればよく、したがって、表示を高速化することができる。また、ベンダ等を、多角形を用いて近似することによって、簡略化して表示することができる。さらに、加工データに基づいて再現されたベンダの加工動作に伴って形状変化するワークPを、直線を用いて近似することによって、簡略化して表示することができる。これらにより、ベンダ形状および形状変化するワークPを表示するために必要なデータ量および演算量を低減することができ、この結果、表示を高速化することができる。
また、干渉の有無は、ベンダ等を形成する多角形に関連して形成される面とワークPの形状を表す直線とが交点を有するか否かに基づいて判定することができる。また、干渉が生じた場合には、干渉部位を表示することもできる。これにより、例えば、表示画面を観察することによって発見できない干渉が生じた場合であっても、確実にかつ正確に干渉の有無を自動的に判定することができるとともに、極めて容易に干渉部位を確認することができる。また、面と線との交点を演算することにより、干渉の有無を判定することができるため、例えば、面と面との接触状態を演算する場合に比して、演算に要する時間を大幅に短縮することができる。これにより、干渉の有無を高速に行うことができる。このように、ベンダ等およびワークPを高速に表示するとともに、干渉の有無を高速で判定することができるため、最適な曲げ加工工程を決定するために、より多くのシミュレーションを実行することができる。
また、加工データによって表されるひねり角および曲げ角を所定量ごとに分割することができる。このように、ひねり角および曲げ角を分割することによって、ワークPの形状変化を細かく(所謂、コマ送り的に)観察することができる。言い換えれば、ワークPの形状変化に対する動作分解能を大きくして観察することができる。一方で、動作分解能を大きくして観察する場合であっても、ベンダ等およびワークPの形状が簡略化されて表示されることによって、表示速度が低下することがない。これにより、より詳細に干渉の有無を速やかに確認することができる。
また、加工データを、通常先行して作成される製品形状を表す設計データに基づいて自動的に作成することができる。したがって、例えば、オペレータが加工データを入力するために必要な計算を別途実施する必要がなく、極めて簡便に3次元曲げ加工シミュレーションを実行することができる。
さらに、干渉の生じた加工動作を表す工程名としての加工工程番号や、分割されたひねり角、曲げ角などを表示することができる。これにより、オペレータは、干渉の生じる曲げ成形工程を容易に確認することができる。したがって、例えば、この干渉の生じる工程を外して別途曲げ成形を施すなど、干渉の生じない曲げ成形工程を再構築する場合の有益な情報を得ることができる。
上記実施形態においては、ひねり動作時と曲げ動作時に干渉チェックのためのルーチンを実行するように実施した。これは、ひねり動作時と曲げ動作時に、ベンダ等とワークPとの間で干渉が生じる可能性が高いからである。しかしながら、上述したように、曲げ加工のシミュレーションを実行することにより確認された干渉を回避するために、ひねり動作および曲げ動作に加えて送り動作を積極的に行う別工程を構築する場合がある。この場合には、曲げポイントに関係なくワークPを送ったり戻したりすることが考えられ、この送り動作により、ベンダ等とワークPとの干渉が生じる可能性がある。このため、上記実施形態におけるシミュレーションプログラムに対して、送り動作時の干渉をチェックするルーチンを付加して実施することも可能である。
この場合には、上述したひねり動作時干渉チェックルーチンや曲げ動作時干渉チェックルーチンと同様に、加工データにより指示された送り長さを所定量(例えば、5mm程度)ごとに分割しておき、この分割した送り長さごとにワークPの形状を再現するとともに、ベンダ等との干渉をチェックするようにするとよい。ここで、送り動作時において、ベンダ等とワークPとの間に干渉が生じたか否かは、上述の各ルーチンと同様に、ベンダ等を形成する多角形に関連して形成される面とワークPの形状を表す直線との交点の有無に基づくことによって、極めて容易に判定することができる。
したがって、この変形例においても、上述した実施形態と同様の効果が期待でき、ベンダ等とワークPとの干渉を正確かつ高速に確認することができる。さらに、送り動作、ひねり動作および曲げ動作の動作分解能を高めることができ、この結果、より正確に干渉の有無を確認することができる。
また、上記実施形態においては、より高速にワークPの形状およびベンダ等の形状を再現して表示するとともに、より高速に干渉の有無の確認を行うために、ワークPの形状を直線補完した直線で表示するように実施した。そして、ベンダ等を構成する周辺部材の大きさを実際のワークの外径に比例するように決定することにより、ワークPとベンダ等との干渉を確認するように実施した。これに対して、ワークPの形状データに外径データを含ませるとともに、ベンダ等を構成する周辺部材の大きさを実際の部材の大きさに合わせて実施可能であることはいうまでもない。この場合には、ワークPの断面形状を、例えば、前記第1式の簡略化直線を用いて多角形化することにより、上記実施形態に比して、若干ワークPの形状の再現および干渉の確認に時間を要する場合があるが、ベンダ等との干渉状態については、より精度よく確認することができる。