以下、図面を参照して本発明を実施するための最良の形態(以下、実施形態という)に係る設計支援装置について説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
<システムの概要>
本設計支援装置は、配管に接続される機器を含む設備の設計を支援する。本設計支援装置は、画面に表示された設備中の機器をポインティングデバイス等によって選択し、画面上で移動、あるいは、回転する操作を受け付ける。すると、本設計支援装置は、機器を画面上で移動、あるいは、回転するとともに、その機器に近接する所定範囲の配管を機器と一体のものとして、画面上で移動、あるいは、回転する。さらに、移動あるいは回転後の機器および機器と一体のものとされた配管と、その配管の周囲の配管との境界部分に発生した配管の切断点を新たな経路の配管で接続する。その結果、画面上では、機器に追従して周囲の配管が移動あるいは回転するとともに、配管が新たな経路に沿って延伸されたように表示される。ここで、本実施形態で、移動および回転は、主として設計対象の設備中の機器に対する画面上の操作である。このうち、回転は、原則、操作対象である機器の向き(接続口の座標)が変化するが、機器の座標は変わらない。一方、移動では、機器の向き(接続口の方向)が変わらずに、機器の座標が変更される操作ということができる。さらに、機器が回転しかつ移動する場合は、回転に含まれる。ただし、回転しかつ移動する場合は、回転操作と、移動操作とに、操作を分離組み合わせて処理してもよい。その場合に、移動が先か、回転が先かで、操作後の設計態様の状態が異なることになる。
図1に、このような機器および機器に一体化された配管の移動操作、回転操作の例を示す。図1では、3台のポンプを含む機器100が画面上に表示されている。この場合、例えば、中央のポンプPMP1に着目すると、画面(紙面)に対して垂直な方向にレベル差(高さの差)を有する2本の配管L200(ここでは、送液管)およびL201(ここでは、還液管)が配置されている。配管L200は、バルブV200によって、流路を開閉可能となっている。また、バルブV200の下部には、図示されない90度継手が、ポンプPMP1との間に設けられ入る。また、配管L201は、バルブV201によって、流路を開閉可能となっている。また、図示されない縦管(画面に垂直な方向の管)が設けられ、縦管にバルブV201が横向きに設けられている。以下、画面上、ユーザが設計対象の機器を回転、あるいは、移動操作した場合に、本設計支援装置が、機器に接続されてい
た配管を追従して回転、あるいは、移動し、さらには、配管のつなぎ直しをする処理例を説明する。
回転によって、ポンプPMP1については、バルブ201を備えた還液管縦管の入り口から送液管縦管の出口までの配管が、ポンプPMP1とともに回転し、バルブ201から元の配管L201に接続されている。一方、バルブV200につながる配管L200に関しては、回転後の配管は、基本的な処理では、回転前のバルブV200から画面で右方に向かって延伸すべきである。しかし、継手は、機器側(ポンプPMP1側)の配管を回転軸として360度回転する自由度を有してプログラミングされている。したがって、機器の回転、あるいは、移動によって、機器とともに配管の一部が回転、移動し、その後、元の他方の接続点との間で配管を形成する場合にも、継手部分に関しては、配管を短くし、あるいは、途中の屈曲点に存在する継手を少なくすることを目的とする最適化処理が実行される。そこで、配管L200に関しては、最適化処理の結果、すでに描画されていた管路である配管L200をできるだけ活用すべく継手の次の配管の延伸方向が、画面内で下方向に変更され、元の配管L200がほぼ維持される形で、回転後のつなぎ直しが実行されている。図1では、次の操作で機器100が画面に下方に移動され、さらに、画面左方に移動されている。さらに、ポンプPMP1等の移動に伴って、例えば、配管L200、L201が追従して変更されている。なお、図1は、機器に接続されていた配管を機器に追従して回転、あるいは、移動し、さらには、配管のつなぎ直しをした処理結果である。本設計支援装置は、機器が所定の範囲に位置する配管を機器と一体にして移動するので、機器と一体にして移動される配管と、移動しない固定側の配管とは、処理上は、一旦破断する。その後、破断部分につなぎ直しの処理を実行することによって、図1のように、機器に追従して経路が変更された配管が画面に表示される。
<ハードウェア構成>
図2に、本設計支援装置のハードウェア構成を例示する。この設計支援装置は、例えば、パーソナルコンピュータと、パーソナルコンピュータで実行されるコンピュータプログラムによって実現される。また、この設計支援装置は、複数のパーソナルコンピュータにサービスを提供するサーバ上のプログラムとして実現してもよい。また、本設計支援装置は、複数のコンピュータが連携して機能を提供するコンピュータシステムとして実現してもよい。例えば、1以上のデータベースサーバと、1以上のシミュレータと、1以上のウェブサーバとによって、設計支援装置を実現してもよい。
図2は、本設計支援装置を構成するコンピュータの一例である。本設計支援装置は、CPU1と、メモリ2と、各種インターフェース3、5、7、9、11と、これらのインターフェースを通じてCPU1に接続される周辺装置とを含む。図2では、周辺装置の例として、ハードディスク4,入力装置6、表示装置8、ネットワークインターフェース10、および着脱可能記憶媒体駆動装置12が示されている。
CPU1は、メモリ2に展開されたプログラムを実行し、設計支援装置の機能を提供する。メモリ2は、CPU1が実行可能な形式でプログラムを保持する。また、メモリ2は、CPU1が処理するデータを保持する。メモリ2は、DRAM(ダイナミックランダムアクセスメモリ)、ROM(リードオンリーメモリ)等である。ただし、メモリ2として、フラッシュメモリを用いてもよい。
ハードディスク駆動装置4は、ハードディスクにアクセスし、CPU1が処理したデータ、CPU1で実行されるプログラム等を記憶する。入力装置6は、例えば、キーボード等の文字入力装置、マウス等のポインティングデバイスなどである。表示装置8は、例えば、液晶ディスプレイ、エレクトロルミネッセンスパネル等である。
ネットワークインターフェース10は、例えば、LAN(ローカルエリアネットワーク)基板である。着脱可能媒体駆動装置12は、例えば、CD−ROM、DVD、フラッシュメモリカード等の駆動装置である。なお、CPU1で実行されるプログラムは、通常、ネットワークインターフェース10、あるいは、着脱可能記憶媒体駆動装置12を通じて、ハードディスクに保存され、メモリ2に展開される。
<機能ブロック>
図3に、本設計支援装置の機能ブロック図を例示する。図3のように、本設計支援装置の機能は、表示装置8および入力装置6を制御し、設計支援装置の機能を提供する制御部20によって実現される。制御部20は、例えば、図2に示したCPU1、メモリ2等の構成と、図2のメモリ2に展開され、CPU1で実行されるコンピュータプログラムとによって実現される。このプログラムは、コンピュータが読み取り可能で、コンピュータから着脱可能な記憶媒体に格納し、コンピュータにインストールするようにしてもよい。また、ネットワーク上のサーバからコンピュータにダウンロードし、インストールするようにしてよい。また、プログラム自体は、ネットワーク上のサーバにインストールしておき、プログラムの機能だけをコンピュータを利用するユーザに提供してもよい。
図3のように、本設計支援装置の制御部20は、表示制御手段21、入力手段22、制御手段20A、連動範囲確定手段23、配置手段24、管路形成手段25、継手調整手段26、評価手段27および記憶装置28を有している。
このうち、表示制御手段21は、CPU1からの指令にしたがって、CPU1が処理した情報を表示装置8に表示する。表示制御手段21は、例えば、部材を表す図形要素を位置関係にしたがって配置することによって管路を画面上に表示する。
また、入力手段22は、入力装置6に対するユーザ操作を検知し、CPU1に伝達する。入力手段22は、例えば、画面上で機器を移動または回転する操作を受け付ける。
表示装置8、入力装置6、表示制御手段21、および入力手段22は、例えば、画面上のGUI(グラフィックスユーザインターフェース)部品の表示と、GUI部品に対する操作を検知し、ユーザインターフェースを構成する。
制御手段20Aは、例えば、設計支援装置を構成する演算処理部分に相当する。より具体的には、制御手段20Aは、演算処理部分のメインプログラムによって実現される。この制御手段20Aに、多数の演算処理の部品、例えば、コンピュータプログラムのモジュールが組み合わせられている。以下、そのような演算処理の部品を例示する。
連動範囲確定手段23は、機器に接続される配管のうちで操作に応じて機器とともに移動または回転すべき配管の連動範囲を確定する。この連動範囲は、例えば、配管と機器との接続部からの延伸距離または配管を構成する部材の種類を基準にして確定すればよい。
機器にはその廻りの管路に弁や流量計・温度計・圧力計等の計器が付設される。現場施工の都合や竣工後の改修時に機器を動かす作図をするとき、これら弁・計器等機器の作動のための部材(機器の運転管理をする保守員にとっては対象の近傍での操作・点検が望ま
しい)を一緒に移動できればCAD機能として有用である。一方、制限なく連動すること
を考えると、例えばポンプと接続される冷凍機や空調機の入口からの配管から連動して移動すると、設備の他の配管・配線との干渉までチェックし直さなくてはならない。このため、すでに検討した結果を活かすためには連動範囲を制限できる指定ができることが望ましい。
配置手段24は、連動範囲の境界にて、配管の切断点を設定し、機器および連動範囲の配管を操作にしたがって移動または回転する。管路形成手段25は、移動または回転後に、連動範囲側の配管の端部となる連動側切断点と連動範囲外の配管の端部となる固定側切断点とを管路で接続する。このようにして、機器の移動、または、回転に伴った、配管が分離された場合も、再度接続され得る。この場合、管路の切断->再接続の過程を必ずしもユーザが視認できるとは限らない。例えば、配管が分離された後の再接続処理が、ユーザの介入を待たずに自動実行されるモードでは、コンピュータの処理速度によっては、再接続されたか否かは、ユーザからは視認できない。一方、再接続前にユーザの介入を待つモード、あるいは、再接続処理をスローモーションで実行するモードでは、再接続されたか否かが、ユーザから視認できる。
継手調整手段26で扱う継手は、配管の延伸方向を配管の中心軸に対して所定角度(90度、45度、その他)で、かつ、配管の中心軸周りに任意の方向(0〜360度の範囲)に変更する部材である。継手調整手段26は、回転、移動側切断点と固定側切断点のいずれか一方の切断点が、そのような継手上に位置する場合に、その一方の切断点での継手からの相手配管への延伸方向を、接続元の配管の中心軸周りに回転する。これによって、継手の相手配管への方向が設定される。
一方、評価手段27は、中心軸周りに継手からの相手配管の延伸方向が回転した状態で、連動側接続点と固定側接続点との間に形成した管路の複雑さを、少なくとも管路の長さと管路が屈曲する節点の数とによって評価する。したがって、継手の向きを設定した場合に、その継手から形成される管路の複雑さが評価され、形成された管路を採用するか否かの判断基準となる情報が提供される。
以上の制御手段20Aの部品(モジュール)は、記憶装置28のデータを参照しつつ、演算処理を実行する。記憶装置28には、本設計支援装置の様々な管理情報、機器の属性情報、配管および部材の接続関係を示す情報等が格納される。
<データ構造>
図4Aから図5Cに、本設計支援装置が処理する主要なデータの構造を示す。これらのデータ構造で示す情報はメモリ2またはハードディスク上のファイルに格納される。
図4Aに、配管の経路を記述するルート情報のデータ構造例を示す。ルート情報は、単一のデータファイルに、ルート情報を格納してもよいし、個々の接点ごとに異なるファイルに情報を格納し、複数のファイルの集合によってルート情報を構成してもよい。
ルート情報は、節点と節点との接続関係を示すリスト構造200と、先頭節点へのポインタを示す先頭指示情報201とで構成される。先頭指示情報201は、ルート識別情報と、先頭節点へのポインタとを含む。ルート識別情報は、個々の経路をユニークに識別する情報である。
先頭節点へのポインタは、先頭の節点の要素情報202を指す情報であり、例えば、先頭節点の情報を有する要素情報202のアドレスである。また、要素情報202は、次の節点へのポインタ、上流へのポインタ、枝分かれ節点へのポインタ、および節点識別情報を含む。
このうち、次の節点へのポインタは、当該節点に隣接する次の節点の要素情報を指すポインタである。また、上流へのポインタは、リスト構造をさかのぼる方向、すなわち、逆方向へのポインタである。また、枝分かれ節点へのポインタは、当該節点が分岐しているときに、分岐経路の先頭を示すポインタである。また、節点識別情報は、図4Cの節点定
義ファイルで定義された節点の識別情報である。この節点識別情報をキーに節点情報ファイルを検索することで、当該節点の属性を読み出すことができる。
本設計支援装置は、このようなデータ構造で定義される配管のルートを検索し、配管に含まれる部材を抽出する。さらに、本設計支援装置は、その配管に代わる新たな管路を生成し、基の配管から抽出された部材を配置する。
図4Bは、部材配置情報ファイルのデータ構造例を示す図である。部材配置情報ファイルは、管路を構成する部材の種類と、部材の接続点を記録するファイルである。部材配置情報ファイルは、配置識別情報と、基準座標、始点の節点識別情報、終点の節点識別情報および属性を有する。
配置識別情報は、配置された部材を個々に識別する識別情報である。部材は、管路上の区間を占有するので、配置識別情報は、部材の存在する区間の識別情報と考えることもできる。
基準座標は、部材ごとの原点の位置する座標である。部材ごとの原点は、部材内の座標系の原点である。始点の節点識別は、管路上で、当該部材が占有する区間の開始点に相当する節点を識別する情報である。また、終点の節点識別は、管路上で、当該部材が占有する区間の終了点に相当する節点を識別する情報である。これらの識別情報は、ルート情報で説明した節点識別情報と同一の情報である。したがって、始点の節点識別と終点の節点識別とによって、部材の管路上の占有区間が特定されることになる。さらに、節点定義ファイルを参照することによって、始点から終点への管路方向を特定できる。
また、属性は、接点と接点とで挟まれた管路部分の属性である。この管路部分には、1つの部材が配置される。本実施形態では、属性として、部材、接続口の順序、および分岐ある場合の分岐の向きを有する。部材は、節点に配置されている部材の種類を特定する。
部材の種類は、例えば、機器(接続口)、バルブ、45度継手、90度継手、45度の整数倍の角度以外の角度で経路を替える継手(任意角継手という)、レジューサ等が設定される。なお、部材の種類としては、部材マスタ(図5参照)に定義されている部材識別情報が指定される。また、接続口の順序は、その節点において管路(始点から終点)に対して部材が正方向に配置されるか、逆方向に配置されるかを記録する。各部材の正方向と逆方向とは、それぞれの部材ごとに、部材マスタに定義される。なお、接続される管路の方向に垂直な中心面に対して対称な部材の場合には、向きを記録する必要がない。
分岐のある場合の分岐の向きとしては、XYZ軸で定められる座標系での単位ベクトルが指定される。
図4Cに、節点定義ファイルのデータ構造を示す。節点定義ファイルは、節点識別情報と、その節点識別情報で指定される節点の座標を定義したファイルである。節点定義ファイルの1レコードに1節点が定義される。図4Cでは、表の1行が1レコードに相当する。また、図4Cの節点定義ファイルで定義されている節点の節点識別情報が、図4Aおよび図4Bの節点識別情報に使用される。
図5Aに、部材マスタのデータ構造例を示す。部材マスタは、本設計支援装置が取り扱う部材を定義したファイルである。部材マスタの1つのレコードは、部材識別情報、部材名、およびそれぞれの部材別仕様テーブルへのポインタを含む。
部材識別情報は、本設計支援装置にてそれぞれの部材の種類をユニークに識別する情報
である。部材名は、それぞれの部材の名称である。部材名としては、例えば、弁類、分岐継手(チーズともいい、以下単に「分岐」ともいう)、レジューサ(レジューサ継手ともいう)、フランジ、縦管等を例示できる。部材別仕様テーブルへのポインタは、弁類、分岐、レジューサ、フランジ、縦管等、それぞれの部材の仕様を定義したテーブルへの格納先を定義する。ここで、格納先とは、それぞれの部材の仕様を定義したテーブルのファイルパス名、あるいは、メモリ上の先頭アドレス等である。
このように、本設計支援装置は、部材マスタから、それぞれの部材別仕様テーブルへのポインタを検索し、それぞれの部材の寸法、管路方向の長さ、接続口の数、接続の向き、分岐の有無、分岐の方向、分岐方向の突き出し量、それぞれの部材を画面に表示するときのグラフィックスシンボル(画像パターン、部材を示す線図形)等を取得する。
図5Bに、機器マスタのデータ構造例を示す。機器マスタは、個々の機器ごとにその機器の属性を記録した情報である。機器マスタは、機器固有の情報が登録され、機器が設置される設置現場、設置建物等によって影響を受ける情報は登録されない。また、機器マスタの情報は、新たな機器の追加にしたがってユーザにより順次登録される。図5Bは、機器マスタの1レコード例であり、1つの機器についての情報を示している。機器マスタは、機器識別情報、外形形状情報へのポインタ、配置基準点、接続口数、および接続口ごとの情報の並びを有する。
機器識別情報は、個々の機器をユニークに識別する情報である。外形形状情報へのポインタは、機器の外形を示す図形情報へのポインタであり、例えば、図形情報を格納したファイルのパス名である。外形形状情報は、例えば、頂点列、平面、曲面等サーフェイスの組み合わせ、ソリッド等で記述される。ソリッドは、立体形状であり、立体表面の法線ベクトルによって、表面の向き、および表面に囲まれた立体内部を識別可能なモデルである。
配置基準点は、設備内の座標系で機器を設置する位置(設備内配置点と呼ぶ)に対して、機器を位置付けるべき機器内の位置である。配置基準点が、(0,0)の場合には、機器の原点が、設備内配置点に位置付けられる。したがって、配置基準点は、機器を設備内に位置付けるときのシフト量の符号を反転したものとも考えることができる。このようなシフト量も、機器ごとに機器マスタに設定しておくことで、機器の種類ごとに、一括してシフト量を定義できるようにしている。なお、機器が設置される設置現場、設置建物等内の実際の位置は、別途、設備内の座標系で指定されることになる。
接続口数は、当該機器が有する接続口の個数である。接続口ごとの情報の並びは、接続口数だけ、接続口の座標、用途分類、サイズ、系統、方向、および接続点ベクトルを有する。接続口ごとの情報は、接続口の個数だけ列記される。なお、機器マスタの1レコードは、接続口の個数の最大値だけ接続口ごとの情報を格納可能な固定長レコードである。ただし、接続口の個数によってデータ長の異なる可変長レコードで機器マスタを構成してもよい。
接続口の座標は、機器内の座標系(UVW座標系)での接続口の位置を示す座標値である。用途分類、サイズ、系統、および方向は、図3で説明したものと同様である。接続点ベクトルは、接続口に接続される配管の接続口から配管を見た、配管の配置方向を示す単位ベクトルである。接続点ベクトルは、機器がソリッドモデル、あるいは、サーフェイスモデルで記述される場合には、通常、表面の法線ベクトルと一致する。したがって、接続点ベクトルは省略して、機器の外形の法線ベクトルから配管の配置方向を設定するようにしてもよい。機器マスタを格納するメモリ2、あるいは、ハードディスクのファイルが、機器接続位置記憶手段26、および機器属性記憶手段27に相当する。
図5Cに、配置機器情報テーブルのデータ構造例を示す。配置機器情報は、それぞれの機器を作図画面中の設備に配置したときに設定される情報を含む。配置機器情報は、配置機器識別情報、機器識別情報、設備内配置点、向き、外形形状情報へのポインタ、接続口数、および接続口ごとの情報の並びを有する。
このうち、配置機器識別情報は、作図画面内に配置された機器をユニークに識別する情報である。例えば、同一の種類の機器が、複数配置された場合には、それぞれ、配置された機器ごとに配置機器識別情報が付与される。また、機器識別情報は、機器マスタの機器識別情報と同様であり、機器の種類を特定するキーとして使用される。
設備内配置点は、機器の配置基準点(図5B参照)を位置付けるべき設備の座標系での位置である。また、向き(方向余弦)は、機器が、配置されたときに、機器の座標系(UVW)と、図面上の座標系(XYZ)との相互の回転角を示す情報である。したがって、設備内配置点に機器の配置基準点を設定し、向きが示す回転角を設定することで、機器の位置と向きが確定する。
配置口数、および接続口ごとの情報の並びは、機器マスタと同様である。しかし、配置機器情報では、接続口の座標は、図面の座標系(X,Y,Z)に変換される。また、接続点ベクトルは、機器マスタの接続点ベクトルを向きにしたがって、回転した情報である。配置機器識別情報を記憶するメモリ2、あるいは、ハードディスクのファイルが、設備内機器情報記憶手段27に相当する。また、設備内配置点と向きとを格納するメモリ2、あるいは、ハードディスクのファイルが、設置状態記憶手段35に相当する。
なお、図5Cでは、機器情報記憶手段27に相当する要素と、設置状態記憶手段35に相当する要素が、配置機器情報として、単一のレコードに格納されている。しかし、機器情報記憶手段27に相当する要素と、設置状態記憶手段35に相当する要素とをそれぞれ、異なるテーブル、異なるファイルに格納してもよい。その場合には、それぞれのテーブル、あるいはファイルを構成する各レコードに、図5Cの配置機器識別情報を格納することになる。
さらに、図5Cでは、個々の設備内配置点にて、接続口の座標、および接続点ベクトルが、設備内座標系に変換されている。しかし、配置機器情報から、接続口の座標、および接続点ベクトルを省略するようにしてもよい。その場合には、必要が生じるごとに逐一、本設計支援装置が、図5Bの機器マスタを基に、接続口の座標、および接続点ベクトルを算出するようにすればよい。
以下、図6から図41の図面を参照して、本発明の実施例1を説明する。図6は、機器移動処理を例示するフローチャートである。この処理は、例えば、画面上の機器処理を起動するメニューの項目をユーザが選択することで起動される。このとき、画面上で、移動対象の機器の図形を選択するように促すメッセージが画面に表示される。ただし、処理が起動した後でも、ユーザが入力装置6のエスケープキーを押下すると(S1でYESの場合)、処理が終了する(S2)。
エスケープキーが押下されることなく(S1でNOの場合)、ユーザが、入力装置6を用いて、移動対象の機器(画面上の図形部分)を指定すると、本設計支援装置は、その指定を受け付ける(S3)。このとき、選択された機器を示す図形部分がハイライト表示される。なお、機器以外の画面上の図形、例えば、配管等は選択できない。
次に、ユーザが、入力装置6のエンターキーを押下すると、選択操作が確定する(S4、S5)。エンターキーを押下するまでは、ユーザは、複数の機器を選択することができる。また、エンターキーを押下するまでは、選択中の機器の選択を機器ごとに解除することができる。
機器の選択が確定すると、次に、本設計支援装置は、機器とともに移動する管路の探索処理を実行する(S6)。この探索では、上記で選択された機器の接続口から、図4Aのルート情報にしたがって、ルートを辿り、図4Bの配置情報テーブルを探索する。そして、定義値で指定される範囲、または、所定の部材(例えば、縦管まで)の範囲で、機器とともに移動する管路を探索する。この処理を実行する設計支援装置のCPU1が、本発明の連動範囲確定手段に相当する。次に、本設計支援装置は、ユーザに、機器の移動先の指定を促す(S7)。移動先の指定では、まず、基準点の入力を促すメッセージが表示され、設計支援装置は、機器内の移動先の基準点の入力を受け付ける。基準点とは、入力装置6によって画面上でポインタを操作したときに、ポインタに追従する機器の位置である。基準点の入力後、指定点の入力を促すメッセージが表示される。指定点とは、ユーザによって確定される機器(の基準点)の移動先である。基準点から指定点までの距離によって移動距離が決定される。したがって、移動距離を決定するという目的においては、基準点および指定点の少なくとも一方は、ユーザが任意に選択できることなる。これは、後述する、機器をグループ化した場合のグループ単位での操作でも同様である。本実施形態では、ユーザが入力装置6を操作して、ポインタを移動すると、移動中のポインタの位置に基準点が位置付けられて、機器が仮表示される。そして、ユーザが希望する箇所で入力装置6(例えば、ポインティングデバイスのボタン)を押下すると、本設計支援装置は、そのポインタの位置を指定点として受け付ける。この処理を実行する設計支援装置のCPU1が、本発明の配置手段に相当する。
次に、本設計支援装置は、移動後の機器(および機器とともに移動する配管)との接続対象となる配管と、配管上の接続点(ここでは管材の開口で、連動範囲から外れた管路の固定側の端点)を検索する(S8)。次に、本設計支援装置は、移動後の機器(および機器とともに移動する配管)と探索された接続点とのつなぎ直し処理を実行する(S9)。この処理を実行する設計支援装置のCPU1が、本発明の管路形成手段に相当する。
図7は、機器とともに移動する管路の探索処理(図6のS6)の詳細を例示するフローチャートである。なお、この例では、移動対象となる機器1つに対する処理が示されている。複数の機器が移動対象に選択されている場合には、図7の処理を選択された機器の台数分だけ繰り返せばよい。
ここでは、まず、本設計支援装置は、選択された機器の図形に付与されている配置機器識別情報を取得する(S61)。そして、本設計支援装置は、配置機器識別情報をキーにして、配置機器情報テーブル(図5C)を検索する。
そして、本設計支援装置は、機器と一体となって移動する配管を検索する(S62)。具体的には、本設計支援装置は、配置機器情報テーブルに定義されている、その機器の接続口の節点識別情報を読み出し、その接続口に接続される部材をルート情報(図4A)にしたがって検索する。なお、機器の接続口が複数ある場合には、それぞれの接続口について、同様の処理を繰り返せばよい。
本実施例では、この場合の検索は、機器のそれぞれの接続口から、所定の長さの配管の範囲とする。この所定の長さを定義値と呼ぶ。定義値は、本設計支援装置の設定パラメータの1つのであり、ユーザが定義する。定義値は、実際の距離、例えば、メートル単位、ミリ単位等での絶対的な値による指定で指定してもよい。また、管の内径等の倍数によっ
て相対的な指定を行ってもよい。例えば、「10D」は、管の内径の10倍とする指定である。このような管の内径に対する相対的な指定を行うことによって、細い配管では短い距離で弁、計器類、継手、あるいは分岐等の部材が配置される一方で、太い管では、これら太さに相当する長さを有する部材を含んだ配管の長さを、より長く指定できる。
この検索では、本設計支援装置は、まず、定義値内の配管の範囲に縦管が存在するか否かを検索する(S63)。縦管が存在する場合(S64でYES場合)、本設計支援装置は、機器の接続口から見て最初に検索された縦管までを機器と連動して移動する配管とする。ただし、縦管の上下端の継手も連動して移動する配管に含める(S64)。
また、定義値内に縦管がない場合(S64でNOの場合)、本設計支援装置は、定義値内にある継手を検索する(S66)。継手がない場合(S67でNOの場合)、すなわち、接続口から直管だけが接続されている場合、例えば、接続口から直管の直径(D)の3倍の長さ(3D)までを機器にとともに移動する範囲の配管とする(S68)。ただし、直径(D)の3倍の長さ(3D)は、処理例であり、例えば、ユーザの設定によって変更可能な設定パラメータとすればよい。以上の定義値の範囲あるいは直管に対する設定パラメータの範囲が本発明の第1の基準に相当する。
また、縦管がなく、継手が存在する場合(S67でYES)、定義値の範囲内で、機器から最も遠い位置の継手までを機器とともに移動する範囲の配管とする(S69)。このように処理することで、機器から所定の範囲の部材を機器と一体として移動するものとしてセットで編集できる。そして、本設計支援装置は、その範囲の管路に分岐があるか否かを判定する(S6A)。その範囲に分岐がある場合、本設計支援装置は、分岐先に、機器の接続口からの定義値の範囲内にて部材があるかどうかを検索する(S6B)。ここで、部材とは、直管以外の配管の材料、例えば、継手、レジューサ継手、分岐、バルブ、計器(温度計等)をいう。なお、機器に関連のある部材を予め、機器ごとにテーブルに登録しておいてもよい。そして、それぞれの機器の移動、回転時に、そのような機器ごとの部材登録テーブルから、機器に関連のある配管の範囲を決定してもよい。
そして、分岐先の定義値範囲内に部材がある場合、本設計支援装置は、その最初の部材までを機器とともに移動する範囲の配管とする(S6D)。また、分岐先に直管以外の部材がない場合、分岐先であった直管と分岐との接続点までを機器とともに移動する範囲の配管とする(S6E)。以上のS63、S64およびS6BからS6Dの少なくとも1つの処理での判断基準が本発明の第2の基準に相当する。なお、本実施例の処理では、図7のように、まず、定義値によって機器からの延伸距離で機器とともに動く連動範囲を限定し、その次に、配管を構成する部材の種類を基準に連動範囲を確定した。しかし、このような手順に代えて、配管を構成する部材の種類を基準に連動範囲を確定してもよい。すなわち、上記第1の基準および第2の基準には、組み合わせて用いてもよいし、単独の基準として用いてもよい。
次に、本設計支援装置は、機器のすべての接続口について、定義値内の配管に対して、検索を終了したか否かを判定する(S6F)。まだ、未検索の配管がある場合、本設計支援装置は、制御をS62に戻し、定義値内で検索を続行する。一方、機器のすべての接続口について、定義値内の配管に対して、検索を終了すると、本設計支援装置は、処理を終了する。
なお、この処理にしたがって、機器とともに移動する範囲の配管が確定する。そして、機器とともに移動する範囲の境界部分の配管には、接続点(本発明の切断点に相当)が設定される。接続点は、新たな節点として生成され、図4Aに示したルート情報、および図4Cの節点定義ファイルに定義される。また、接続点が直管上にある場合、直管は、機器
とともに移動する直管と、移動しない直管に分割され、図4Bの部材配置情報に登録される。また、接続点の情報は、図示しない固定接続点テーブルおよび移動接続点テーブルに登録される。固定接続点テーブルは、機器とともに移動しない接続点の節点識別情報の一覧を列記したテーブルである。移動接続点テーブルは、機器とともに移動する接続点の節点識別情報の一覧を列記したテーブルである。それぞれの節点識別情報に対応する座標は、節点定義ファイルに定義される。
さらに、機器の移動に伴って、その機器の配置機器情報テーブルの接続口の節点識別情報に対応する節点定義ファイル(図4C)の節点の座標が書き換えられる。これらの座標は、機器の移動に対応するマトリクスによって座標変換すればよい。
図8Aに、定義値の範囲内に直管が存在する場合の処理例を示す。この例では、機器200の接続口201から延伸する配管L1の定義値内に、縦管LV1が存在するので、縦管LV1の上下の継手C1およびC2までが、機器とともに移動する範囲の配管となる。また、機器200の接続口202には、縦管が接続されている。この場合には、縦管LV2および上端の継手C3までが、機器とともに移動する範囲の配管となる。
図8Bに、機器とともに移動する範囲の対象とならない縦管の例を示す。この例では、縦管LV1および継手C1に、さらに配管L2およびL3が接続されている。配管L3には、縦管が含まれている。しかしながら、配管L2およびL3は、定義値内の最初の縦管LV1およびその上下の継手C1、C2より遠い位置にある。そこで、配管L2およびL3は、機器とともに移動する範囲の対象とはならない。同様に、縦管LV4および継手C4より遠い位置にある、配管L4は、対象とはならない。
図8Cに、継手と分岐の処理例を示す。定義値内の継手C5までが、機器とともに移動する範囲の配管となる(図8Cで太線部分)。また、その途中に分岐T1、T2がある場合には、分岐T1、T2の分岐側の直管との接続点までを機器とともに移動する範囲の配管とする。ただし、分岐T1のさらに定義値内の範囲に当該直管との接続点に接してバルブVL1等の部材が存在する場合、バルブVL1までを機器とともに移動する範囲の配管とする。
図8Dに、直管の処理例を示す。接続口に直管だけが接続されている場合、設定パラメータ(直管の内径Dの3倍)の範囲までを機器とともに移動する配管の範囲とする。
図9に、移動後の機器(および機器とともに移動する配管)との接続対象となる配管と、配管上の接続点を検索する処理(図6のS8)の詳細を示す。この処理の前に管路の線が一旦破断されている。この処理は、機器とともに移動する範囲の境界に位置する固定側配管の接続点の代わりに、移動後の機器(および機器とともに移動する配管)から、より近い位置を新たな接続点とするために検索する処理である。
この処理では、本設計支援装置は、まず、移動後の機器と接続対象となる配管をS62の定義値の範囲で検索する(S81)。これは、機器移動前の接続点の位置する配管を部材配置情報から検索する処理である。なお、接続点一覧は、図7の処理によって生成される固定接続点テーブルに列記されている。また、接続点の節点識別情報の位置は、図4Aのルート情報および図4Bの部材配置情報テーブルに登録されている。したがって、接続点テーブルの節点識別情報を基に、機器とともに移動しなかった配管をたどることができる。
次に、本設計支援装置は、移動前の機器との接続点から、配管のつながりをたどる(S82)。そして、本設計支援装置は、移動前の管路の分岐の有無を判定する(S83)。
そして、分岐がある場合には、分岐までを接続対象とする(S84)。また、分岐がない場合には、接続点に接続されている配管全体が接続対象となる(S85)。
そして、本設計支援装置は、接続対象の配管(切断された端点)と、機器とともに移動した配管の機器から遠い側の接続点との距離が最小の点を探索する(S86)。そして、本設計支援装置は、移動後の機器との接続点を確定する(S87)。本処理で確定された接続点によって、固定接続点テーブルの接続点の座標が更新される。
図10に、分岐までを接続点とする処理例を示す。この例では、機器300の移動前の接続点が機器の移動によって、機器側P300Aおよび機器から遠い配管側P300Bに分離している。接続点P300Bに接続される配管L6に分岐T6が存在する。接続点P300Bから分岐T6までの間が、接続対象にとされる。
図11に、移動後の機器との接続点を確定する処理例を示す。この例では、移動前後の接続点P300(機器側P300Aおよび機器から遠い配管側P300B)があり、機器の移動によって、接続点P300AとP300Bとが分離している。このような場合に、配管上で移動後の機器側の接続点P300Aからの距離が最も近い位置の点P300Cが新たな接続点となる。
図12に、機器の回転の処理例を示す。この処理は、機器の配置が、画面上で回転される点以外は、図6の機器の移動と同様である。すなわち、S11からS15の処理は、図6のS1−S5と同様である。回転の場合には、本設計支援装置は、機器の回転先の入力を促し、回転先を指定させる(S16)。この処理では、入力装置6を通じて、回転中心の位置と、回転角が入力される。そして、機器が回転される。機器の回転に伴って、接続点に対応する節点の座標および接続点ベクトルが座標変換される。その後の処理(S17およびS18)は、図6の機器移動の処理(S7およびS8)と同様である。ただし、回転の場合には、機器の移動とは異なり、機器とともに移動する接続点の座標(節点定義ファイルの座標)の他、接続点ベクトルの方向が書き換えられる。図13に、移動・回転のつなぎ直し処理(図6のS8および図12のS18で実行されるサブプログラムの処理)のフローチャートを例示する。
この処理では、本設計支援装置は、図7の処理で作成した固定接続点テーブルから、機器とともに移動しなかった配管の接続点の節点識別情報を取得し、節点定義ファイルからその座標を取得する。また、その配管の方向から、方向ベクトルを取得する。さらに、本設計支援装置は、移動接続点テーブルから、機器とともに移動した接続点の節点識別情報を取得し、節点定義ファイルからその座標を取得する。また、その配管の方向から、方向ベクトルを取得する(S100)。
次に、機器とともに移動した接続点の座標を起点P1、その配管の方向ベクトルを起点ベクトルV1、機器とともに移動しなかった接続点の座標を終点P2、その配管の方向ベクトルを終点ベクトルV2に設定する(S101)。
そして、本設計支援装置は、2点間のつなぎ直し処理を実行する(S102)。そして、本設計支援装置は、固定接続点テーブルと移動接続点テーブルとに設定されたすべての接続点について、処理を完了したか否かを判定する(S103)。
すべての接続点の処理が完了していない場合、本設計支援装置は、制御をS100に戻す。一方、すべての接続点の処理が完了した場合には、本設計支援装置は、処理を終了する。
図14に、配管つなぎ替え処理(図13のS154)で実行される処理の詳細を例示する。この処理は、例えば、コンピュータのサブプログラムとして実現される。このサブプログラムは、起点P1、起点ベクトルV1、終点P2、および終点ベクトルV2を引き渡され、起点P1から終点P2との間を接続する管路を形成する。
このサブプログラムを実行する本設計支援装置は、まず、起点ベクトルV1と終点ベクトルV2とが同一平面上にあるいか否かを判定する(M1)。2つのベクトルが同一平面上にあるか否かは、それぞれのベクトルを含む2つの直線の方程式を設定し、2つの直線が平行であるか、平行でない場合に交点を有するか否かで判定すればよい。
起点ベクトルV1と終点ベクトルV2とが同一平面上にある場合には、本設計支援装置は、共有平面上での二次元処理を実行する(M2)。
また、起点ベクトルV1と終点ベクトルV2とが同一平面上にない場合には、本設計支援装置は、基点ベクトルV1と終点ベクトルV2とは、互いに段差のあるXY平面、YZ平面、およびZX平面のいずれかに平行な2つの平面上にあるか否かを判定する(M1A)。起点ベクトルV1と終点ベクトルV2とが同一平面上にない場合には、本設計支援装置は、基点ベクトルV1と終点ベクトルV2とは、互いに段差のある平行な2つの平面上にある場合、本設計支援装置は、2つの平面を接続し、それぞれの水平面内での二次元処理を実行する(M2A)。
例えば、起点ベクトルV1と終点ベクトルV2とが、互いに段差を有する2つの水平面上(XY平面に平行な平面上)にある場合には、縦管を用いて、2つの水平面を接続することにより、基本的には、管路がすべて1つの平面上にある場合の処理に帰着できる。例えば、起点P1から90度継手、45度継手、直管と90度継手との組み合わせ、または、直管と45度継手との組み合わせによって、縦管に接続すればよい。そして、縦管を終点ベクトルP2のある平面にまで延伸し、90度継手または45度継手によって、終点ベクトルP2のある平面上の配管に接続すればよい。起点ベクトルV1と終点ベクトルV2とが、YZ平面、あるいは、ZX平面に平行な2つの平面上にある場合も同様である。
この場合に、起点P1からではなく、終点P2から90度継手、45度継手、直管と90度継手との組み合わせ、または、直管と45度継手との組み合わせによって、縦管に接続してもよい。そして、縦管を終点ベクトルP2のある平面にまで延伸し、90度継手または45度継手によって、終点ベクトルP2のある平面上の配管に接続すればよい。
このように、縦管を設けることで、始点P1(および起点ベクトルV1)のある平面上での始点から縦管までの管路のつなぎ直しと、終点P2(および終点ベクトルV2)のある平面上での、縦管から終点P2までの管路のつなぎ直しを実行すること、段差のある管路においても、水平面上の処理にて、管路のつなぎ直しを実行できる。また、起点ベクトルV1と終点ベクトルV2とが同一平面上にない場合には、
次に、本設計支援装置は、次に、起点ベクトルV1と終点ベクトルV2の一方は、X、YまたはZ軸に平行か否かを判定する(M3)。これは、起点ベクトルV1と終点ベクトルV2のいずれかのX、Y、Z成分のいずれかが、X、Y、Z成分のいずれかだけを持つかどうか、すなわち、2つの軸方向の成分が0か否かを判定する処理である。
そして、起点ベクトルV1と終点ベクトルV2の一方が、X、YまたはZ軸に平行な場合、本設計支援装置は、座標軸に平行なベクトルを含む処理を実行する(M4)。また、起点ベクトルV1と終点ベクトルV2のいずれもが、X、YまたはZ軸上に平行でない場合、本設計支援装置は、起点ベクトルV1と終点ベクトルV2の一方が、XY、YZ、およびZX平面のいずれかに平行な平面の上にあるか否かを判定する(M5)。これは、起
点ベクトルV1と終点ベクトルV2のいずれかのX、Y、Z成分のいずれかが0であるか否かを判定する処理である。M1、M3、およびM5の判定を実行するCPU1が、平面判定手段30に相当する。
そして、起点ベクトルV1と終点ベクトルV2の一方が、XY、YZ、およびZX平面のいずれかに平行な平面の上にある場合、本設計支援装置は、XY、YZ、およびZX平面に平行な平面上のベクトルを含む処理を実行する(M6)。また、起点ベクトルV1と終点ベクトルV2の両方が、XY、YZ、およびZX平面のいずれにも平行でないとき、本設計支援装置は、2つのベクトルがXY、YZ、およびZX平面のいずれにも平行でない場合の処理を実行する(M7)。
図15に、共有平面上での二次元処理(図14のM2)の処理を例示する。この処理では、本設計支援装置は、まず、起点ベクトルV1と終点ベクトルV2とが平行かつ対向しているか否かを判定する(M21)。対向しているとは、ベクトルの向きが逆であることをいう。
(A)2つのベクトルが平行かつ対向している場合(行き違いを除外);
図16に、起点ベクトルV1と終点ベクトルV2とが平行かつ対向している例を示す。2つのベクトルが平行か否かは、2つのベクトルの内積で判定できる。また、平行な2つのベクトルが対向しているか否かは、2つのベクトルに対して、それぞれ長さ1の単位ベクトルを求め、2つの単位ベクトルの加算結果がキャンセルして0(または0に近い許容値ε以下の値になるか)、2つの単位ベクトルの加算結果が単位ベクトルの2倍の大きさのベクトルに近づくか、によって判定すればよい。なお、ここでは、起点ベクトルV1と終点ベクトルV2とが行き違いの場合(図22参照)を除外する。行き違いの状態にあるか、否かの判定方法は、(B)にて説明する。
今、図16に示すように、起点P1を通り、基点ベクトルV1に平行な直線L1と、終点P2を通り、終点ベクトルV2に平行な直線との距離をΔD1とする。距離ΔD1は、起点P1を通り、起点ベクトルV1を含む直線が、終点P2を含む終点ベクトルV2に垂直な平面PLN2(基点ベクトルV1との直交面でもある)と交わる交点P3を求めると、終点P2と交点P3との距離ΔD1として算出できる。ただし、より一般的には、一方の直線L2に垂直な平面PLN2と、他方の直線L1との交点から、一方の直線L2に引いた垂線の長さとして求めることができる。
また、起点P1を通り、起点ベクトルV1に垂直な平面PLN1と、起点P2を通り、起点ベクトルV2に垂直な平面PLN2との距離をΔD2とする。
距離ΔD2は、起点P1を通り、起点ベクトルV1を含む直線が、終点P2を含む終点ベクトルV2に垂直な平面と交差する交点P3を求めると、起点P1から交点P3までの距離として求めることができる。ただし、逆に、終点P2を通り、終点ベクトルV2を含む直線が、起点P1を通り起点ベクトルV1に垂直な平面と交差する点と終点P2とから距離ΔD2を求めてもよい。
以下、この距離ΔD1、ΔD2によって、起点P1と終点P2とを以下のように分類する。)
起点ベクトルV1と終点ベクトルV2とが平行かつ対向している場合(M21でYESの場合)、本設計支援装置は、対向ベクトル処理を実行する(M22)。対向ベクトル処理は、起点P1と起点P2との位置関係、および起点ベクトルV1と終点ベクトルV2と位置の関係を分類することで処理、例えば継手による接続の描画がされる。
(1)距離ΔD1=0または距離D1<所定の許容値ε;
これは、起点P1からの起点ベクトルV1と終点P2からの終点ベクトルV2とが、同一直線上にある場合である。この場合には、起点P1と終点P2とを直管で接続する。図17に、起点P1と、終点P2とを直管で接続する例を示す。
(2)許容値ε<距離ΔD1<L45RMIN;
L45RMINは、2つの平行な配管を45度継手で接続するための最低限必要な、配管に垂直な方向の距離である。L45RMINは、45度継手の配管に垂直は方向の長さと、45度継手間の直管の最低長さLMINから定まる値であり、継手の製造上の形状特性で決定されるカタログ値である。この場合に、接続すべき開口と開口との間の接続点ベクトル(起点ベクトルV1、終点ベクトルV2)に平行な方向の距離によって以下のように、さらに場合分けする。
(2−1)LAPMIN<距離ΔD2;
LAPMINは、互いに対向する配管同士を任意角継手で接続するために必要な配管に平行な方向の最低限の距離である。LAPMINは、継手の配管に平行な方向の長さと、継手間の直管の最低長さLMINから定まる値であり、継手の製造上の形状特性で決定されるカタログ値である。
この条件を満足する場合には、起点P1と終点P2とを任意角継手で接続する。図18に、任意角継手で配管を接続する例を示す。この場合、起点P1と終点P2との距離に応じて、直管が挿入されることになる。
(2−2)距離ΔD2<LAPMIN;
この場合には、任意角継手を起点P1と終点P2との間に配置できないため、90度継手を複数組み合わせて、迂回路を形成する。図19に、迂回路を形成して、起点P1と終点P2とを接続する例を示す。ここでは、起点P1、直管1、90度継手、直管2、90度継手、直管3、90度継手、直管4、90度継手、終点P2によって、迂回路が形成される。これによって、直管1によって、起点P1の位置がP11まで移動されることになる。なお、起点P1を含む配管PIPE1または終点P2を含む配管PIPE2と、迂回路とが干渉する場合、そのまま干渉が生じる状態で維持してもよいが、配管PIPE1の中心軸および配管PIPE2の中心軸を中心に、迂回路を揺動した位置に移動した上で直管2および直管4の長さを調整すればよい。すなわち、直管3を紙面に垂直な上下方向にシフトし、直管2および直管4を紙面に斜め方向にして接続すればよい。
迂回路が形成された個所は、いずれ配管をつなぎ直すことになる場合も多いと想定されるが、システム上でこのような管路が形成されることで、管路が輻輳していることが操作者の目を引き、つなぎ忘れを防止できる。すなわち、形成された迂回路の表示が、接続し直しのガイダンスとなる。
(3)L45RMIN<距離ΔD1<L90RMIN;
この場合も、接続すべき開口と開口との間の接続点ベクトル(起点ベクトルV1、終点ベクトルV2)に平行な方向の距離によって以下のように、さらに場合分けする。なお、L90RMINは、2つの平行な配管を90度継手で接続するための最低限必要な、配管同士の距離である。L90RMINは、90度継手の配管に垂直な方向の長さと、90度継手間の直管の最低長さLMINから定まる値であり、継手の製造上の形状特性で決定されるカタログ値である。
(3−1)L45PMIN<距離ΔD2;
L45PMINは、対向する配管同士、平行な配管同士を45度継手で接続するために必要な配管に平行な方向の最低限の距離である。L45PMINは、継手の配管に平行な方向の長さと、継手間の直管の最低長さLMINから定まる値であり、継手の製造上の形状特性で決定されるカタログ値である。
この条件を満足する場合には、起点P1と終点P2とを45度継手で接続する。図20に、45度継手で配管を接続する例を示す。この場合、起点P1と終点P2との距離に応
じて、直管が挿入されることになる。
(3−2)距離ΔD2<L45PMIN;
この場合には、45度継手を起点P1と終点P2との間に配置できないため、90度継手を複数組み合わせて、迂回路を形成する。迂回路の構成は、図19の場合と同様である。
(4)L90RMIN<距離ΔD1;
この場合も、接続すべき開口と開口との間の接続点ベクトル方向の距離によって以下のように場合分けする。
(4−1)L90PMIN<距離ΔD2;
L90PMINは、互いに対向する配管同士、平行な配管同士を90度継手で接続するために必要な配管に平行な方向の最低限の距離である。
この条件を満足する場合には、起点P1と終点P2とを90度継手で接続する。図21に、90度継手で配管を接続する例を示す。
(4−2)距離ΔD2<L90PMIN;
この場合には、90度継手を起点P1と終点P2との間に配置できないため、次に示す起点ベクトルV1と終点ベクトルV2とが平行かつ対向していない場合(P21でNOの場合)の処理と同様の処理を実行する。
なお、以上の分類では、許容値ε=<L45RMIN=<L90RMINの場合を例として説明した。例えば、L90RMIN<L45RMINの場合には、45度継手を使用せず、90度継手を使用する条件だけを考慮すればよい。すなわち、(2)の判定で、90度継手の寸法(L90RMIN)で判定するとともに、(3)の処理をなくせばよい。
(B)2つのベクトルが平行かつ対向していない場合;
以下、図15に戻り、起点ベクトルV1と終点ベクトルV2とが平行かつ対向していない場合(M21でNOの場合)、本設計支援装置は、起点ベクトルV1と終点ベクトルV2とが、対向していないが、平行であるか否かを判定する(M23)。起点ベクトルV1と終点ベクトルV2とが、対向していないが、平行である場合、本設計支援装置は、起点P1と終点P2との間に、90度継手で迂回路を形成する。図22−図24に、対向していないが、平行な起点ベクトルV1と終点ベクトルV2に対する処理例を示す。ここで、対向していなとは、起点ベクトルV1と、終点ベクトルV2とが行き違いの関係にあるか、または、方向が同一の場合ということができる。
図22に、行き違いの関係にある起点ベクトルV1と、終点ベクトルV2の例を示す。この場合には、図19の場合と同様、迂回路を形成する。図23に、起点ベクトルV1と、終点ベクトルV2とが、行き違いの関係にあって迂回路を形成する例を示す。
行き違いの関係にあるか、否かは、起点P1を起点ベクトルV1方向に微少量Δだけ移動した位置と、終点ベクトルP2と距離の変化ΔL=ΔD2の変化量を求め、ΔLが増加するか否かで判定できる。すなわち、始点P1の始点ベクトル方向への移動とともに、距離ΔD2が長くなるか、短くなるかで判定できる。なお、すでに上記(4−2)で述べたように、本実施形態では、ΔD2<L90PMINとなる場合も、行き違いの場合と同様の処理を行う。
なお、迂回路が、起点P1を含む配管PIPE1あるいは終点P2を含む配管PIPE2と干渉する場合には、図19で説明した手順と同様、PIPE1およびPIPE2の中心軸を中心に迂回路を揺動させた位置に設定すればよい。
図24および図25に、平行な非対向ベクトルに対する処理例を示す。図24は、L9
0RMIN<距離ΔD1の場合である。この場合には、起点P1と終点P2とが、90度継手と直管で接続される。
図25は、距離ΔD1<L90RMINの場合である。この場合には、起点P1を通り起点ベクトルV1に平行な直線と、終点P2を通り終点ベクトルV2に平行な直線との間に90度継手を配置できないので、90度継手を組み合わせて迂回路を形成して、起点P1と終点P2とを接続する。
(C)2つのベクトルが非平行な場合;
次に、図15に戻って、起点ベクトルV1と終点ベクトルV2とが、処理M23の条件を満たさなかった場合について説明する。これは、例えば、入れ替え機器の内部の流路が、接続口に対して斜めに形成されている場合である。この場合、本設計支援装置は、ベクトルの角度ごとの処理を実行する(M25)。ベクトルの角度ごとの処理は、以下のように、起点P1と終点P2との位置関係、および起点ベクトルV1と終点ベクトルV2のなす角度θに応じて継手と直管とを組み合わせる処理である。
以下、起点P1を通り起点ベクトルV1に平行な直線L1と、終点P2を通り終点ベクトルV2に平行な直線L2のなす角度をθとする。ただし、直線のなす角は、2通りに定義できるが、本実施形態では、起点ベクトルV1と終点ベクトルV2の逆方向ベクトルのなす角度として定義される。
(1)交点PXでの角度θが45度未満の場合;
(1−1)交点PXの位置が、起点P1と終点P2との間に位置する場合には(図26参照)、任意角継手と直管で接続する(図27参照)。すなわち、交点点PXに、角度θの任意角継手を配置し、始点P1と交点PXおよび交点PXと終点P2とを直管で接続する(図27参照)。ただし、始点P1と交点PXとの距離ΔDA1および交点PXと終点P2との距離ΔDA2が、任意角継手の中心から一方の端部への最小寸法LAMINより小さい場合には、(1−2)の処理による。
(1−2)交点PXの位置が、起点P1と終点P2との間に位置しない場合(図28参照)には、90度継手と任意角継手の組み合わせによって迂回路を形成する(図29参照)。図29の例では、起点P1、直管1、90度継手、直管2、90度継手、直管3、90度継手、直管4、任意角継手、終点P2の迂回路が形成される。
さらに、起点P1を有する配管PIPE1または終点P2を有する配管PIPE2のいずれか一方が迂回路と干渉する場合には、そのまま干渉が生じる状態で維持してもよいが、一旦、図の紙面に垂直な方向(例えば、図がXY平面を示す場合、Z軸方向)にレベルを移動する。例えば、図28、図29が、XY平面上にある場合、直管1にて一旦Z軸方向にシフトする90度継手と、直管2−4にてZ軸方向にレベルを戻す90度継手とを設ける。
(2)交点PXでのθが45度の場合;
(2−1)交点PXの位置が、起点P1と終点P2との間に位置する場合には、45度継手と直管で接続する。すなわち、交点点PXに、45度継手を配置し、始点P1と交点PXおよび交点PXと終点P2とを直管で接続する(図30参照)。ただし、始点P1と交点PXとの距離ΔD451および交点PXと終点P2との距離ΔD452が、45度継手の中心から一方の端部への最小寸法L45MINより小さい場合には、(2−2)の処理による。
(2−2)上述の(2−1)ただし書きの場合、および、交点PXの位置が、起点P1と終点P2との間に位置しない場合(図31参照)には、90度継手と45度継手の組み
合わせによって迂回路を形成する。図31の例では、起点P1、直管1、90度継手、直管2、90度継手、直管3、90度継手、直管4、45度継手、終点P2の迂回路が形成される。また、図30で、始点P1と交点PXとの距離ΔD451および交点PXと終点P2との距離ΔD452が、45度継手の中心から一方の端部への最小寸法L45MINより小さい場合も、同様に迂回路を形成する。
さらに、起点P1を有する配管PIPE1または終点P2を有する配管PIPE2のいずれか一方が迂回路と干渉する場合には、直管1にて一旦、図の紙面に垂直な方向(例えば、図がXY平面にある場合、Z軸方向)にレベルを移動する90度継手と、直管2にてZ軸方向にレベルを戻す90度継手を設ける。
(3)交点PXでのθが45度より大きく90度未満の場合;
この場合には、任意角継手として45度より大きく90度未満のものを用いることで、(2)の場合と同様の処理を実行する。図32に迂回路を形成する構成例を示す。
(4)交点PXでのθが90度の場合;
(4−1)交点PXの位置が、起点P1と終点P2との間に位置する場合には、90度継手と直管で接続する。すなわち、交点点PXに、90度継手を配置し、始点P1と交点PXおよび交点PXと終点P2とを直管で接続する(図33参照)。ただし、始点P1と交点PXとの距離ΔD901および交点PXと終点P2との距離ΔD902が、90度継手の中心から一方の端部への最小寸法L90MINより小さい場合には、(4−2)の処理による。
(4−2)交点PXの位置が、起点P1と終点P2との間に位置しない場合(図34参照)には、90度継手の組み合わせによって迂回路を形成する。図34の例では、起点P1、直管1、90度継手、直管2、90度継手、直管3、90度継手、直管4、終点P2の迂回路が形成される。ただし、図33で、始点P1と交点PXとの距離ΔD901および交点PXと終点P2との距離ΔD902が、45度継手の中心から一方の端部への最小寸法L90MINより小さい場合も、同様に迂回路を形成する。
さらに、起点P1を有する配管PIPE1または終点P2を有する配管PIPE2のいずれか一方が迂回路と干渉する場合には、直管1にて一旦、図の紙面に垂直な方向(図がXYの場合にはZ軸方向)にレベルを移動する90度継手と、直管2にてZ軸方向にレベルを戻す90度継手とを設ける。
(5)交点PXでのθが90度より大きく1350度未満の場合;
(5−1)交点PXの位置が、起点P1と終点P2との間に位置する場合には、起点ベクトルV1と、終点ベクトルV2の逆方向ベクトルのなす角θに対して、角度θを外角とする直角三角形TR1を設定する(図35参照)。直角三角形TR1は、交点PXと起点P1との間に起点ベクトルV1に直交する直線L1を設定することで、設定できる。
起点ベクトルV1を含む直線L1と、起点ベクトルV1に垂直な直線LH1との交点をPX1とし、終点ベクトルV2を含む直線L2と起点ベクトルV1に垂直な直線LH1との交点をPX2とすると、交点PX、PX1、PX2三角形TR1を形成する。このとき、交点PX1に90度継手を配置し、交点PX2に任意角継手(45度未満)を配置することで、起点P1と終点P2とを接続できる。
ただし、以下の条件の場合には、図34の接続ができない。すなわち、交点P1と終点P2との間に、90度継手と任意角継手を配置できない。
(条件1)起点P1から交点PX1までの距離ΔDX1が、90度継手の中心から一方の開口までの最小寸法L90MINより小さい場合;
(条件2)終点P2から交点PX2までの距離ΔDX3が、任意角継手の中心から一方の開口までの最小寸法LAMINより小さい場合;
(条件3)交点PX1と交点PX2との距離ΔDX2が、90度継手と任意角継手のそれぞれの中心から一方の開口までの最小寸法の和であるL90MIN+LAMINより小さい場合;
この場合には、90度継手と任意角継手の位置関係を入れ替える。すなわち、直角三角形としては、交点PXと終点P2との間に終点ベクトルV2に直交する直線を設定し、同様の手順を実行する。そして、同様の手順のよって、交点P1と終点P2との間に、90度継手と任意角継手を配置できるか否かを判定する。配置できる場合には、その配置にて接続する。配置できない場合には、(5−2)の手順によって迂回路を構成する。
(5−2)交点PXの位置が、起点P1と終点P2との間に位置しない場合(図36参照)には、90度継手と任意角継手の組み合わせによって迂回路を形成する。図35の例では、起点P1、直管1、90度継手、直管2、90度継手、直管3、90度継手、直管4、任意角継手、終点P2の迂回路が形成される。
さらに、起点P1を有する配管PIPE1または終点P2を有する配管PIPE2のいずれか一方が迂回路と干渉する場合には、直管1にて一旦、図の紙面に垂直な方向(図がXY平面の場合、Z軸方向)にレベルを移動する90度継手と、直管1〜直管5のいずれかにてレベルを戻す90度継手を設ける。以上によって、図15(共有平面上での二次元処理)のベクトルの角度ごとの処理を終了する。
(D)2つのベクトルの一方が座標軸に平行な場合;
図37に、座標軸に平行なベクトルを含む処理(図14のM4)の詳細を例示する。また、図38に、座標軸に平行なベクトルを含む処理の概念を例示する。理解を容易にするため、図38の例では、起点P1が座標軸の原点(0,0,0)にあり、起点ベクトルV1が、X軸と平行であり、一方、終点ベクトルV2は、設定されたいずれの座標軸とも平行ではない場合を示している。この場合には、本設計支援装置は、まず、一方のベクトルである起点ベクトルV1がXY平面にあるものとして、終点P2からXY平面の点P3への経路を設定する。そして、その後、XY平面上の起点P1と点P3との間で、共有平面上での二次元処理を実行する。
この場合に、起点ベクトルV1を含む平面(図38では、XY平面)を目標平面TP1と呼ぶ。なお、起点P1および起点ベクトルV1がXY平面上になく、起点ベクトルV1がX軸に平行な場合、目標平面TP1は、起点ベクトルV1を含むXY平面に平行な平面として一般化できる。
また、終点P2の近傍に目標平面TP1に平行な目標平面TP2を設定する。目標平面TP2の位置は、終点P2から直管R0と90度継手CR1で、目標平面TP2上の直管R1に接続できる位置である。なお、直管R0は、終点P2に接続される直管であり、長さ0でも構わない。
以下、終点P2の近傍で、直管R0と90度継手CR1で接続可能な位置に目標平面TP2を設定する手順を説明する。まず、終点P2から終点ベクトルV2方向に所定長さ(例えば、長さ0とし、直管を省略してもよい)の直管R0の先端の位置P20に終点ベクトルV2に垂直な平面を想定する。また、位置P20を通る目標平面TP1に平行な目標平面TP2を想定する。そして、終点ベクトルV2に垂直な平面と目標平面TP2との交線の位置に直管R1を設定する。目標平面TP2は、図38でX2軸およびY2軸のなす平面である。直管R1は、XY平面に平行な目標平面TP2上にあり、かつ、終点ベクトルV2に直交する。したがって、終点P1から終点ベクトルV2方向に直管R0だけシフ
トした位置P20に90度継手CR1を設けることで、終点P2と直管R3を接続できる。
この場合に、目標平面TP1およびTP2は、第1には、XY平面に平行なものを候補して優先する。XY平面は、設備、配管が設けられる床と平行な平面であるため、図面の把握、および施工等において便宜であるからである。なお、入れ替え対象の機器によっては、XY平面の代わりに、壁、すなわち、ZX平面、YZ平面を基準とすると便宜となるものもある。例えば、エアーコンディショナー等を入れ替える場合である。
以上のように、この処理では、本設計支援装置は、まず、座標軸に平行なベクトル(例えば、起点ベクトルV1)から、目標平面TP1を設定する(M41)。
次に、本設計支援装置は、XYZ座標軸と平行でないベクトルの端点(終点P2)に90度継手CR1を配置し、目標平面TP1と平行な目標平面TP2(X2Y2平面)上の直管R1の経路を生成し、終点P2と直管R1とを接続する(M42)。この場合に、端点(終点P2)と90度継手CR1との間に、所定長さの直管R0を設けてもよい。また、90度継手CR1に替えて、90度継手CR1の経路をバイパスする経路(90度継手CR1の経路のなす直角に曲がる通路に対して、直角三角形の斜辺となる経路)を構成する45度継手を設けてもよい。この場合に、端点(終点P2)と45度継手との間に、所定長さの直管R0を設けてもよい。
さらに、直管R1の延長線上の経路に90度継手CR2を配置し、Z軸に平行な直管R2の経路を生成する(M43)。この場合に、90度継手CR1と90度継手CR2との間に直管R1を設けてもよいし、直管R1の長さを0として実質的に直管を省略してもよい。この直管R2は、XY平面とX2Y2平面とのレベル差解消のために配置される。この処理を実行するCPU1が、第1のレベル間接続手段33に相当する。
さらに、本設計支援装置は、直管R2とXY平面との交点P3に90度継手CR3を配置する(M44)。この90度継手CR3は、XY平面上で回転方向の設定自在である。以上の設定で、直管R2の両端には90度継手CR2およびCR3が設けられ、目標平面TP1(XY平面)上の経路と平行な目標平面TP2(X2Y2平面)上の経路とが接続されることになる。なお、直管R2の両端の90度継手CR2およびCR3のいずれか、または、その両方を45度継手としてもよい。すなわち、90度継手CR2またはCR3の経路をバイパスする経路(90度継手CR2あるいはCR3の経路のなす直角に曲がる通路に対して、直角三角形の斜辺となる経路)を構成する45度継手を用いてもよい。
この状態では、目標平面上で、90度継手CR3の開口方向のベクトルと、始点P1からの始点ベクトルが、目標平面を共有することになる。したがって、図14の処理M2と同様、共有平面上での二次元処理を実行する(M45)。
ただし、この90度継手CR3は、XY平面上で回転方向の設定自在である。そこで、例えば、この例では、始点ベクトルと直交する方向に90継手CR3が設けてもよい。その結果、90度継手の延長方向の直管R3と起点ベクトルV1との交点に90度継手CN4を設けることで、始点P1と終点P2との間の経路を完成するようにしてもよい。また、単純に90度継手CN4を設けただけでは経路が設定できない場合に、共有平面上での二次元処理(図14のM2の処理)を実行してもよい。
次に、本設計支援装置は、経路の設定が成功したか否かを判定する(M46)。そして、目標平面上での始点ベクトルと、90度継手の開口方向のベクトルとの間で経路の設定が成功しなかった場合、次に、本設計支援装置は、一方のベクトル(この例では、始点ベ
クトルV1)と平行な平面で、まだ、目標平面にしてない、未処理の平面(図38の場合のZX平面)が存在するか否かを判定する(M47)。そして、未処理の目標平面にしていない未処理平面(XY、YZ,またはZX平面)が存在する場合、その残りの平面を目標平面に設定する(M48)。そして、本設計支援装置は、制御をP42に戻し、処理を繰り返す。
一方、P47の判定で、未処理の目標平面がない場合、本設計支援装置は、ユーザ介入による作図処理を実行する(M49)。また、P46の判定で、経路の設定に成功した場合には、本設計支援装置は、そのまま処理を終了する。
なお、図38では、起点ベクトルV1がX軸に平行であり、起点P1が原点と一致する場合の例を示したが、起点P1が原点にない場合も同様に処理できる。例えば、起点P1の座標を(a,b,c)とすると、目標平面をZ=aに設定して、図38と同様の処理を実行すればよい。
また、図38では、起点ベクトルV1がX軸に平行な場合を例に説明し、その場合に、まず、目標表平面として、XY平面を想定した。これは、起点ベクトルV1がY軸に平行な場合も同様である。また、起点ベクトルがZ軸に平行な場合には、目標平面としては、例えば、デフォルトで、まず、YZ平面を目標平面として、その後にZX平面を目標平面にするようにしてもよい。
また、図38では、最初の目標平面で経路の設定が成功した場合には、そのまま処理を終了した。しかし、最初の目標平面(例えば、XY平面)の成功の有無に拘わらず、次の目標平面(例えば、XZ平面)を設定し、再度、P42−P45の処理を繰り返してもよい。そして、最初の目標平面での経路の設定結果と、2つの目の目標平面での経路の設定結果を比較し、例えば、使用する継手の個数、接続のための経路の長さ等を基準にして、簡略に経路が設定できる方を選択するようにしてもよい。
また、図38では、起点ベクトルV1がX軸に平行である場合を例に説明したが、終点ベクトルV2がいずれかの座標軸に平行な場合も同様に処理できる。
(E)2つのベクトルの一方がXY,YZ,ZXのいずれかの平面に平行な場合;
図39に、起点ベクトルまたは終点ベクトルがXY,YZ,ZX平面のいずれかに平行な場合の処理(図14のM6)の詳細を例示する。この処理を実行するCPU1が、単一目標平面経路設定手段31に相当する。この処理は、目標平面の選択の余地がない点を除いて、図37の処理と同様である。すなわち、起点ベクトルV1または終点ベクトルV2のいずれかが、XY,YZまたはZXに平行な面上にあるとすると、そのXY,YZまたはZXに平行な面がそのまま目標平面(ここでは、TP1)となる。
そして、本設計支援装置は、M62からM65の処理を実行する。この処理は、図37でのM42からM45の処理と同様であるので、その説明を省略する。
そして、本設計支援装置は、経路の設定が成功したか否かを判定する(M66)。そして、経路の設定に成功しなかった場合、本設計支援装置は、ユーザ介入による作図処理を実行する(M69)。また、M66の判定で、経路の設定に成功した場合には、本設計支援装置は、そのまま処理を終了する。
(F)起点ベクトルV1および終点ベクトルV2がいずれもXY、YZおよびZX平面のいずれにも平行でない場合;
図40に、起点ベクトルV1および終点ベクトルV2がいずれもXY、YZおよびZX
平面のいずれにも平行でない場合の処理を例示する。この処理を実行するCPU1が、複数目標平面経路設定手段32に相当する。また、図41に、この場合の処理の概念を示す。図41の例では、起点P1の近傍で、直管R01と90度継手CR4で接続可能な位置に目標平面TP3を設定する。その手順は、まず、起点P1から起点ベクトルV1方向に所定長さ(例えば、長さ0とし、直管を省略してもよい)の位置P10に起点ベクトルV1に垂直な平面を想定する。また、位置P10を通るXY平面に平行な目標平面TP3を想定する。そして、起点ベクトルV1に垂直な平面と目標平面TP3との交線の位置に直管R1を設定する。直管R1は、XY平面に平行な目標平面TP3上にあり、かつ、起点ベクトルV1に直交する。したがって、起点P1から起点ベクトルV1方向に直管R01だけシフトした位置P10に90度継手CR4を設けることで、起点P1と直管R1を接続できる。また、90度継手CR4に替えて、90度継手CR4の経路をバイパスする経路(90度継手CR4の経路のなす直角に曲がる通路に対して、直角三角形の斜辺となる経路)を構成する45度継手を設けてもよい。この場合に、端点(起点P1)と45度継手との間に、所定長さの直管を設けてもよい。
同様に、終点P2の近傍で、直管R02と90度継手CR1で接続可能な位置に目標平面TP4を設定する。その手順は、まず、終点P2から終点ベクトルV2方向に所定長さ(例えば、長さ0とし、直管を省略してもよい)の直管の先端の位置P20に終点ベクトルV2に垂直な平面を想定する。また、位置P20を通る目標平面TP3に平行な目標平面TP4を想定する。そして、終点ベクトルV2に垂直な平面と目標平面TP4との交線の位置に直管R3を設定する。直管R3は、XY平面に平行な目標平面TP4上にあり、かつ、終点ベクトルV2に直交する。したがって、終点P1から終点ベクトルV2方向に直管R02だけシフトした位置P20に90度継手CR1を設けることで、終点P2と直管R3を接続できる。また、90度継手CR1に替えて、90度継手CR1の経路をバイパスする経路(90度継手CR1の経路のなす直角に曲がる通路に対して、直角三角形の斜辺となる経路)を構成する45度継手を設けてもよい。この場合に、端点(終点P2)と45度継手との間に、所定長さの直管を設けてもよい。
以上のように、目標平面TP3、目標平面TP3上の直管R1、目標平面TP4、目標平面TP4上の直管R3を設定した後、目標平面TP3と目標平面TP4との間でレベル差を解消すればよい。このレベル差解消の処理は、図38の場合と同様である。
以上の処理では、例えば、XY、YZ、ZX平面の順に目標平面を設定し、それぞれのベクトル(起点ベクトルV1と終点ベクトルV2)の双方から、目標平面へのレベル差解消の経路を設定する。そして、目標平面上で、共有平面上での二次元処理を実行する。
以下、図40により、手順の詳細を説明する。まず、本設計支援装置は、目標平面TP3、TP4の法線方向を設定する(M70)。法線方向は、例えば、Z軸方向である。次に、本設計支援装置は、目標平面TP3を設定する(M71)。目標平面TP3は、起点P1から起点ベクトル方向への直管R01と、90度継手CR4(または45度継手)によって、目標平面TP3上の直管R1に接続できる位置に設定する。この手順は、図41にしたがって説明した通りである。
同様に、本設計支援装置は、目標平面TP4を設定する(M72)。目標平面TP4は、終点P2から終点ベクトルV2方向への直管R02と、90度継手CR1(または45度継手)によって、目標平面TP4上の直管R3に接続できる位置に設定する。次に、本設計支援装置は、目標平面TP4から目標平面TP3に至るレベル差解消処理を実行する(M73)。この処理は、図37のM43と同様である。この処理を実行するCPU1が、第2のレベル間接続手段34に相当する。
そして、本設計支援装置は、目標平面上で、共有平面上の二次元処理を実行する。この処理は、図14のM2と同様である。
次に、本設計支援装置は、経路の設定が成功したか否かを判定する(M76)。そして、目標平面上で経路の設定が成功しなかった場合、次に、本設計支援装置は、まだ、目標平面にしてない、未処理の平面(法線ベクトル)が存在するか否かを判定する(M77)。そして、未処理の目標平面にしていない未処理平面(法線ベクトル)が存在する場合、その残りの平面(YZ平面、ZX平面)を目標平面に設定する(M78)。そして、本設計支援装置は、制御をP71に戻し、処理を繰り返す。
一方、P77の判定で、未処理の目標平面がない場合、本設計支援装置は、ユーザ介入による作図処理を実行する(M79)。また、M76の判定で、経路の設定に成功した場合には、本設計支援装置は、そのまま処理を終了する。
以上述べたように、本設計支援装置によれば、配管に接続される機器を画面上で、移動あるいは回転したときに、機器から定義値内の配管が検索され、機器と一体に移動あるいは回転される。さらに、機器と一体に移動した配管と、移動しなかった配管との接続点同士が、つなぎ直し処理によって接続される。したがって、機器と関連性の強い配管の接続が維持されるとともに、接続が維持されなかった接続点においても、つなぎ直しが実行される。このため、設計中の設備、設計済みの設備等の設計データ中で、機器の配置位置を変更しても、機器と配管とのつなぎ直し作業の負担が軽減される。
なお、上記では、機器の接続口から定義値内の配管が検索の対象とされたが、移動・回転時に検索対象としない部分を指示できるようにしてもよい。例えば、ポインティングで、画面上で1以上の機器を選択しておき、その機器に接続される配管で接続口から、所定距離(設定パラメータで指定される距離)の範囲の配管については、検索の対象としないようにしてもよい。また、例えば、ポインティングデバイスの操作によって、矩形状のカーソルを画面に表示し、その矩形で囲まれた範囲を検索の対象としないようにしてもよい。
検索の対象から除外された範囲の配管、部材については、ルート情報(図4A)から、抹消した上で、上記で説明した機器の移動、回転処理を実行すればよい。このような処理によって、移動される機器、あるいは、回転される機器に追従する配管、および部材の範囲をユーザの指定にしたがって制限することができる。