(57)【要約】【課題】ＣＡＤソフトウェアの変更や手作業に頼ることなく、ベクトルデータで構成されるＣＡＤ建築図中に描かれている各種配管を自動的に認識し、管径毎の配管長を自動的に求める配管長測定システムを提供する。【解決手段】ベクトルデータを用いて線分を特定して描くＣＡＤ用のプログラムをコンピュータに備え、ＣＡＤにより各種配管が線分で描かれ、各種配管毎に異なる特徴図形が付与され、コンピュータに記憶されたＣＡＤデータの、配管が描かれている複数の記憶図面データ層のレイヤからＣＡＤデータの配管データを抽出する。各線分の近くにある管径情報を認識して、管径情報のない線分はその近傍の管径情報の管径を適用して認識する。各種配管の管径情報を基にしてその管径毎に、各配管の線分長さを演算して、管径毎の各配管長を算出する。【選択図】図１
2009238210.tif 000002
【特許請求の範囲】
【請求項１】
ベクトルデータを用いて線分を特定して描くＣＡＤ用のプログラムをコンピュータに備え、
ＣＡＤにより各種配管が線分で描かれ、前記各種配管毎に異なる特徴図形が付与され、
前記コンピュータに記憶されたＣＡＤデータの、前記配管が描かれている複数の記憶図面データ層のレイヤから前記ＣＡＤデータの配管データを抽出し、
このＣＡＤにより描かれた配管を含む設計図から前記配管の長さを求める配管長測定システムにおいて、
各線分の近くにある管径情報を認識して、管径情報のない線分はその近傍の管径情報の管径を適用して認識するとともに表示し、
前記各種配管の管径情報を基にしてその管径毎に、各配管の線分長さを演算して、前記管径毎の各配管長を算出することを特徴とする配管長測定システム。
【請求項２】
抽出された前記配管データから前記各種配管の特徴図形を抽出して、前記配管図形に配管識別情報を付与し、前記配管識別情報を認識して、前記配管の種類毎に配管長を算出することを特徴とする請求項１記載の配管長測定システム。
【請求項３】
前記配管データより前記各種配管の折れ曲がりを認識し、その屈曲点の前後で前記配管データの線分を分割し、分割した各々の線分に同じ管径情報を付与して、配管長を算出することを特徴とする請求項１又は２記載の配管長測定システム。
【請求項４】
前記配管データより前記各種配管の分岐を認識し、その分岐点で前記配管データの直線の線分を分割し、分割した各々の線分に管径情報を付与して、配管長を算出することを特徴とする請求項１又は２記載の配管長測定システム。
【請求項５】
前記配管データより前記各種配管の立ち上がりを認識し、その立ち上がり点で前記配管データの直線の線分を分割し、分割した各々の線分に管径情報を付与して、配管長を算出することを特徴とする請求項１又は２記載の配管長測定システム。
【請求項６】
配管が複数本平行に配置された前記配管データについて、前記配管データから各種配管の管径情報を認識するとともに引き出し線を介して表示し、前記各種配管の管径情報を基にしてその管径毎に、各配管の線分長さを演算して、前記管径毎の各配管長を算出することを特徴とする請求項１又は２記載の配管長測定システム。
【請求項７】
前記配管は排水管であり、この排水管の図面に現れる斜め短線折れ曲がりを認識し、前記排水管の屈曲点を、前記斜め短線を除いた屈曲形状に設定することを特徴とする請求項３記載の配管長測定システム。
【請求項８】
前記配管は排水管であり、この排水管の図面に現れる短線分岐を認識し、前記排水管の図面に現れる屈曲点を、前記斜め短線を除いた分岐形状に設定することを特徴とする請求項４記載の配管長測定システム。
【請求項９】
前記配管の各種判定に用いる座標を、縮尺に依存した配管データ上の座標を用いずに、画面上の見た目を表現した統一座標を用いることにより、縮尺の違うレイヤ間での認識を可能とすることを特徴とすることを特徴とする請求項１乃至８のいずれか記載の配管長測定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトルデータで構成されＣＡＤ建築図中に描かれた各種配管（温水、冷水、ガス管、排水管）の種類を認識し、種類毎の線長から配管長を求める配管長測定システムに関する。
【背景技術】
【０００２】
従来、コンピュータによる設計図の作成であるいわゆるＣＡＤ（Computer Aided Design、本願発明では単にＣＡＤという）において、ソフトウェア上のデータは大別して線分要素で表示するベクトルデータと、ビットマップで表示するラスターデータがあり、作図ソフトとしてのＣＡＤでは、ベクトルデータによるものが多い。ベクトルデータは、２次元ＣＡＤでは始点から終点を示す例えば（ｘ１，ｙ１）（ｘ２，ｙ２）、３次元ＣＡＤでは（ｘ１，ｙ１，ｚ１）（ｘ２，ｙ２，ｚ２）のような座標値で線分要素を表現する。従って、設計データの保存ファイルは、主にベクトルデータで保存され、これらのベクトルデータには線の種類に関する情報が付与されない場合が多い。特に、ＣＡＤ用のソフトウェアがフリーウェアであることから、建築業界で大きなシェアを持つＪＷ-ＣＡＤにおいても、線自身を区別するデータフォーマットがない。ゆえに、設計図に描かれる配管の線分には配管の情報がない。また、点線、実線、色等の線の種類を示すデータはあるが、これらと配管の種類の間に関係はない。
【０００３】
従来、ＣＡＤにおける線種を区別してその長さを出す方法として、データフォーマット中に線種の情報が含まれているＣＡＤソフトウェアを用いて図面を作成する方法がある。この場合、線種は既にオペレータによって描き分けられているため、線種区別、線長測定に特別の技術を必要としない。
【０００４】
また、データフォーマット中に線種の情報が含まれていない前提で線種毎の線長測定を行うものとして、ダイキン工業株式会社作成のFILDER PLUSというソフトウェアが挙げられる。このソフトウェアは線種情報が含まれていないデータをコンピュータ画面に描画してユーザーに提示し、手作業で配管の種類を指定させるものである。
【０００５】
その他、特許文献１には、設備工業用のＣＡＤの作図方法について開示され、その中に、ディスプレイ画面上にサーチラインを横断して引くことにより、それと交差する部材や基準線間の距離を表示するＣＡＤの作図方法が開示されている。また、特許文献２には、間取り図中に配管経路が記入された状態のＣＡＤ図を作成し、ＣＡＤデータを基にフレキシブル管長さを算出し、複数のフレキシブル管をその長短関係が分かるように外形図で表示するようにした作図方法が開示されている。特許文献３には、建築オブジェクトを図面上で定義し、数量を算出するようにした建築数量積算連動ＣＡＤシステムが提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−２５４９４１号公報
【特許文献２】特開２００１―２３５０６２号公報
【特許文献３】特開２００２―１１７０８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記従来の技術の、データフォーマット中に線種の情報が含まれているＣＡＤソフトウェアを導入するには、ＣＡＤソフト自体が複雑となり高価であることから、初期費用及びメンテナンス費用が比較的高くなるものであり、ソフトウェア自体も複雑で動作が遅いものであった。一方、現在、建築業界ではフリーウェアであるＪＷ-ＣＡＤが大きなシェアを持っており、それ以外のソフトの導入は、事業所間のデータの互換性が保てなくなる恐れがある。また、上記特許文献１〜３においても、専用のソフトウェアを用いて作業するものであり、簡単に配管の種類や長さ、管径等を求めることができるものではなく、上記と同様の問題がある。
【０００８】
また、上述のFILDER PLUSでデータフォーマットに線種情報を付け加えるには手作業が必要であり、結果、設計図の印刷物を見て、配管長を手作業で計測する場合と工数が変わらない。
【０００９】
本発明は、上記従来の技術の問題点に鑑みてなされたものであり、ＣＡＤソフトウェアの変更や手作業に頼ることなく、ベクトルデータで構成されるＣＡＤ建築図中に描かれている各種配管を自動的に認識し、管径毎の配管長を自動的に求める配管長測定システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、ベクトルデータを用いて線分を特定して描くＣＡＤ用のプログラムをコンピュータに備え、ＣＡＤにより各種配管が線分で描かれ、前記各種配管毎に異なる特徴図形が付与され、前記コンピュータに記憶されたＣＡＤデータの、前記配管が描かれている複数の記憶図面データ層のレイヤから前記ＣＡＤデータの配管データを抽出し、このＣＡＤにより描かれた配管を含む設計図から前記配管の長さを求める配管長測定システムであって、各線分の近くにある管径情報を認識して、管径情報のない線分はその近傍の管径情報の管径を適用して認識するとともに表示し、前記各種配管の管径情報を基にしてその管径毎に、各配管の線分長さを演算して、前記管径毎の各配管長を算出する配管長測定システムである。
【００１１】
さらに、抽出された前記配管データから前記各種配管の特徴図形を抽出して、前記配管図形に配管識別情報を付与し、前記配管識別情報を認識して、前記配管の種類毎に配管長を計算する配管長測定システムである。
【００１２】
前記配管データより前記各種配管の折れ曲がりを認識し、その屈曲点の前後で前記配管データの線分を分割し、分割した各々の線分に同じ管径情報を付与して、配管長を計算するものである。
【００１３】
また、前記配管データより前記各種配管の分岐を認識し、その分岐点で前記配管データの直線の線分を分割し、分割した各々の線分に管径情報を付与して、配管長を計算するものである。
【００１４】
前記配管データより前記各種配管の立ち上がりを認識し、その立ち上がり点で前記配管データの直線の線分を分割し、分割した各々の線分に管径情報を付与して、配管長を計算するものである。
【００１５】
また、配管が複数本平行に配置された前記配管データについて、前記配管データから各種配管の管径情報を認識するとともに引き出し線を介して表示し、前記各種配管の管径情報を基にしてその管径毎に、各配管の線分長さを演算して、前記管径毎の各配管長を算出する機能を備えた配管長測定システムである。
【００１６】
前記配管は排水管であり、この排水管の図面に現れる斜め短線折れ曲がりを認識し、前記排水管の屈曲点を、前記斜め短線を除いた屈曲形状に設定するものである。
【００１７】
または、前記配管は排水管であり、この排水管の図面に現れる短線分岐を認識し、前記排水管の図面に現れる屈曲点を、前記斜め短線を除いた分岐形状に設定するものである。
【００１８】
前記配管の各種判定に用いる座標を、縮尺に依存した配管データ上の座標を用いずに、画面上の見た目を表現した統一座標を用いることにより、縮尺の違うレイヤ間での認識を可能とするようにしても良い。
【発明の効果】
【００１９】
本発明の配管長測定システムは、従来のＣＡＤに比べ、手作業やソフトウェアの変更をユーザーに求めることなく、自動的にＣＡＤデータより管径毎の長さや配管種類毎の長さを求めて短時間で集計し、設計工数の短縮、コストダウンを図ることができる。さらに、折れ曲がりや分岐等を自動的に認識し、正確な配管長を短時間で算出することができるものである。
【図面の簡単な説明】
【００２０】
【図１】この発明の配管長測定システムによるモニタ上の表示例を示す概略図である。
【図２】この発明の配管長測定システムによるＪＷ-ＣＡＤ図面のモニタ表示を示す図である。
【図３】この発明の配管長測定システムによるＪＷ-ＣＡＤ図面を範囲指定した状態を示す図である。
【図４】この発明の配管長測定システムによる各種配管の表記法を示す図である。
【図５】この発明の配管長測定システムによる給湯管認識オブジェクトのデータ構成を示す説明図である。
【図６】この発明の配管長測定システムによる管認識オブジェクトで用いる領域を示す概略説明図である。
【図７】この発明の配管長測定システムによる配管認識オブジェクト周辺に存在する線データを示す概略説明図である。
【図８】この発明の配管長測定システムによる給湯管データの構成を示す概略説明図である。
【図９】この発明の配管長測定システムによる給水管データの構成を示す概略説明図である。
【図１０】この発明の配管長測定システムによりに必要なデータを読み込む方法を示すフローチャートである。
【図１１】この発明の配管長測定システムの配管の立ち上がりを示す記号である。
【図１２】この発明の配管長測定システムによる円弧の角度の決まり方を示す図である。
【図１３】この発明の配管長測定システムにより途切れて描かれた配管図を示す図である。
【図１４】この発明の配管長測定システムによる線データの結合の判定条件を示す図である。
【図１５】この発明の配管長測定システムによる線データ結合アルゴリズムのデータ構成を示す概略説明図である。
【図１６】この発明の配管長測定システムによるデータの特徴を示す図である。
【図１７】この発明の配管長測定システムによる線データの折れ曲がりの判定を示す図である。
【図１８】この発明の配管長測定システムによる線データの分岐の判定を示す図である。
【図１９】この発明の配管長測定システムによる線データの分割方法を示す図である。
【図２０】この発明の配管長測定システムによる線データに数字を付加した状態を示す図である。
【図２２】この発明の配管長測定システムによる管識別情報を順に付与していく場合の概要図である。
【図２１】この発明の配管長測定システムの引き出し線の例を示す図である。
【図２３】この発明の配管長測定システムによる配管サイズの表示例を示す図である。
【図２４】この発明の配管長測定システムの引き出し線による配管サイズの表示例を示す図である。
【図２５】この発明の配管長測定システムの引き出し線に縦線が含まれる場合の表示例を示す図である。
【図２６】この発明の配管長測定システムの引き出し線に縦線が含まれない場合の表示例を示す図である。
【図２７】この発明の配管長測定システムの引き出し線に縦線が含まれる場合の管サイズ付加方法を示す説明図である。
【図２８】この発明の配管長測定システムの引き出し線に縦線が含まれない場合の、数値群が点群よりも右にある場合の管サイズ付加方法を示す説明図である。
【図２９】この発明の配管長測定システムの引き出し線に縦線が含まれない場合の、数値群が点群よりも左にある場合の管サイズ付加方法を示す説明図である。
【図３０】この発明の配管長測定システムにより、引き出し線による管サイズ付加を行った結果を示す図である。
【図３１】この発明の配管長測定システムに用いられる排水管を含む建築図面の例を示す図である。
【図３２】この発明の配管長測定システムに用いられる排水管を含む建築図面の排水管の測定方法を説明する模式図である。
【図３３】この発明の配管長測定システムに用いられる排水管を含む建築図面の配管長を測定する排水管延長アルゴリズムを説明するための模式図である。
【図３４】この発明の配管長測定システムに用いられる排水管を含む建築図面の縮尺による問題点を示す模式図である。
【図３５】この発明の配管長測定システムに用いられる排水管を含む建築図面の縮尺による問題点を説明する模式図である。
【図３６】この発明の配管長測定システムによる線データの認識の実施例を示す元の画面（ａ）と、給水管のあるレイヤの線データを抽出した状態の画面（ｂ）を示す図である。
【図３７】この発明の配管長測定システムによる線データの立ち上がりの認識を示す図である。
【図３８】この発明の配管長測定システムによる線データの結合を行った状態を示す図である。
【図３９】この発明の配管長測定システムによる線データの折れ曲がり、立ち上がりの認識を示す図（ａ）と、線データの分割を行った状態を示す図（ｂ）である。
【図４０】この発明の配管長測定システムによる線データに付近の数字を付加した状態を示す図である。
【図４１】この発明の配管長測定システムによる線データの線の伝搬を行った状態を示す図である。
【図４２】この発明の配管長測定システムによる線データの線の伝搬を行った状態の図と元の図を比較した図である。
【発明を実施するための形態】
【００２１】
以下、この発明の実施形態について図面に基づいて説明する。図１〜図２１はこの発明の一実施形態を示すもので、この実施形態で用いるＣＡＤソフトウェアとして、建築業界で広く普及しているＪＷ-ＣＡＤを例にして説明する。図１に示すように、パソコン等のコンピュータ１０を用いて、ＣＡＤによりモニタ１２上に表示された配管の種類と長さを求めるものである。ＣＡＤによる描画は、入力装置であるキーボー１４と、マウス１６等から行う。まず、配管抽出方法について以下に説明する。
【００２２】
本発明ではまず、全ＣＡＤデータから配管のデータを抜き出す処理が必要となる。必要なデータをある程度抽出することで、後述するアルゴリズムによるデータの検索を少なくする。ここでは、建築図面より、給水管、給湯管、ガス管、排水管などの配管を、種類によって別々に抜き出し、管の種類、管サイズ（管の太さ、管径）毎にそれぞれの管の長さを検出する。さらに、配管をより確実に認識するためのデータ抽出処理を行う。この処理に、ＪＷ-ＣＡＤの外部変形機能を使う。外部変形機能を使えば、全体を選択することも、ユーザーが図面上で抜き出したい部分のデータだけを選択的に抜き出すこともできる。これによって屋内、屋外を別々に測定することや、個室だけのデータを抜き出し測定することもできる。
【００２３】
ＪＷ-ＣＡＤのデータは、図２に示すように、線、円弧、文字等で構成され、それぞれのデータには座標データが存在する。さらに、ＪＷ-ＣＡＤには、外部のbatファイルを呼び出して、ファイルを再編集する機能がある。この機能は、ＪＷ-ＣＡＤのデータをjwc_temp.txtというテキストファイルに出力し、そのファイルを編集した後でＪＷ-ＣＡＤに読み込ませるものである。この機能では、ＪＷ-ＣＡＤの範囲選択機能を使って、ユーザーの測定したい部分だけをjwc_temp.txtに書き出すことができる。
【００２４】
また、ＪＷ-ＣＡＤにはレイヤ機能があるが、編集可能に設定してあるレイヤは一度に選択でき、編集可能でないレイヤは選択されない。この実施形態では、給水管と管サイズが描いてあるレイヤを編集可能にし、範囲選択することによって配管のデータを抜き出して測定する。管サイズ、給水管を大まかに範囲選択した状態を図３に示す。四角で囲んであるところが選択範囲、その中の比較的濃く見える線や文字が選択されたデータ、薄く見える線群は編集可能でないレイヤのデータである。
【００２５】
次に、配管認識オブジェクトによる判定について説明する。まず、ＪＷ-ＣＡＤのデータは水平な軸がｘ軸で、右が正方向、垂直な軸がｙ軸で、上が正方向である。ＪＷ-ＣＡＤで描かれた配列要素内のデータは、直線データ、円弧データともに全データが描画された順に並んでいる。そのため始点と終点がバラバラであり、線の方向の統一がなされていない。この状態では、後述するアルゴリズムの検索数も増える。そのため、始点終点を入れ替える必要がある。線データがｘ軸に対して垂直だった場合は、両座標のｙ座標で判定する。ｙ座標の小さい座標のデータを始点座標とする。同様に水平の場合、ｘ座標の小さい座標を始点座標とする。
【００２６】
特徴図形としての配管識別情報である配管認識オブジェクトを図４に示す。給水管は水を通すための管で、末端にカランがある。給水管の記号は図４に示すような２種類の線で構成される。カランは白丸と４つの線で構成される。給湯管はお湯を通すための管で、末端にカランがある。給湯管の記号は図４に示すような２種類の線で構成される。カランは黒丸と４つの線で構成される。ガス管はガスを通すための管である。ガス管の記号は図４に示すような１種類の線とＧで構成される。排水管は使用済みの排水を通すための管である。排水管の記号は図４に示すような１種類の線で構成される。末端は二重丸で構成される。
【００２７】
給湯管、給水管の認識は、管の片方もしくは両端の識別用オブジェクトである図４に示すカランの記号が存在することにより行われる場合と、図４の線中央部のような途切れた３つの線データが連続して存在した場合とにより判定できる。管の端に存在する管識別情報のオブジェクトは、直線と円の集合体として描画されている。この処理がない場合、後述する線データ結合で、オブジェクトに記述されている線データが一般の線データとして結合される恐れがあるため、管識別情報をあらかじめつけておく必要がある。
【００２８】
それぞれのオブジェクトは、データ上で表１のようなデータ群により構成されている。例えば、給湯管オブジェクトは、図５に示すように、モニタ１２上で肉眼では、黒丸であるが、データ上は拡大図のように、円の外側４本と内側に２１本の直線を含む。また、ＪＷ-ＣＡＤではこれらのオブジェクトは部品として既に存在する。
【表１】
2009238210.tif 000003
【００２９】
給湯管、給水管の認識に際して、まず、円弧データの中では円弧か円かで種類が分かれている。円のみを取得することで、円弧データの検索を省ける。ある円を選択したとき、周辺の線データを検索する。すべての線データを見終わった後に、選択した円を中心に図６の領域α１内に存在した線データのデータ数を調べる。このとき、給水管オブジェクトならば線データの本数が４本、給湯管オブジェクトならば線データの本数が２５本、選択した円に対して存在した場合、それぞれの円データ、線データに対して管識別情報を付与する。ただし、設計者の個人差により、直線データ数が増減する可能性がある。また、領域α１内によけいな直線データが紛れ込む可能性もあるので、今回は給水管オブジェクトでは線データの本数の範囲を４〜５、給湯管オブジェクトでは２３〜２６とした。
【００３０】
ここで、４本と２５本の線データに対して管識別情報を付与するが、配管とは別の情報を付与する必要がある。配管と同じ属性にしてしまった場合、最後の線長を求める作業でそれら２９本の線データをも配管として求めてしまう可能性があるためと、オブジェクトに属する線データは配管でないため、他の線データと結合する必要はないためである。また、図７に示すように、配管認識オブジェクトの円を中心とした領域α２内に線データの始点、もしくは終点どちらか一方が存在した場合、その線データは配管認識オブジェクトが付与された配管であると認識する。
【００３１】
また、図４に示すように、給湯管、給水管は、配管を描いた線の、３本の線データでも識別が可能である。設計図では給湯管オブジェクトが記載されていない場合もある。そのため、給湯管、給水管オブジェクト以外でも認識できるようにするよう、この３本の線データの特徴を基にした場合も、配管認識を可能とする。
【００３２】
次に、給湯管認識について述べる。図８は給湯管認識の際のデータ構成を示す。図８において、線(ｉ)番目データを見たとき、その終点を中心とした領域α3に線(ｊ)番目データが存在するかを見る。θ4は線(ｉ)の終点と線(ｊ)の始点で算出された角度とする。線(ｉ)、(ｊ)に関しても角度を求め、それぞれをθ３、θ５とする。それぞれの角度が近似であるか、すなわち線(ｉ)に対して、線(ｊ)が延長線上に存在しているかどうかの判定を行う。線分ｌ２は線(ｉ)の終点と線(ｊ)の始点の長さである。線分ｌ２の長さはある定数Ｅ未満であるかの判定をさらに行う。次に線分ｌ２を延長した直線ｍを求め、これに交差している直線を全て抽出する。線(ｋ)が直線ｍに対して交点を持つとき、式(１)を満たす。
【数１】
2009238210.tif 000004
【００３３】
直線ｍの式は、βｘ＋ｘｙ＋１＝０、線(ｋ)の始点座標を(ｘ5、ｙ5)、終点座標が(ｘ6、ｙ6)とする。その後、さらに線(ｋ)と直線ｍとの交点を調べ、交点が領域α４に存在するかを調べる。存在すれば、線(ｋ)の線長を求める。この線長がある定数Ｆ未満で描かれていれば、それは給湯管識別データであると判断できる。
【００３４】
このとき、三本の直線データに対し、管識別情報を付与する。ただし、線(ｋ)番目データは他２つの線データと異なり、配管の長さ測定に直接必要とされない。そのため別の管識別情報を与える必要がある。
【００３５】
給水管の認識についても、給湯管認識と同様に、図４に示した通り、給水管も３つの線データにより識別できる。この３つの線データの特徴を生かした給水管認識を行う。図９に示すように、線(ｉ)が処理対象になったとき、線(ｉ)の終点を中心とした領域α5内に線(ｊ)の始点が存在するかを判定する。さらに、給湯管認識と同様にθ6〜θ8までのそれぞれの角度が近似しているかを判定する。線(ｉ)と線(ｊ)の間隔(長さｌ３)は固定値未満で描画されるので、今回はその値を定数Ｇとして判定する。さらに線(ｊ)の長さｌ4も固定値未満で描画される。今回は定数Ｈとして判定する。
【００３６】
次に線(ｊ)の終点を中心とした領域α6内で線(ｋ)を検索する。上記と同じ処理を繰り返し行う。θ8〜θ10が、近似かどうかを判定し、線(ｊ)と線(ｋ)の間隔ｌ５が固定値未満かどうかを判定する。ｌ３とｌ５は同じ間隔であるため、ここでの固定値も定数Ｇとする。以上を満たす３つの線データが連続で存在した場合、三本の直線データに給水管の管識別情報を付与する。
【００３７】
ここで、この実施形態のシステムの大まかな説明及び記号、用語の説明を表２に示す。
【表２】
2009238210.tif 000005
【００３８】
この実施形態の配管長測定システムの処理の概要は以下の通りである。測定に際して、まず、上述の外部変形機能で特定の配管、管サイズのみ抜き出して測定を行う。データの抽出については、jwc_temp.txtファイルより線データ、円弧データ、文字データを別々に抽出する。円弧データは形によって立ち上がりとして抽出、文字データは管サイズとして使われる数字のみ抽出する。
【００３９】
次に、配管データの整理を行う。ここでは、データのソート、線データ結合アルゴリズムを適用する。データのソートは処理を速くするため、線データの結合は何本かの線で示された配管の記号を一本の線にするものである。
【００４０】
次に、必要点認識を行う。さらに、配管について“折れ曲がり（エルボ）”、“分岐（チーズ）”の認識をする。折れ曲がりとは一本の配管が直角に折れ曲がっている部分のことである。一本の管を２本の線データで表示することになる。分岐とは一本の線より分岐したもう一本の線が出ている部分である。今回測定する給水管はこの点で管サイズが変更されていることが多い。
【００４１】
次に、線を分岐点で分割する。これにより、管サイズは一本の線データにつき、一つの管サイズ情報として付加することになる。管サイズは分岐点で変わっていることが多いので、一本の線データで描かれた配管を分岐点で分割し、それぞれの線について管サイズ判定をする。
【００４２】
そして、管サイズを付加する。線データの付近にある文字データを、管サイズとして線データに管サイズ情報として付加する。管サイズが近くにない線データは、管内の流れを考慮し、周囲の管サイズより推測し付加する。
【００４３】
以下に、各処理について詳述する。まず、選択範囲の線、円弧、文字データを抽出する。建築図設計におけるＣＡＤでは、多くの場合、配管と建物の壁、管サイズなどは別々のレイヤに描いてあるので、大まかに配管、管サイズのみを選択するのは容易である。配管、管サイズのみを大まかに選択し、そのデータが書き込まれたjwc_temp.txtから線データ、円弧データ、文字データ等それぞれのデータを抽出して整理し、プログラム上で扱いやすくする。それぞれのデータの詳細を以下に示す。
【００４４】
線データは、文字データ、円弧データとは別途に扱う。始点・終点を指定された真っ直ぐな線分である。配管、建物の壁等に使用される。線データはjwc_temp.txtではスペースから始まる、４つの数字である。線データの認識は、スペースで始まる１行を読み込んで、スペースで区切られた文字列ごとに配列にいれ、文字データから数字データに変換する。
【００４５】
円弧データは、読み込み後、円弧データで構成される“立ち上がり”の認識をする。立ち上がりとは立体構造になっているところのことで、立ち上がっている高さ分、配管の必要量は増える。円弧データはjwc_temp.txtではciから始まる、７つの数字である。円データも同じようにciではじまるが要素が中心座標Ｘ，Ｙ半径のみである。ciで始まる行の要素の数によって円データが、円弧データを判断して保存する。
【００４６】
文字データは、読み込むときは、管サイズに使用される特定の数字（例えば20、25、30、32、40、50、65、75、80、100、125、150）のみ読み込む。配管を示す線データの付近にあり、配管の径（管サイズ）を示す。それぞれのデータを読み込む方法を示す。文字データはjwc_temp.txtではchから始まる、４つの数字と、ひとつの文字列である。線データと同じようにchで始まる１行からそれぞれの文字列を配列にいれ、最後の文字列が管サイズに使用される特定の数字の場合のみ、今回のシステムに使用する管サイズとして保存する。
【００４７】
以上の、必要なデータを読み込むためのシステムの流れを図１０に示す。まず、図１０のフローチャートに示すように、ファイルの１行目の先頭が、スペースか、ｃｈかｃｉかを判断し、スペースであれば線データとして保存する。また、先頭がｃｈの場合、６つ目の要素が管サイズの数字の場合は文字データとして保存し、管サイズの数字でない場合は、次の流れに移行する。さらに、先頭がｃｉの場合、要素数が4の場合は円データであり、要素数が7の場合は円弧データとして保存する。
【００４８】
次に立ち上がりの認識について説明する。読み込んだ円弧データをつかって立ち上がりの認識をする。図１１に立ち上がりの図記号を示す。円弧データには中心座標Ｘ、Ｙ、半径、始角、終角、扁平率、長軸の角のデータがある。このうち、始角、終角、半径を使って立ち上がりの認識を行う。
【００４９】
分岐にある立ち上がりは中心座標が大体等しい、９０°位の円弧２つから構成される。角にある立ち上がりは２７０°位のひとつの円弧で構成される。始角、終角は、０°の方向から左回りで決まる。これらのデータからの記号判定方法を説明する。図１２に角度を判定する方法を示す。
【００５０】
まず、始角＞終角のとき
円弧のつながっていない部分の角度＝始角−終角
終角＞始角のとき
円弧のつながっていない部分の角度＝始角+３６０°−終角
となるので、
円弧のつながっていない部分の角度が９０°
→円弧は２７０°
⇒その円弧の座標が、角にある立ち上がりの座標
円弧のつながっていない部分の角度＝２７０°
→円弧は９０°
→その円弧の座標に、半径が等しい・円弧が９０°の別の円弧がある
⇒その円弧の座標が、分岐にある立ち上がりの座標
と、判定できる。
【００５１】
次に、線結合を行う。これは給水管の記号を表現するためや、立体交差を表現するために、途切れて描画されている線を結合することによって、管サイズを線データに付加するための準備をする。途切れて描かれた配管図を図１３に示す。
【００５２】
このアルゴリズムを適用するとき、始点、終点はソートされており、線の向きは一定である。この線データ結合アルゴリズムの方法を以下に示す。
【００５３】
元の線データを線１、結合される線を線２とする。まずは２本の線が以下の条件に当てはまるかを判定する。線結合の判定条件を示した図を図１４に示す。
１．線の端点付近に他の点の端点があるか
２．線１の角度、線２の角度、線１と線２を結んだ線の角度が近似している
３．線１と線２の端点の距離が一定値以下である
１，２，３の条件に全て当てはまるとき、線１と線２は結合すべき線である。
線の結合は以下の方法で行う。
線１の終点の近くに線２の始点があったとき
１．線１の終点座標に、線２の終点座標を代入する。
２．線データの総数が一つ減るので、線２以降の線データは繰り上げられる。
【００５４】
この方法によって、途切れて描画された線を、データ上で一本の線として扱うことができるようになる。
【００５５】
ここで線(ｉ)番目データの終点座標を線(ｊ)番目データの終点座標と置き換える。置き換えることで、一本の新しい線データを生成している。さらに線(ｊ)が管識別情報を持っていた場合、線(ｉ)番目のデータにも同じ管識別情報を持たせる。ここで、線(ｊ)番目データは線(ｉ)番目データと合成された形となるので、不要となる。このため、データを一つ繰り上げる。新しく線(ｉ)番目データを書き換えた場合、書き換えられた新しい終点に対して、さらにその先の延長線上につなぐべき線データがあるかどうかを検索するために、もう一度線(ｉ)番目に対して検索を行う。以上により、線データの結合が可能となる。
【００５６】
次に、折れ曲がり、分岐の認識について説明する。図１６にＪＷ-ＣＡＤのデータの特徴を示す。線データに管サイズ情報を付加するためには、管サイズごとに別々の線データが必要である。しかしＪＷ-ＣＡＤのユーザーが図面を描く時には一本の真っ直ぐな線で描ける部分は、一本の線で描くのが普通である(図１６(線a))。また、折れ曲がった線を描くときは二本の線を描く必要があり、同じ管サイズでも線が分かれてしまう(図１６(線b))。さらに、太さが変化していないように人間が図面で認識できるところには、線の付近に数字が書いていないところも多い(図１６(線c))。そのため、線データに管サイズを付加するために折れ曲がり、分岐の認識を行う必要がある。
【００５７】
折れ曲がりの認識をすれば、折れ曲がっているために二本の線で描かれている線の、片方の付近にしか管サイズか描画されていない場合も、もう片方の線に管サイズ情報を付加することが可能になる。また、分岐を認識すれば、一本の線で描かれていても、管サイズが変わる可能性のある点を認識できるので、分岐点で線を分割できれば正しく線に管サイズ情報を付加できるようになる。
【００５８】
折れ曲がりの認識は、線の始点、終点、すなわち端点を使って行う。折れ曲がりでは、二本の点の端点が一致しているはずである。線データには、始点、終点のデータがあるので、以下のように判定する。
【００５９】
図面上で人間がみると、端点が一致しているように見えても、大抵は縮小して表示しているので、データ上では端点は完全に一致していないこともある。線データＡと、線データＢがあるとき、線データＡの始点・線データＢの始点、線データＡの始点・線データＢの終点、線データＡの終点・線データＢの始点、線データＡの終点・線データＢの終点の4つの組み合わせについて端点同士の距離が一定値以下のものを折れ曲がりと認識する。
【００６０】
即ち、
一定値  >  (線データＡの始点  −  線データＢの始点) の絶対値
一定値  >  (線データＡの始点  −  線データＢの終点) の絶対値
一定値  >  (線データＡの終点  −  線データＢの始点) の絶対値
一定値  >  (線データＡの終点  −  線データＢの終点) の絶対値
これらの式のいずれかの条件を満たすとき、その一致する端点の座標を、折れ曲がりの座標とする。折れ曲がりの判定するための条件を示した図を図１７に示す。
【００６１】
分岐は、縦線と横線の交わり方で判定する。縦線とは、画面上で９０°で描かれた直線のことで、横線とは画面上で０°で描かれた直線のことである。たいていの場合、給水管には斜め線はあまり使わず、分岐点では縦線と横線が接している。この２種類の線を使って分岐の認識を行う。まず、縦線、横線の認識を行う。これは、線データの始点、終点の座標を使用する。
つまり
始点のＸ座標＝終点のＸ座標  ⇒縦線
始点のＹ座標＝終点のＹ座標  ⇒横線
という条件で、縦線、横線という線データを作成する。
【００６２】
次に、条件による分岐の判定を行う。基本的に、縦線上に横線の端点があるか、横線上に縦線の端点があるかで判定する。線データには始点、終点の情報がある。線を描いた方向で始点終点が決まるので、始点終点は一定の方向には決まっていない。従って、分岐の判定は、線データの始点終点の方向が決まってない場合にも対応させた。判定条件は以下のようになる。分岐の判定するための条件を示した図を図１８に示す。
【００６３】
１．縦線上に横線の端点がある場合
a：縦線の始点のＹ座標＜横線のＹ座標＜縦線の終点のＹ座標
かつ  縦線のＸ座標＝横線の始点のＸ座標
b：縦線の始点のＹ座標＜横線のＹ座標＜縦線の終点のＹ座標
かつ  縦線のＸ座標＝横線の終点のＸ座標
c：縦線の終点のＹ座標＜横線のＹ座標＜縦線の始点のＹ座標
かつ  縦線のＸ座標＝横線の始点のＸ座標
d：縦線の終点のＹ座標＜横線のＹ座標＜縦線の始点のＹ座標
かつ  縦線のＸ座標＝横線の終点のＸ座標
２．横線上に縦線の端点がある場合
e：横線の始点のＸ座標＜縦線のＸ座標＜横線の終点のＸ座標
かつ  横線のＹ座標＝縦線の始点のＹ座標
f：横線の始点のＸ座標＜縦線のＸ座標＜横線の終点のＸ座標
かつ  横線のＹ座標＝縦線の終点のＹ座標
g：横線の終点のＸ座標＜縦線のＸ座標＜横線の始点のＸ座標
かつ  横線のＹ座標＝縦線の始点のＹ座標
h：横線の終点のＸ座標＜縦線のＸ座標＜横線の始点のＸ座標
かつ  横線のＹ座標＝縦線の終点のＹ座標
【００６４】
認識した分岐点を使って線の分割を行う。線を分岐点で分割すれば、それぞれの線の付近にある文字データである管サイズを、線に情報として付加できるようになる。線を分岐点で分割するには、線の総本数を増やし、線データの始点と終点を入れ替えるという方法で行う。これは分岐点の認識と同時に行う。つまり分岐点を認識できたら、その度に線の分割を行う。以下で、線の分割方法を説明する。
【００６５】
まず、上述の方法で分岐点を検出する。次に、線データの総数を１つ増やす。そして、図１９に示すように、新しく増やした線データの始点の座標に、分岐点の座標を代入する。さらに、新しく増やした線データの終点の座標に、分割される線の終点の座標を代入する。そして、分割される線の終点の座標に分岐点の座標を代入する。つまり、分岐点で線を終わらせ、分岐点以降を新しい線としてデータをつくる。
【００６６】
次に、管サイズを線データに付加する。それぞれの管サイズによって、線の長さの合計を別々に計算することができるようになる。管サイズは全ての線データの付近に描かれているわけではない。折れ曲がっているように描かれている給水管は何本かの真っ直ぐな線データの組み合わせである（図１６(線b)、(線c)参照）。また、一本の真っ直ぐな線が、何度か分岐して管サイズが変化していっている場合には、その線の付近には何種類かの管サイズがある（図１６(線a)参照）。そのような線データは、分岐点での分割で分割されたが、そのために分岐点と分岐点との間で管サイズが付近に無い線もでてくる。また、管サイズの変化していない線は付近に管サイズがかかれないことが多い。そのため、付近の管サイズを線データに付加した後、管サイズが付加されなかった線に周りの線から判断して、独自に管サイズを付加できるようなアルゴリズムが必要となる。
【００６７】
管サイズを付加するアルゴリズムは、まず、線データに、付近の管サイズを付加する。管サイズは文字データで表される。文字データには、左下端に始点、右下端に終点のデータを用意できる。文字データは管サイズに使用される数字しか読み込んでいないので、読み込まれる文字の種類については気に留める必要が無い。また、管サイズと線データの座標の関係を調べたところ付加されるべき管サイズは、付加される線データに最も近いものであった。
【００６８】
文字データの座標を利用して、一定の範囲に文字データがあるかを判定し、その中で最も線データに近いものを管サイズとして線データに付加する。その方法を以下に示す。
【００６９】
まず、縦線に管サイズを付加する場合を説明する。
１．縦線に数字が近いかどうか
・文字の始点X ＜ 縦線の始点X ＜ 文字の終点X  または
・文字の終点X ＜ 縦線の始点X ＜ 文字の始点X
２．縦線のY座標の範囲に数字があるかどうか
・縦線始点Y ＜ 文字の始点Y かつ 文字の終点Y ＜ 縦線の終点Y または
・縦線終点Y ＜ 文字の始点Y かつ 文字の終点Y ＜ 縦線の始点Y
この１，２の条件を満たす文字データの座標と、線データの座標を使い距離を調べ、最も近いものの内容が線データの管サイズ情報となる。
【００７０】
横線に管サイズを付加する場合は以下の通りである。
１a．横線に数字近いかどうか
・一定値 ＞ （横線の始点Y − 文字の始点Y）の絶対値
１aを満たさないとき
１b．文字の縦幅を判定
・一定値 ＞ （横線の始点Y−（文字の始点Y＋文字の高さ））の絶対値
２．横線のY座標の範囲に数字があるかどうか
・横線始点X ＜ 文字の始点X かつ 文字の終点X ＜ 縦線の終点X   または
・縦線終点X ＜ 文字の始点X かつ 文字の終点X ＜ 縦線の始点X
この１（１aまたは１b），２の条件を満たす文字データの座標と、線データの座標を使い距離を調べ、最も近いものの内容が線データの管サイズ情報となる。
【００７１】
これらの条件を示す図を図２０に示す。数字の右下端、左下端にある点はそれぞれ始点、終点の座標を示す。右上端、左上端にある点は、始点、終点座標のY座標に文字の大きさを足したものである。
【００７２】
次に、付近に文字が無かった線に数字を付加する場合の、分岐点での管サイズ付加について説明する。管サイズは末端に行くにしたがって、徐々に細くなっていく。これは分岐するにしたがって一本の管に流れる水の必要量が減っていくからである。分岐点と分岐点の間にある線には管サイズが描いてないことがあるが、そのような部分では、安全上の理由より、なるべく大きな管サイズで計算するのが普通である。分岐の間にある線には、線の始点、終点で、端点の一致している線に付加されている管サイズ中から、もっとも大きな数字を付加すればよい。その方法を以下に示す。
【００７３】
今回のアルゴリズムで一時的な管サイズ付加フラグとして、管サイズに1000を足し、これを区別する。
１．分岐点に端点の一致する線を全て検出
２．その線のうち、管サイズが付加されていない線・管サイズが1000以上の
線を探す
３．1000未満の管サイズが付加されている線の管サイズの中から、最も大きい数字をとりだし、+1000する。
４．２で探した1000以上の数字と、３で取り出した数字を比較する。
５．４で出した数字のうち、大きいほうの数字を管サイズが付加されていない線に付加する。
【００７４】
次に、分岐にある立ち上がりでの管サイズ付加について説明する。分岐にある立ち上がりでは線の分割はされていない。よって、上述の通り分岐を検出したものと同じ考え方で、分岐にある立ち上がりの座標にある二本の線を使って管サイズの伝播が行える。その方法を以下に示す
１．分岐にある立ち上がり座標上の線を検出（線１）
２．分岐にある立ち上がり座標と端点が一致する線を検出（線２）
３．線１に管サイズが付加されているか調べる
４．線１に管サイズが付加されていないとき
線２の管サイズを線１に付加
【００７５】
次に、折れ曲がりでの管サイズ付加について説明する。折れ曲がり座標を使えば、二本以上の端点の一致する線が検出される。そのうち２本の線で構成される折れ曲がりが、一本の管を曲げて描画されたことを示すものである。つまり、二本の線で構成された折れ曲がりを検出し、管サイズの付加されていない線に、管サイズが付加されている方の線の、管サイズを付加すればよい。その方法を以下に示す
１．折れ曲がり座標に端点の一致する線を検出
２．二本の線（線１、線２）のうち
線１に管サイズが付加されていない
→線２の管サイズを線１に付加
線２に管サイズが付加されていない
→線１の管サイズを線２に付加
【００７６】
次に、角にある立ち上がりでの管サイズ付加について説明する。角にある立ち上がりでの管サイズ付加は、折れ曲がりでの管サイズ付加と同様な方法で行える。方法は折れ曲がりでの伝播方法と同じである。
１．角にある立ち上がり座標に端点の一致する線を検出
２．二本の線（線１、線２）のうち
線１に管サイズが付加されていない
→線２の管サイズを線１に付加
線２に管サイズが付加されていない
→線１の管サイズを線２に付加
【００７７】
次に、各配管の管サイズ付加及び引き出し線の処理について説明する。引き出し線とは，管サイズを示す為にかかれた文字データの下線を表す。図２２に引き出し線の例を示す。引き出し線は、どの配管のサイズを指すか明確にするために、必ず配管上に黒点を置き、その点を通るように描かれる。
【００７８】
まず、配管の近くに数値がある場合、通常は管サイズとしてこれを付加するが、数値に引き出し線がある場合は、付近に数値があっても管サイズを付加しない。そして、ある線データが以下の二つの条件を満たした場合、その線は引き出し線と判断する。
【００７９】
１．線データの端点に点があり、線データ端点と点の座標が一致する(図２３に示す場合)。
２．線データ上に点データが２つ以上存在する（図２４に示す場合）。
【００８０】
次に、上記二つの条件を満たした場合、引き出し線を認識して引き出し線が存在した場合の管サイズの付加を行う。特に、引き出し線上に複数の管サイズが記述された場合、配管上の点データと数値の対応付けを行う必要がある。この場合、管サイズの付加は、引き出し線の状態によって、１．引き出し線に縦線が含まれる場合(図２５)と、２．引き出し線に縦線が含まれない場合（図２６）の二通りの方法をとる。
１．引き出し線に縦線が含まれる場合(図２５)
この場合、引き出し線上にある点データと、管サイズ値は、縦軸の座標値によってそれぞれソートされる。図２７に示すように、黒丸、管サイズ値に、各々座標値の下から順番がつけられ、同じ番号が対応づけられて、各配管に付加される管サイズ値が決定する。
２．引き出し線に縦線が含まれない場合（図２６）
まず、黒丸群は横軸座標によってソートされ、番号が振られる。図２８に示す例では、左から順番に番号が付られている。そして、点群と数値の位置関係によって、以下のように、二通りの場合分けがなされる。
２−１．数値群が点群よりも右にある場合（図２８）
点群の番号が若い順から、数値群が位置する各座標を調べ、最も近いものから順番に対応づける。
２−２．数値群が点群よりも左にある場合（図２９）
点群の番号が若い順から、数値群が位置する各座標を調べ、最も遠いものから順番に対応づける。
【００８１】
以上の引き出し線がある場合の処理を適用した結果を図３０に示す。ここでは、配管は、９パターンとも全て25,20,100,65,40の順番に並んでいる。認識配管には管サイズに対応した太さと色のマーカーが付加されている。そして、様々な引き出し線パターンに対応して、管サイズが９パターンとも全て同じ配置でマーキングされている。
【００８２】
次に、排水管の配管長を正確に求めるための処理について説明する。排水管の線長測定を正確に行うには、給水，給湯，ガスとは異なる新たなアルゴリズムが必要である。そこで、排水管を含む建築図面の例を図３１に示す。図３１に示すような排水管２６の長さを測定する方法について図３２を基にして説明する。
【００８３】
例えば、図３１のＨ部分のように、排水管２６では、チーズやエルボの線と線の間に，それぞれの線から約４５°に傾いた短い線（以下、“４５°チーズ短線”、“４５°エルボ短線”と述べる）が描かれていることが多い。しかし、実務者による配管長測定の時は、図３２のように４５°短線は無視し、線m1〜m5の集合とみなして測定を行う。４５°短線の長さをそのまま測定した時と、図３２のように、測定したときの誤差は全体からすれば微々たるものではある。しかし、最終的に線長測定の結果を出力する時には、線長合計を示した“集計表”だけでなく、測定した線の各々の長さを示した“拾い書”と呼ばれる書類も作成する必要がある．そのため，４５°短線の細かなデータが拾い書全て記載されると、拾い書はとても煩雑なものとなるため、これを避ける意味がある。
【００８４】
そこで、図面の記載から、排水管長を正確に検出するためるためのアルゴリズムについて、以下に説明する。図３３（ａ）（ｂ）において、線Ｄ、線Ｄ’は４５°短線であり、線Ｅ’1，線E’2，線T’1，線T’2はそれぞれ線Ｄ、線Ｄ’の両端に一致する線である。線Ｄ、線Ｄ’の両端は、必ず４５°エルボ（線E’1と線D，線E’2と線D，線T’1と線D’）、もしくは４５°チーズ（線T’2と線D’）に一致している。これらの前提を利用して、この実施形態のアルゴリズムは、上述のエルボ判定、チーズ判定と同時に進行する。線データには４５°エルボの判定用に、線データに４５ｅフラグ、４５ｔフラグを設けて付与する。４５ｅフラグは、各線の端点に一致する４５°エルボの個数を表し、４５ｔエルボは、各線が４５°エルボを構成しているかを示すフラグである。
【００８５】
４５°エルボ短線の判定は以下の通り、全ての線データについて下記の処理を行う。先ず、エルボ判定を行い、ある線と端点を接する線が存在したとき、その２線の角度を調べ、それらが４５°の角を成すとき（例として図３３（ａ）線E’1と線D， 線E’2と線D，線T’1と線D’を挙げる）、それらの線の４５ｅフラグに１を加える。つまり線E’1， 線E’2，線D，線T’1，線D’の４５ｅフラグにそれぞれ１が加算される。全ての線データに対してこの処理を行った後
(1)４５ｅフラグの値が2である
(2)線長がκ以下である。（任意距離：図面により可変）
の条件を満たす線を４５°エルボ短線と認識する。
図３３（ａ）の線Dが４５°エルボ短線と認識された場合、線Dと、線Dの端点に一致する線（線E’1， 線E’2）について以下の操作を行う。
端点に一致する線（線E’1， 線E’2）について以下の操作を行う
(1)交点検出      ：直線E’1，直線E’2の交点であるNを検出
(2)線延長        ：交点Nの座標を線E’1， 線E’２の端点座標に代入
(3) 45°短線削除  ：線Dを削除
(4)新エルボ作成  ：交点Nの座標をエルボと認定する
【００８６】
また、４５°チーズ短線の判定は、以下の通りである。
こちらは、エルボ判定が終了した後に(45eフラグの付加が終わった後に)全ての線データについて下記の処理を行う。
エルボ判定後、従来のチーズ判定時にチーズを構成する２線（線の分割はチーズ判定後に行うので、この段階では検出チーズ点においての線分割は行われてはいない）の角度を調べ、これが４５°の角を成すとき、それらの線に４５tフラグを立てる。（つまり図３３（ｂ）線T’２、線D’にそれぞれ４５ｔフラグが付加される。）
全ての線データに対してこの処理を行った後
(1)45eフラグが1かつ、45tフラグが立っている
これは、一方の端点が45°エルボに、もう一方の端点が45°チーズと鳴っていることを示している。
(2)線長がκ以下である。（任意距離：図面により可変）
の条件を満たす線を45°チーズ短線と認識する
図３３（ｂ）の線D’が４５°チーズ短線と認識された場合、線D’と、線D’ の端点に一致する線（線T’1、線T’2）について以下の操作を行う
(1)交点検出                ：直線T’1、 線T’2の交点であるN’を検出
(2)線延長                    ：交点N’の座標を線T’1の端点座標に代入
(3) 45°短線削除       ：線D’を削除
(4)新チーズ作成        ：交点N’の座標をチーズと認定する
線分割処理はこれらの処理後に行われるので、線T’2は交点N’において分割される。
【００８７】
この手法で45°短線をもつ排水管を、現状の拾いと同等の形式で線長測定することが出来、拾い書に細かいデータが混ざらないようにすることができる。
【００８８】
次に縮尺対応について説明する。CADデータは、線、円・円弧、文字、点データはレイヤグループ、レイヤ、縮尺情報を持っている。Jw_cadではレイヤグループ毎にユーザが縮尺を設定可能である。座標原点はＣＡＤデータに一つであるため、縮尺が異なる二つのデータが画面を見て外見上同じ位置にあっても、原点以外ではそれら二つのデータの座標値は異なる。
【００８９】
Jw_cadは実寸主義のソフトであり、適切な縮尺で描かれた図面の線データの長さを取得すれば、実際の施工時の長さが得られる。そのため、配管や、建物の壁などは適切な縮尺（1/50等）を持つレイヤグループに属して描かれ、拾い作業に活用されることが一般的である。対して、引き出し線や管サイズ等の文字列など、線長測定に直接関係の無い情報は縮尺は実寸とは無関係（1/１等）に設定したレイヤグループで描かれることも多い。
【００９０】
縮尺を考慮せずに引き出し線等が記述された場合、以下のような問題が生じる。
縮尺によって認識に用いる閾値に値のずれが生じる
・画面上の見た目が同じである図面でも、縮尺の設定が1/50と1/100で違えば、図３４のS部分の線のギャップは座標上2倍の差が出る。当然、これを先結合使用とする場合の閾値も大きく異なる。
・画面上の外見が同一箇所でも、座標データ上は全く異なる座標である。
図３４の線Lsと、管サイズ25が異なるレイヤグループに属し、縮尺が異なる場合、この図面では本来は線Lｓに管サイズ２５が付加されるはずであるが、データ上の座標が全く異なるため付加されない可能性が高い。
図３５のように、引き出し線や管サイズの描かれたレイヤと、配管の描かれたレイヤで縮尺が異なれば、画面の外見上は同一であるにも関わらず、点Psの座標データは、属するレイヤによって座標値が大きく異なる。
【００９１】
これを回避するため、以下のように、図面の外見通りの統一座標を設定する。
統一座標＝（Ｆ／縮尺）×  各座標
を、認識アルゴリズム内や、認識結果確認画面では使用する。Fは利用画面やアルゴリズムに応じた任意の定数とする。本アルゴリズムではF=５０と設定している。
この座標を使うことで、縮尺に依存しない一つの閾値で判定を可能とする。
また、線結合などの閾値判定では同縮尺の線同士でのみ結合が行われることから、縮尺による制限を設けることで処理の高速化を可能とする。
【００９２】
以上の処理を基に、線長の測定を行う。測定は管サイズごとに行う。管サイズごとに線をわけ、始点と終点から線の長さを計算し、合計を出す。ＪＷ-ＣＡＤは実寸主義のソフトウェアであるので、倍率を考慮に入れれば、実用できる測定値を出すことができる。
【００９３】
まず、全配管データに管識別情報を付与する。この時点で、配管別のオブジェクト、管識別情報のある配管、及びその周辺の線データに管識別情報が付与されている。図２１は冷水の管識別情報をもつ線に対し、近辺の線データにも同一の管識別情報を付与するイメージを表している。線(ｐ1)番目データを選択して、この管が管識別情報を持っていた場合、線(ｐ1)の終点座標を中心とした領域α9に線(ｐ2)の始点座標が存在するかを調べる。存在するときとは、線(ｐ1)と線(ｐ2)が同じ配管であると判定でし、線(ｐ2)にも線(ｐ1)と同じ管識別情報を付与する。また、図２１のように線(ｐ2)の先に線(ｐ3)が存在した場合、線(ｐ2)番目が選択されたとき、線(ｐ2)の終点座標を中心とした領域α9内に線(ｐ3)の始点座標が存在していれば同様に管識別情報を線(ｐ3)にも付与する。これを全データに対して行うことで、配管とされる全線データに管識別情報が付される。
【００９４】
最後に、線長を求め、配管の長さを求める。全線データより管識別情報の給水管と給湯管がついている線データをすべて選択し、その線の長さを管径毎に、始点、終点の座標より求める。線長の演算は、求めた座標から、直線の始点と終点の座標間距離を周知の方法で演算し、各直線の長さの計算結果をそれぞれ総和することで、給湯管、給水管の管径毎の総和の長さを得ることが可能となる。
【００９５】
この発明の配管長測定システムによれば、建築における設計図の配管ＣＡＤデータより、図１に示すように配管の識別のため特徴図形として、給湯管識別子２１、給水管識別子２２を付与し、さらに配管の端部には、配管を識別するためのオブジェクト記号として、給湯管オブジェクト２３、給水管オブジェクト２４を付与する。また、各配管には管サイズ情報を付与し、それぞれの線に配管種を示す管識別情報を付与する。これにより、自動的にＣＡＤデータより管径毎の長さや配管種類毎の長さを求めて短時間で集計し、設計工数の短縮、コストダウンを図ることができる。さらに、折れ曲がりや分岐等を自動的に認識し、正確な配管長を短時間で算出することができるものである。
【００９６】
また、図１に示すように、配管の重なりによる線の途切れ２５を認識して、これを接続することによって、各種識別子や管サイズ情報が付与されていない線種についても、配管種を特定することにより、それぞれの線が示す各種径の配管（温水，冷水，排水管）の長さを計測できる。
【００９７】
この発明の配管長測定システムによれば、従来のＣＡＤに比べ、管識別情報を自動的に付与し、配管長を配管の種類毎に計算して、図１に示すように表示することができる。しかも、手作業やソフトウェアの変更をユーザーに求めることなく、自動的にＣＡＤデータより配管種類毎の長さを計測でき、設計工数の短縮、コストダウンを図ることができる。
【実施例１】
【００９８】
以下に、この発明の配管長測定システムにより実際のＣＡＤ図面において配管長を求めた実施例を図３６〜図４２を基にして説明する。
【００９９】
まず、線データ、円弧データ、文字データを抽出する。外部変形機能による範囲選択は図３のように行う。jwc_temp.txtからの、プログラムによる線、円弧、文字データの抽出はできた。確認のため、もとのデータと、プログラムから線データを出力した図を図３６に示す。これにより、線データを抽出できていることがわかる。給水管と少し離れたところや、接したところにある短い線は管サイズの下線である。給水管と接したところにあるものは給水管の管サイズ、離れたところにあるものは別の種類の管の管サイズの下線であるが、同レイヤに描かれているため抽出される。
【０１００】
分岐にある立ち上がり、角にある立ち上がりの認識については、立ち上がりを示す円弧データを認識した、全体の出力、部分的に拡大した出力を図３７に示す。二種類の記号で描かれた立ち上がりを別々に認識し、座標を得ることができた。
【０１０１】
途切れた線の線結合について、線結合を行った後の出力を図３８に示す。途切れた線が結合されたことがわかる。
【０１０２】
折れ曲がり、分岐の認識を行う。折れ曲がりは線の端点同士の距離のみで判定しているので、折れ曲がり判定は線の分割の前に行う必要がある。折れ曲がり、分岐判定した出力を図３９（ａ）に示す。管サイズの下線である短い線は、長さの判定で除外することができた。一部分岐の判定されていないバグがある。
【０１０３】
次に、分岐点での線の分割を行う。線の分割は分岐点を使って行っている。分岐点の検出ができなかった点では、線の分割を実行できなかったが、分岐点を検出したところでは、線の分割ができた。線の分割を実行した図を図３９（ｂ）に示す。
【０１０４】
さらに、縦線に管サイズを付加、横線に管サイズの付加を行った。これらは正しく付加できたが、管サイズの下線にも付加されているので、下線を判定に入れないようにするアルゴリズムが必要である。線の付近の数字を付加した図を図４０に示す。大きい管サイズが付加された線には太くマーカーをつけ、小さい管サイズが負荷された線には細くマーカーをつけた。管サイズが不明な線には濃い色でマーカーがつけられている。
【０１０５】
分岐点での管サイズ付加、分岐にある立ち上がりでの管サイズ付加、折れ曲がりでの管サイズ付加、角にある立ち上がりでの管サイズ付加を行った。これらを行った図を図４１に示す。元のデータとの比較するための図を図４２に示す。
【０１０６】
このアルゴリズムによって線長測定をし、手作業で線長を測定した数値と比較をした。手作業での線長の測定は非熟練者においても時間をかけることにより、精度のよい測定が可能である。線長の測定は始点、終点から線の長さを計算して測定し、これを３回行ってその平均を求めた。その結果を表３に示す。３度手作業での測定を行い、その平均値を手作業での測定結果とした。
【表３】
2009238210.tif 000006
【０１０７】
このシステムによる処理時間は手作業では７分の所、コンピュータにより219msであった。使用したコンピュータのスペックは以下のとおりである。
プロセッサ：Intel社 Pentium（登録商標） D CPU 2.80GHz (2 CPUs)
メモリ    ：512MB RAM
【符号の説明】
【０１０８】
１０  コンピュータ
１２  モニタ
２１  給湯管識別子
２２  給水管識別子
２３  給湯管オブジェクト
２４  給水管オブジェクト
２５  途切れ
【図１】
2009238210.tif 000007
【図４】
2009238210.tif 000008
【図５】
2009238210.tif 000009
【図６】
2009238210.tif 000010
【図７】
2009238210.tif 000011
【図８】
2009238210.tif 000012
【図９】
2009238210.tif 000013
【図１０】
2009238210.tif 000014
【図１１】
2009238210.tif 000015
【図１２】
2009238210.tif 000016
【図１３】
2009238210.tif 000017
【図１４】
2009238210.tif 000018
【図１５】
2009238210.tif 000019
【図１６】
2009238210.tif 000020
【図１７】
2009238210.tif 000021
【図１８】
2009238210.tif 000022
【図１９】
2009238210.tif 000023
【図２０】
2009238210.tif 000024
【図２１】
2009238210.tif 000025
【図２２】
2009238210.tif 000026
【図３１】
2009238210.tif 000027
【図３２】
2009238210.tif 000028
【図３３】
2009238210.tif 000029
【図３４】
2009238210.tif 000030
【図３５】
2009238210.tif 000031
【図２】
2009238210.tif 000032
【図３】
2009238210.tif 000033
【図２３】
2009238210.tif 000034
【図２４】
2009238210.tif 000035
【図２５】
2009238210.tif 000036
【図２６】
2009238210.tif 000037
【図２７】
2009238210.tif 000038
【図２８】
2009238210.tif 000039
【図２９】
2009238210.tif 000040
【図３０】
2009238210.tif 000041
【図３６】
2009238210.tif 000042
【図３７】
2009238210.tif 000043
【図３８】
2009238210.tif 000044
【図３９】
2009238210.tif 000045
【図４０】
2009238210.tif 000046
【図４１】
2009238210.tif 000047
【図４２】
2009238210.tif 000048