以下、実施の形態につき図面を参照して説明する。
図1は一つの実施形態に係る回路図自動作成方法を適用するコンピュータのハードウェア構成を示すブロック図である。図1に示すコンピュータは、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、表示装置15、プリンタ装置16及び通信機構17を備えている。プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、表示装置15、プリンタ装置16及び通信機構17は、バス18によって相互接続されている。
補助記憶装置13は、例えばハードディスクドライブ、或いはソリッドステートドライブのような、不揮発性のストレージ装置である。補助記憶装置13は、例えば、回路図自動作成プログラム131、制御コードリスト132、シンボル形状テーブル133、シンボル配置テーブル134、図面管理データベース135及び図面管理ファイル136を格納するのに用いられる。
回路図自動作成プログラム131には、プロセッサ11によって実行される回路図自動作成処理の手順が記述されている。
制御コードリスト132は、例えば図示せぬ保守ツールによってページ毎に用意されるものであり、周知のように制御コードの群を保持する。各制御コードは、例えば、命令語と複数の線番名とから構成されている。命令語は、対応するページを構成する回路図(例えば論理回路図)に配置されるべき回路要素のシンボル(より詳細には、シンボルを識別するためのシンボル名)を指定する。本実施形態では、命令語はシンボルのシンボル名から構成される。線番名は、対応する命令語の示すシンボルが有する端子(入力端子または出力端子)に接続される配線(線番)を識別するための識別情報(線番情報)である。本実施形態では、線番名はアルファベットと数字との組み合わせから構成される。
シンボル形状テーブル133には、図1に示すコンピュータで処理可能な種類のシンボルの属性をシンボル種類毎に示すシンボル情報が登録されている。このシンボル種類毎のシンボルのシンボル情報は、例えば、対応するシンボルの種類に固有のシンボル名、当該シンボルの形状を示すシンボル形状情報、及び当該シンボルが有する端子に関する端子情報を含む。端子情報は、対応するシンボルが有する端子(ピン)毎に、当該端子が入力端子または出力端子のいずれであるかを示す端子種別情報と、当該端子に対応する配線(線番)の種別を示す線番種別情報と、当該端子の座標を示す座標情報とを含む。本実施形態において、これらの端子毎の各情報の並びは、端子番号の順に一致する。また、線番種別情報は、対応する端子が配線に用いられるかと、当該端子が配線に用いられる場合に対応する配線(線番)が特別の条件に基づいて決定されるかを示す情報を含む。
シンボル配置テーブル134は、例えば回路図自動作成処理で生成され、当該回路図自動作成処理で図面(回路図面)に配置された各シンボルの位置情報を保持するのに用いられる。図面管理データベース135は、回路図自動作成処理で作成中の図面の図面データと、作成が既に完了している図面の図面データ(ページ毎の図面データ)を保存するのに用いられる。図面管理ファイル136は例えば図面毎に用意され、対応する図面の図面データ(ページ毎の図面データ)を保存するのに用いられる。図面データは、図面(の各ページ)内のシンボルの位置情報及びシンボル情報と、配線情報と、線番情報とを含む。配線情報は、配線の座標情報を含む。
プロセッサ11は、回路図自動作成プログラム131を補助記憶装置13から主記憶装置12に読み込み、当該回路図自動作成プログラム131に従って回路図自動作成処理を実行する。
プロセッサ11は回路図自動作成処理の高速化のために、制御コードリスト132及びシンボル形状テーブル133を適宜主記憶装置12に読み込んで使用する。またプロセッサ11は、図面作成の途中で終了した回路図自動作成処理を再開する場合、当該作成途中の図面の図面データを、図面管理データベース135(または、対応する図面管理ファイル136)から主記憶装置12内に確保されている図面バッファに読み込んで使用する。このときプロセッサ11は、シンボル配置テーブル134も主記憶装置12に読み込む。なお、作成途中の図面の図面データに含まれている各シンボルの位置情報に基づいて、主記憶装置12内にシンボル配置テーブル134を生成することも可能である。
入力装置14は、ユーザによる各種指示、データ等の入力に用いられる。表示装置15は、回路図等の表示に用いられる。本実施形態において表示装置15は、作成中の回路図、或いは作成が完了した回路図を、当該回路図の図面データに基づいて表示する。プリンタ装置16は、回路図等の印刷に用いられる。通信機構17は、ローカルエリアネットワーク、ワイドエリアネットワーク、或いはインターネットのようなネットワークを介して他のコンピュータ(例えば、サーバコンピュータ)と通信する。
なお、図1に示すコンピュータが必ずしも補助記憶装置13を備えている必要はなく、例えば、回路図自動作成プログラム131、制御コードリスト132及びシンボル形状テーブル133等が、必要に応じて外部のサーバコンピュータからネットワーク及び当該コンピュータの通信機構17を介して主記憶装置12にダウンロードされる構成であってもよい。また、図1に示すコンピュータが、光ディスクドライブまたはメモリカードスロットを備えているならば、回路図自動作成プログラム131、制御コードリスト132及びシンボル形状テーブル133等が格納された光ディスクまたはメモリカードが、光ディスクドライブまたはメモリカードスロットに装着して用いられる構成であっても構わない。
図2は、図1に示すプロセッサ11が回路図自動作成プログラム131を実行することによって実現される回路図自動作成システムの機能構成を示すブロック図である。図2に示す回路図自動作成システム(回路図自動作成装置)は、回路図作成部20及び記憶部25を備えている。図2では、図1に示される入力装置14、表示装置15にそれぞれ対応する入力部、表示部等は省略されている。
回路図作成部20は、シンボル・配線エリア設定部21と、シンボル配置部22と、配線配置部23と、調整部24とを備えている。シンボル・配線エリア設定部21、シンボル配置部22、配線配置部23及び調整部24の機能については後述する。
記憶部25は、図1に示す主記憶装置12及び補助記憶装置13に対応する。記憶部25には、制御コードリスト132、シンボル形状テーブル133、シンボル配置テーブル134、図面管理データベース135及び図面管理ファイル136が格納される。また、記憶部25には、作成途中または作成が完了した図面の図面データを一時格納するための図面バッファ(図示せず)が確保されている。
次に、本実施形態で適用される回路図自動作成処理について、主として図3に示すフローチャートを参照して説明する。
図3のフローチャートに示すように、回路図自動作成処理は、シンボル・配線エリア設定処理31と、シンボル配置処理32と、配線配置処理33と、調整処理34とに大別される。
1.シンボル・配線エリア設定処理
まず、シンボル・配線エリア設定処理31に関係するシンボルエリア及び配線エリアについて、図4を参照して説明する。
図4は、所定の図面領域40に、複数のシンボルエリア41及び3種の複数の配線エリア42,43,44が配置された図面(より詳細には、作成途中の論理回路図面)の例を示す。複数のシンボルエリア41は、図面領域40の水平方向(左右方向)または垂直方向(上下方向)の少なくとも一方の第1の方向に当該第1の方向に対応した一定間隔を保って配置される。図4の例では、複数のシンボルエリア41は同一サイズの矩形であり、図面領域40の左右方向に当該左右方向に対応した第1の間隔を保ち、且つ図面領域40の上下方向に当該上下方向に対応した第2の間隔を保って配置される。つまり複数のシンボルエリア41は図面領域40内に間隔を保ってマトリクス状に配置されている。
本実施形態において図面領域40内の座標は、当該図面領域40の左下の頂点を原点として表される。ここでは、図面領域40の右縁の水平方向位置が水平方向の座標(x座標)の最大値を示し、図面領域40の上縁の垂直方向位置が垂直方向の座標(y座標)の最大値を示すものとする。
各シンボルエリア41に図面領域40の左右方向で隣接する、当該図面領域40内のエリアは、配線エリア42として設定される。つまり、各シンボルエリア41の左右には当該シンボルエリア41に隣接して配線エリア42が配置される。このため、図面領域40の上下方向のシンボルエリア41の配列、つまりシンボルエリア41の列と、右または左で隣接するシンボルエリア41の列との間のエリアは、配線エリア42から構成される。配線エリア42の幅(左右方向の幅)は、第1の間隔に一致する。
各シンボルエリア41に図面領域40の上下方向で隣接する、当該図面領域40内のエリアは、配線エリア43または配線エリア44として設定される。本実施形態では、配線エリア43はシンボルエリア41の上側に配置され、配線エリア44はシンボルエリア41の下側に配置される。配線エリア43の幅(上下方向の幅)と配線エリア44の幅(上下方向の幅)とを合わせた幅は、第2の間隔に一致する。このため、図面領域40の左右方向のシンボルエリア41の配列、つまりシンボルエリア41の行と、1つ下のシンボルエリア41の行との間のエリアは、配線エリア44及び配線エリア43から構成される。
配線エリア42及び配線エリア43は一部重複する。配線エリア42及び配線エリア44も一部重複する。本実施形態では便宜的に、これらの重複部分を配線エリア42として扱うものとする。
各シンボルエリア41は、作成されるべき回路図を構成する回路要素のシンボルを配置するのに用いられる。本実施形態では、1シンボルエリア41に1シンボルが配置される。図4には、8つのシンボルエリア41にシンボルSB1〜SB8が配置されている状態が示されている。
各配線エリア42は、主として図面領域40内のシンボル間をつなぐための垂直方向の配線を配置するのに用いられる。各配線エリア43は、同一行のシンボルエリア41に配置された1対のシンボルの間をつなぐための配線であって、少なくとも一方のシンボルの端子が上側の端子である場合の配線(上方接続配線)を配置するのに用いられる。各配線エリア43はまた、上の行(上段)のシンボルエリア41に配置されたシンボルと下の行(下段)のシンボルエリア41に配置されたシンボルとの間をつなぐための水平方向の配線を配置するのにも用いられる。
各配線エリア44は、図面領域40内の同一行のシンボル間をつなぐための水平方向の配線を配置するのに用いられる。各配線エリア44はまた、図面間をまたぐ配線を配置するのにも用いられる。
各配線エリア42〜44更に、配線間の接続点である交点を表す交点マーク“・”を配置するのにも用いられる。本実施形態では、各配線エリア42〜44の境界にも配線の配置が可能であるものとする。
次に、図3のフローチャートに示されるシンボル・配線エリア設定処理31(つまり、回路図自動作成処理におけるシンボル・配線エリア設定処理31)の手順について、主として図4を参照して説明する。
まずシンボル・配線エリア設定部21(として機能するプロセッサ11)は、1図面領域に配置されるべきシンボル数を設定する(ステップS1)。ここでは、シンボル数として、予め定められた標準値が用いられる。シンボル数が標準値の場合、当該シンボル数はシンボルエリア数(N×M)に一致するものとする。Nは行数を、Mは列数を表す。本実施形態では、N,Mは2以上の整数(図4の例では、N=2,M=4)であるが、N,Mのいずれか一方が1であっても構わない。また、シンボル数を、ユーザが入力装置14を操作して変更することも可能である。
次にシンボル・配線エリア設定部21は、例えば記憶部25に確保された図面バッファ(に対応する表示部の表示領域)内に、新たな図面(回路図面)のための領域、つまり新たな図面領域40を用意し、図4に示すように、当該図面領域40内にN×M個のシンボルエリア41を配置する(ステップS2)。このステップS2においてシンボル・配線エリア設定部21は、図面領域40内のN×M個のシンボルエリア41を除くエリアに、図4に示すように3種の配線エリア42,42,43の群を配置する。
2.シンボル配置処理
次に、図3のフローチャートに示されるシンボル配置処理32について、主として図4及び図5を参照して説明する。図5は、制御コードリスト132の例を示す。説明の簡略化のために、制御コードリスト132が、図面領域40上に配置されるシンボルエリア41の個数に等しい制御コード、つまりN×M個の制御コードを保持しているものとする。ここでは、N=2、M=4であり、制御コードリスト132は8つの制御コードを保持している。8つの制御コードの各々は、命令語132aと複数の線番名132bとから構成されている。8つの制御コードの命令語132aの示すシンボルのシンボル名は、SB1〜SB8である。
本実施形態では、回路図の自動作成に既存の制御コードリスト132が用いられる。このため制御コードリスト132は、複数ページ分用意されるのが一般的である。但し図4には、1ページ分の制御コードリスト132のみが示されている。制御コードリスト132には、対応するページのページ番号が付されている。この制御コードリスト132(つまり既存の制御コードリスト)に保持される制御コード群の示すシンボル群から構成される回路図のページ(旧ページ)は、以下の説明から明らかなように、本実施形態で作成される回路図のページ(新ページ)とは異なる。このため、制御コードリスト132に保持される制御コードの数は、実際にはN×M個(N=2、M=4)であるとは限らず、例えばN×M個よりも多い場合もある。
シンボル配置部22(として機能するプロセッサ11)は、制御コードリスト132中のN×M個の制御コードにそれぞれ含まれている命令語132aの示す回路要素のシンボルを、1シンボルずつ図面領域40内のN×M個のシンボルエリア41の例えば中央部に配置する(ステップS3)。以下、このステップS3について更に詳細に説明する。
まず、最初の回路図の作成、つまり先頭のページ(新ページ)の作成の場合であれば、シンボル配置部22は制御コードリスト132中の先頭の制御コードから順にN×M個の制御コードを読み出す。
シンボル配置部22は、制御コードリスト132から読み出したN×M個の制御コードにそれぞれ含まれている命令語132aの示すシンボル名を判別し、当該シンボル名のシンボルを1つずつ図4において矢印Aで示される順でN×M個(ここでは、N=2,M=4)のシンボルエリア41に配置する。即ちシンボル配置部22は、第1行(段)の左端のシンボルエリア41(つまり左上のシンボルエリア41)から順に右方向にシンボルを配置する。そして、シンボル配置を第1行の右端(4番目)のシンボルエリア41まで終了したならば、シンボル配置部22は、第2行の左端のシンボルエリア41(つまり左下のシンボルエリア41)から順に右方向に右端(4番目)のシンボルエリア41(つまり右下のシンボルエリア41)までシンボルを配置する。このようにして、図5に示す制御コードリスト132の例では、第1行の4つのシンボルエリア41には、図4に示すように左から順に、シンボルSB1,SB2,SB3,SB4が配置され、第2行の4つのシンボルエリア41には、図4に示すように左から順に、シンボルSB5,SB6,SB7,SB8が配置される。
シンボル配置部22は、上記ステップS3を実行し終えると、制御コードリスト132中の最後の制御コードに含まれている命令語132aの示すシンボル(最後のシンボル)まで作成中の回路図に配置できたかを判定する(ステップS4)。もし、未配置のシンボルが残っているならば、つまり制御コードリスト132中の制御コードの数がN×M個(2×4個)よりも多いために、現在作成中の回路図に収まらないシンボルを示す未処理の制御コードが残っているならば(ステップS4のNo)、シンボル配置部22はステップS2に戻る。そしてシンボル配置部22は、新たな図面領域40を用意して、当該図面領域40内にN×M個のシンボルエリア41を配置した後(ステップS2)、制御コードリスト132中に残っている未処理の制御コード群の示すシンボル群を前述した順序でシンボルエリア41に配置する。
これに対し、本実施形態のように未配置のシンボルが残っていないならば、つまり最後のシンボルまで現在作成中の回路図に収まったならば(ステップS4のYes)、シンボル配置部22は、図面領域40内に配置した8つのシンボルSB1〜SB8及び当該8つのシンボルSB1〜SB8の位置情報(シンボル位置情報)を、例えば制御コードリスト132中の制御コードと対応付けてシンボル配置テーブル134に格納(記録)する(ステップS5)。シンボル配置部22はまた、これらのシンボルSB1〜SB8の位置情報を、図面バッファ及び図面管理データベース135にも格納する。シンボル配置部22は更に、シンボルSB1〜SB8のシンボル情報も、図面バッファ及び図面管理データベース135に格納する。そしてシンボル配置部22は、配線配置部23に制御を渡す。これにより、配線配置部23は配線配置処理33を実行する。
3.配線配置処理
3.1 配線配置処理の概要
次に、図3のフローチャートに示される配線配置処理33の概要について説明する。配線配置部23は配線配置処理33において、図面領域40に配置されたシンボルの群から、接続の対象となる接続元シンボル(より詳細には、後述するように接続元シンボルの入力端子)及び接続先シンボル(より詳細には、後述するように接続先シンボルの出力端子)の組を逐次抽出する。そして配線配置部23は、接続元シンボル及び接続先シンボルの組毎に、当該接続元シンボル及び当該接続先シンボルの間をつなぐ配線を、図面領域40内の配線エリア41〜43を利用して配置する。配線配置部23は、配置された配線の座標を含む配線情報、及び配置された配線の線番名を含む線番情報を、図面バッファ及び図面管理データベース135に格納する。
本実施形態のシンボル・配線エリア設定処理31及びシンボル配置処理32によれば、シンボルを配置するのに用いられるN×M個のシンボルエリア41を、図面領域40の左右方向(水平方向)に第1の間隔で、かつ図面領域40の上下方向(垂直方向)に第2の間隔で配置し、当該N×M個のシンボルエリア41にそれぞれシンボルを配置するため、様々な種類及びサイズのシンボルを、簡単な手順で図面領域40内に一様に且つ整然と配置することができる。つまり、本実施形態によれば、多数のシンボルを簡単な手順で1図面内に見栄え良く効率的に配置できる。
また、本実施形態のシンボル・配線エリア設定処理31、シンボル配置処理32及び配線配置処理33によれば、隣接するシンボルエリア41間に配線エリア42、配線エリア43または配線エリア44を配置し、当該配線エリア42、配線エリア43または配線エリア44を利用して、図面領域40内に配置されたシンボル間を接続する配線を配置するため、図面領域40内に一様に配置されたシンボル群のうちの接続元シンボルと接続先シンボルの組毎の整列された配線を容易に実現することができる。
3.2 配線配置処理の主要な手順の概要
次に、図3のフローチャートに示される配線配置処理33の主要な手順の概要について、主として図6乃至図9を参照して説明する。
今、図4に示すように、図面領域40内の8つのシンボルエリア41にシンボルSB1〜SB8が配置されているものとする。この状態で配線配置部23は、配線配置処理33を開始する。配線配置処理33において、配線配置部23はシンボル配置テーブル134に格納されているシンボルSB1〜SB8の位置情報に基づいて、最初の配線の接続元となるシンボル、つまり接続元シンボルを選択する(ステップS6)。本実施形態では、図面領域40内で最初の配線の接続元となるシンボル(接続元シンボル)は、後述するように、図面領域40内の右下のシンボルエリア41に配置されたシンボルSB8である。また、接続元シンボルは、後述するステップS13でも選択される。
図6は、接続元シンボルと当該接続元シンボルの入力端子と接続されべき出力端子を有する接続先シンボルの例を示す。このように本実施形態では、接続元シンボルが、配線の接続元の入力端子を有するシンボルであることに注意すべきである。
今、図6においてハッチングが施されたシンボルSB5、つまり図面領域40内の左下のシンボルエリア41に配置されたシンボルSB5が、接続元シンボルとして選択されたものとする(ステップS13)。この場合、配線配置部23は、シンボル形状テーブル133に登録されている接続元シンボルSB5のシンボル情報中の端子情報に基づき、当該接続元シンボルSB5の有する複数の端子の中から、接続の対象となる入力端子(より詳細には、配線配置が開始されるべき入力端子)Baを選択する(ステップS7)。図6における入力端子Baは丸印で示されている。上記ステップS7で適用される、配線配置が開始されるべき入力端子Baを選択する手法(以下、第1の手法と称する)の詳細については後述する。ステップS7は、図3のフローチャートから明らかなように、ステップS6で接続元シンボルが選択された場合にも実行される。
本実施形態において、図1に示すコンピュータで処理可能なシンボル群の属性は、シンボル種類毎にシンボル情報により示される。このシンボル種類毎のシンボルのシンボル情報は、前述したようにシンボル形状テーブル133に保持されており、対応するシンボルの種類に固有のシンボル名、当該シンボルの形状を示すシンボル形状情報、及び当該シンボルが有する端子に関する端子情報を含む。
そこで配線配置部23は、図面領域40に配置されているシンボルSB1〜SB8、つまり制御コードリスト132中の対応する制御コード群に含まれている命令語132a(シンボル名)群の示すシンボルSB1〜SB8について、当該シンボルSB1〜SB8のシンボル名を含むシンボル情報をシンボル形状テーブル133から検索する。配線配置部23は、検索されたシンボルSB1〜SB8のシンボル情報中の端子情報に基づき、当該シンボルSB1〜SB8がそれぞれ有する複数の端子のそれぞれについて、当該端子の種類を識別し、且つ当該端子の座標(相対座標)を抽出することができる。
これにより、配線配置部23は上記ステップS7において、選択された入力端子(接続元入力端子)Baの図面領域40内の座標を、シンボル形状テーブル133に登録された接続元シンボルSB5のシンボル情報に含まれている端子情報及びシンボル配置テーブル134に格納されている当該接続元シンボルSB5の位置情報に基づいて算出する。ここで、接続元シンボルSB5の端子情報の示す入力端子Baの座標は、シンボルSB5の予め定められた基点からの相対座標である。接続元シンボルSB5の入力端子Baの図面領域40内の座標(つまり絶対座標)は、上記相対座標と、上記位置情報の示す位置(つまり、シンボルSB5が配置されているシンボルエリア41の図面領域40内の位置)とから算出される。
配線配置部23は、配線配置が開始されるべき接続元シンボルSB5の入力端子(つまり接続元入力端子)Baを選択すると(ステップS7)、当該入力端子Baと配線を介して接続されるべき出力端子を有する接続先シンボル及び当該出力端子(つまり接続先出力端子)を抽出する(ステップS8)。ここでは、ステップS7で選択された接続元シンボルSB5の入力端子Baに対応する線番名と同一の線番名で対応付けられた出力端子を有するシンボルが接続先シンボルとして抽出され、当該出力端子が接続先出力端子として抽出される。このステップS8で適用される、接続元入力端子と接続されるべきを出力端子を有する接続先シンボル及び当該出力端子を抽出する手法(以下、第2の手法と称する)の詳細については後述する。
さて、上記ステップS8により、図6において接続元シンボルSB5の入力端子Baの位置を基点とする矢印Bで示されるように、シンボルSB3の出力端子Bbが当該入力端子Baと接続されるべき出力端子として抽出されたものとする。図6における出力端子Bbは、入力端子Baと同様に丸印で示されている。
上記ステップS8において配線配置部23は、抽出された出力端子(接続先出力端子)Bbの図面領域40内の座標(絶対座標)を、入力端子Baの座標(絶対座標)を算出する場合と同様に、シンボル形状テーブル133に登録されている接続先シンボルSB3の端子情報及びシンボル配置テーブル134に格納されている当該接続先シンボルSB3の位置情報に基づいて算出する。
次に配線配置部23は、接続元シンボルSB5の入力端子Baと接続先シンボルSB3の出力端子Bbとを配線で接続するのに用いられる配線ルートを決定する(ステップS9)。そして配線配置部23は、決定された配線ルートに沿って接続元シンボルSB5の入力端子Baから接続先シンボルSB3の出力端子Bbに向かって配線する(ステップS10)。このステップS10において配線配置部23は、配置された配線の座標を含む配線情報を、図面バッファ及び図面管理データベース135に格納する。
ここで、接続元シンボルSB5を第1のシンボル、接続先シンボルSB3を第2のシンボルと呼ぶものとすると、本実施形態では基本的には、第1のシンボルの入力端子から第2のシンボルの出力端子まで配線される。この配線の方向が、第2のシンボルの出力端子から第1のシンボルの入力端子まで信号の方向に配線される従来技術とは逆である点に注意されるべきである。
このように本実施形態では、接続されるべき入力端子を有する第1のシンボルが接続元シンボルとして抽出され、且つ、当該入力端子と接続されるべき出力端子を有する第2のシンボルが接続先シンボルとして抽出され、接続元シンボルの入力端子から接続先シンボルの出力端子に向かって配線される。本実施形態における当該配線の方向の意義については後述する。
配線配置部23は、ステップS10を実行すると、接続元シンボルSB5内に次に配線配置が開始されるべき他の入力端子があるかを、図5に示す制御コードリスト132中の当該接続元シンボルSB5に対応する制御コードに含まれている他の線番名と、当該接続元シンボルSB5の端子情報とに基づいて判定する(ステップS11)。もし、他の入力端子があるならば(ステップS11のYes)、配線配置部23はステップS7に戻る。
これに対し、他の入力端子がないならば(ステップS11のNo)、配線配置部23は、図面領域40に配置されたシンボル群の中に、次に配線配置が開始されるべき他のシンボルがあるかを、シンボル配置テーブル134に基づいて判定する(ステップS12)。もし、他のシンボルがあるならば(ステップS12のYes)、配線配置部23はステップS13に進む。ステップS13において配線配置部23は、制御コードリスト132中の制御コードの並び順(より詳細には、制御コードの並びに対応するシンボルの配置順)とは逆順に、次に配線配置が開始されるべきシンボル(接続元シンボル)を選択し、ステップS7に戻る。この接続元シンボルの選択順序については後述する。
一方、他のシンボルがないならば(ステップS12のNo)、配線配置部23はステップS14に進み、後述する入力/出力シンボルと図面領域40内のシンボルとの間の図面間をまたぐ配線を行う。
次に、前記配線ルートの決定の詳細について説明する。
配線配置部23は、接続元シンボルの入力端子及び接続先シンボルの出力端子の各座標に基づき、当該接続元シンボルの入力端子と当該接続先端子の出力端子とを接続するのに用いられる、当該接続先シンボルに対して最短の配線エリアの系列を探索する。つまり配線配置部23は、接続元シンボルの入力端子と接続先シンボルの出力端子とを接続する配線の経路(配線ルート)に用いられる配線ルートエリア(最適配線ルートエリア)を構成する配線エリアの系列(最適配線エリアの系列)を、当該配線ルートエリア(を構成する配線エリアの系列)が接続先シンボル(より詳細には接続先シンボルの出力端子)に近い箇所(例えば最も近い箇所)を通るように、当該接続先シンボルの出力端子を起点として探索する。
この配線ルートエリアを構成する配線エリアの系列の探索の具体例について、図7を参照して説明する。図7は、接続元シンボルがシンボルSB5、接続先シンボルがシンボルSB3の場合に探索される、配線ルートエリアを構成する配線エリアの系列の例を示す。
ステップS7で選択された接続元シンボルSB5の入力端子Baは、当該シンボルSB5の左側に位置し、当該シンボルSB5が配置されたシンボルエリア41の左縁に対応する(図6参照)。一方、ステップS8で選択された接続先シンボルSB3の出力端子Bbは、当該シンボルSB3の右側に位置し、当該シンボルSB3が配置されたシンボルエリア41の右縁に対応する(図6参照)。この場合、配線配置部23はまず、接続先シンボルSB3の出力端子Bbに近い(例えば最も近い)配線エリア42、つまり接続先シンボルSB3の出力端子Bb側(右側)の配線エリア42を、図7に示すように、配線ルートエリア70の一部を構成する配線ルートエリア要素71として探索(決定)する。そして配線配置部23は、接続元シンボルSB5の入力端子Baに最も近い配線エリア42、つまりシンボルSB5の入力端子Ba側(左側)の配線エリア42の位置をターゲットに、配線エリアの系列を順次探索する。これにより図7の例では、配線配置部23は、接続先シンボルSB3の下側で且つ接続元シンボルSB5の上側の配線エリア43を、配線ルートエリア70の他の一部を構成する配線ルートエリア要素72として探索し、シンボルSB5の入力端子Ba側(左側)の配線エリア42を、配線ルートエリア70の残りの部分を構成する配線ルートエリア要素73として探索する。このようにして配線配置部23は、配線ルートエリア要素71〜73をなす配線エリアの系列(即ち図面領域40に水平または垂直な配線エリアの系列)から構成される配線ルートエリア70を探索する。
ところで本実施形態では、各シンボルが配置されるシンボルエリア41の図面領域40内の位置は予め定められている。また、隣接するシンボルエリア41間に配線エリア42、配線エリア43または配線エリア44が配置されるため、配線エリア42〜44の位置も予め定められている。このため、図面領域40内の全てのシンボルエリア41の対の組み合わせ毎で、且つ当該シンボルエリア41の対にそれぞれ配置されるシンボルの想定される入力端子及び出力端子の位置(より詳細には、入力端子及び出力端子の位置に対応するシンボルエリア41の上縁、下縁、左縁または右縁)毎に、最適配線ルートエリアを構成する最適配線エリアの系列を予め取得することが可能である。そこで、これらの最適配線ルートエリアを構成する最適配線エリアの系列を示すパターン情報を、回路図自動作成処理とは非同期に予め所定のテーブル(最適配線ルートエリアテーブル)に登録することも可能である。この場合、配線配置部23は、接続元シンボルSB5及び接続先シンボルSB3の組み合わせと、接続元シンボルSB5の入力端子Ba及び接続先シンボルSB3の出力端子Bbの座標から識別される、当該入力端子Ba及び出力端子Bbの位置が対応するシンボルエリア41の上縁、下縁、左縁または右縁のいずれに対応しているかとに基づいて、最適配線ルートエリアテーブルを参照することで、目的の配線ルートエリア(最適配線ルートエリア)を探索することができる。
配線配置部23は、配線ルートエリア70を探索すると、当該配線ルートエリア70内を通る、接続元シンボルSB5の入力端子Baから接続先シンボルSB3の出力端子Bbに至る配線ルートを決定する。
以下、配線ルートエリア70内を通る配線ルートの決定について、図8を参照して説明する。図8は、接続元シンボルがシンボルSB5、接続先シンボルがシンボルSB3である場合に決定される配線ルートの例を示す。図8に示すように、配線配置部23は、配線ルートエリア70内で接続元シンボルSB5の入力端子Baから接続先シンボルSB3の出力端子Bbに至る経路のうち、当該接続先シンボルSB3の出力端子Bbに最も近い箇所を通る経路を、配線ルート80として決定する。図8に示す配線ルート80の矢印の向きは、信号の向きではなくて、配線ルート探索の方向、つまり接続元シンボルSB4の入力端子Baから接続先シンボルSB3の出力端子Bbに向かう方向を示す。この方向の意義については後述する。
配線配置部23は、配線ルート80を決定すると(ステップS9)、前述したように、決定された配線ルート80に沿うように、接続元シンボルSB5の入力端子Baから接続先シンボルSB3の出力端子Bbに向かって配線する(ステップS10)。但し、ステップ10では、後述するように、接続元シンボルSB5の入力端子Baと接続先シンボルSB3の出力端子Bbとの間が、配線ルート80の全区間に亘って新たな配線で接続されるとは限らない。
例えば、接続元シンボルSB5とは異なるシンボルSBxの入力端子Bxと接続先シンボルSB3の出力端子Bbとの間に既に配線が配置されているものとする。このような場合、詳細を後述するように、配線ルート80のうちの接続元シンボルSB5の入力端子Ba側の一部区間だけに、新たな配線が配置され、その区間の一端(より詳細には、接続先シンボルSB3の出力端子Bb側の一端)に交点マーク“・”が配置されることになる。交点マーク“・”が配置される状態は、接続先シンボルの出力端子と接続されるべき(配線の線番名と同一の線番名に対応する)入力端子を有する複数の接続元シンボルが存在する場合、つまり制御コードリスト132中の3つ以上の制御コードに同一の線番名が含まれている場合に発生する。
配線ルートエリア70内で、第1のシンボルの入力端子と第2のシンボルの出力端子との間に配線を配置する場合、当該配線は、第2のシンボルの出力端子から第1のシンボルの入力端子に向かう信号の方向を示す矢印で表されるのが一般的である(図28参照)。しかし、以下の説明では、配線の方向に関する理解を容易にするために、当該配線(または当該配線が配置される配線ルート)は特に断らない限り、第1のシンボル(接続元シンボル)の入力端子から第2のシンボル(接続先シンボル)の出力端子に向かう方向(つまり配線ルート探索の方向)を示す矢印で表されるものとする(図11乃至図27、図29、図30参照)。
前述のように決定された配線ルート(つまり接続元シンボルの入力端子から接続先シンボルの出力端子に向かう配線ルート)の少なくとも一部の区間が、既に別の配線(より詳細には、線番名を異にする別の配線)の配置に用いられていることはあり得る。そこで、前記ステップS9において配線配置部23は、決定された配線ルートの少なくとも一部の区間が既に別の配線の配置に用いられているか(つまり配線ルートの重なり)を判定する。もし、決定された配線ルートの少なくとも一部の区間が既に別の配線の配置に用いられている場合、配線配置部23は、配置済み配線と重ならないように配線ルートを変更する。
以下、配線ルートの変更について図9を参照して説明する。図9は、既に配線の配置に用いられている配線ルート(つまり配線配置済みの配線ルート)を記録するビットマップテーブル90の一部の例を示す模式図である。配線配置済みの配線ルートは、配置済みの配線に一致する。ビットマップテーブル90は、図2では省略されているが、記憶部25に格納されている。
図9に示すビットマップテーブル90は、配線ルート(配線)の重なりを検出するのに用いられる。ビットマップテーブル90は、図面領域40内の全ての配線エリア42,43,44の群を、当該図面領域40の水平及び垂直方向に所定間隔(例えば2mm間隔)で区分する格子の格子点群にそれぞれ割り当てられた、当該格子点が配線に用いられているかを示すビットの集合から構成される。図9では、ビットマップテーブル90のビットの集合と図面領域40内の配線エリア42,43,44との関係の理解を容易にするために、ビットマップテーブル90の一部と図面領域40内の一部の配線エリア42,43,44とが、模式的にまとめて示されている。
図9の例では、配線配置済み配線ルート(配置済み配線)91がビットマップテーブル90に記録されている状態が示されている。本実施形態では、ビットマップテーブル90の各ビットの初期値は“0”である。配線配置部23は、図9に示される配線ルート91に配線を配置した場合、当該配線ルート91の格子点の系列に対応する、当該ビットマップテーブル90内のビット列を“000…000”から“111…111”に書き換える。これにより、配線ルート91がビットマップテーブル90に記録される。なお、図9では、配線ルート91の方向が信号の向きを表しているいる。
配線配置部23は、ビットマップテーブル90から水平または垂直の方向に“1”のビットが続くビット列を検索することで、配線配置済みの配線ルートを検出(つまり配置済みの配線を検出)することができる。そこで、配線配置部23は前記ステップS9において図8に示される配線ルート80を決定した際に、当該配線ルート80に用いられている配線ルートエリア70に対応するビットマップテーブル90内の領域を参照する。そして配線配置部23は、配線ルート80の格子点の系列に対応するビットマップテーブル90内のビット列の中に“1”が続く部分があるかをチェックすることで、当該配線ルート80の少なくとも一部の区間が、該当する配線ルートエリア70内の配線配置済みの他の配線ルートと重なっているかを判定する。もし、少なくとも一部の区間が重なっているならば、配線配置部23は、配線ルート80の位置を、当該重なりが解消する方向に、該当する配線ルートエリア70内で前記所定間隔ずつずらす。これにより、配線ルート80(つまり、決定された配線ルート80)と該当する配線ルートエリア70内の配線配置済みの配線ルートとが重なるのを回避することができる。
なお、本実施形態では、前記所定間隔は2mmに予め設定される。また、配線エリア42,43,44の幅は、それぞれ、10mm,10mm,28mmである。この場合、配線エリア42及び43には最大6本の配線が配置可能であり、配線エリア44には最大15本の配線が配置可能である。しかし、この間隔を、ユーザが入力装置14を操作して指定すること、つまり配線エリア42,42,43に配置可能な配線数(水平方向格子数、垂直方向格子数)をユーザが指定することも可能である。
このように本実施形態では、配線配置部23は、接続元シンボルの入力端子及び接続先シンボルの出力端子の各座標に基づいて配線ルートに用いられる配線ルートエリアを決定する。そして配線配置部23は、決定された配線ルートエリア内で接続先シンボルの出力端子に最も近い箇所を通るように配線ルートを決定する。そして配線配置部23は、(決定された配線ルートが、決定された配線ルートエリア内の配線配置済みの配線ルートと重ならないならば、当該)決定された配線ルートに配線を配置する。このとき配線配置部23は、新たに配線が配置された配線ルート(つまり新たな配線配置済みの配線ルート)の格子点の系列に対応するビットマップテーブル90内のビット列“000…000”を“111…111”に書き換える。即ち配線配置部23は、新たな配線配置済みの配線ルートをビットマップテーブル90に記録する。
本実施形態によれば、配線配置部23は、配線配置済みの配線ルートをビットマップテーブル90に記録することにより、その後、新たに配線ルートを決定した際に、当該決定された配線ルートの少なくとも一部の区間が該当する配線ルートエリア内で配線配置済みの配線ルートと重なっているかをビットマップテーブル90に基づいて判定することができる。また配線配置部23は、この判定結果に基づいて、決定された配線ルートの位置を、配線配置済みの配線ルートと重ならないように変更できる。つまり配線配置部23は、該当する配線ルートエリア内で配線配置済みの配線ルートと重ならない新たな配線ルートを決定することができる。よって本実施形態によれば、配線ルートの重複を回避して、同じ配線ルートによる重複した配線を防止することができる。また本実施形態によれば、配線配置済みの配線ルートを除く配線ルートエリア内の格子上で最適な配線ルートを順次決定して配線できるので、図面上の配線の配置が見た目にもよく、且つ最適の配線ルートで効率的に配線できる配線配置処理を実現できる。
3.3 配線配置処理の手順の詳細
3.3.1 配線配置処理における接続元シンボルの選択順序
まず、図3のフローチャートに示される配線配置処理33で適用される接続元シンボルの選択順序について、図10を参照して説明する。
図10は、配線配置処理33で接続元シンボルを選択する際の選択順序の例、つまり図4に示すように図面領域40内に配置されたシンボルSB1〜SB8から、当該シンボルSB1〜SB8の間の配線配置のための接続元シンボルを選択する順序(接続元シンボル選択順序)の例を示す。図10の例では接続元シンボルは、矢印Cで示されるように、SB8(右下のシンボル)→SB7→SB6→SB5(左下のシンボル)→SB4(右上のシンボル)→SB3→SB2→SB1(左上のシンボル)の順、つまりシンボル配置順とは逆順で選択される。シンボル配置順は、前述したように制御コードリスト132における制御コードの並び順に一致する。
今、配線配置部23が、接続元シンボルとしてシンボルSBi(図6の例ではi=5)を選択したものとする(ステップS6またはS13)。すると配線配置部23はまず、シンボルSBiの配線配置が開始されるべき入力端子(接続元入力端子)を選択する(ステップS7)。次に配線配置部23は、選択された接続元入力端子と接続されるべき出力端子を有するシンボルSBj(図6の例ではj=3)及び当該出力端子を、それぞれ接続先シンボル及び接続先出力端子として抽出する(ステップS8)。そして配線配置部23は、接続元シンボルSBiの入力端子と接続先シンボルSBjの出力端子とを配線で接続するのに用いられる配線ルートを探索し(ステップS9)、当該配線ルートに沿って、接続元シンボルSBiの入力端子から接続先シンボルSBjの出力に向かって配線する(ステップS10)。配線配置部23は、接続元シンボルに対応する接続先シンボルの抽出、及び接続元シンボルの入力端子と接続先シンボルの出力端子との配線を含む配線配置処理33を、接続元シンボルを図10に示す順序で選択しながら繰り返す。
図10に示す接続元シンボル選択順序が適用される本実施形態では、図6乃至図8に示したように、接続元シンボルSB5(i=5)の入力端子から接続先シンボルSB3(j=3)の出力端子に向かって配線する際には、既にシンボルSB6〜SB8を接続元シンボルとする配線配置が実施されている。このような場合、対象となる配線と同一線番名の配線が既に配置されているならば、当該同一線番名の配線との接続点となる中継点の探索を伴う配線配置処理が必要となる。この中継点の探索を伴う配線配置処理については後述する。
3.3.2 配線配置処理の主要な手順の詳細
次に、図3のフローチャートに示される配線配置処理33の主要な手順の詳細について、主として図11及び図27を参照して説明する。配線配置処理33の主要な手順とは、例えば図面領域40内に配置された1対のシンボル(後述する通常シンボル)の端子間に、交点マークを含まない配線を配置する処理を指す。
図11は、図5に示す制御コードリスト132に基づいて図4に示すように図面領域40内に配置されたシンボルSB1〜SB8を含むシンボル群を対象とする配線の例を示す。図11はまた、配線の線番名、配線配置処理33で適用されるシンボルのタイプ及び交点マークをも示す。図11において、図面領域40の左縁及び右縁は、対応する図面(ページ)と他の図面(ページ)との境界をなす。そこで図11(更には図12乃至図30)では、この境界が実線を用いて示されている。
図11には、例えばR0003,R0008のような線番名の配線(を示す配線ルート)で2つシンボル間が接続されている状態が示されている。また図11には、3つ以上のシンボル間が、例えばR0005,R0007のような同一線番名の配線(を示す配線ルート)で交点マークの示す接続点を介して接続されている状態も示されている。図11には更に、他図面(ページ)からの入力を示す非表示のシンボル(以下、入力シンボルと称する)と図面領域40内のシンボル(通常シンボル)との間、及び他図面(ページ)への出力を示す非表示のシンボル(以下、出力シンボルと称する)と図面領域40内のシンボルとの間が、配線(を示す配線ルート)で接続されている状態も示されている。通常シンボル、入力シンボル、出力シンボルについては後述する。
また図11に示されるシンボルSB1〜SB8には、それぞれ丸数字が表記されている。この丸数字は、シンボルSB1〜SB8が、当該シンボルSB1〜SB8の間の配線配置のための接続元シンボルとして選択される順序を表す。この丸数字によるシンボル選択順序の表記は、図12乃至図27、図29、図30にも適用される。
図27は、図11と同様の配線の例を、配線の順序と共に示す。図27において、W1〜W16は配線を示す参照符号であり、当該W1〜W16中の数値1〜16は配線の順序を表している。W1〜W16は配線ルートを示す参照符号でもある。そこで以下では、必要に応じて、配線W1〜W16または配線ルートW1〜W16と表記することがある。
図11に示すように、図面領域40に配置されたシンボルSB1〜SB8はそれぞれ複数の端子を有している。例えば、シンボルSB6(より詳細には、シンボル名がSB6のシンボルSB6)は、図11に示すように、3つの入力端子T61〜T63と、2つの出力端子T64,65とを有している。T61〜T65の第1桁の数値1〜5は端子番号を示すものとする。
配線配置部23は、複数の入力端子を有するシンボルを接続元シンボルとして選択した場合(ステップS6またはS13)、当該複数の入力端子の各々を順次選択する(ステップS7)。そして配線配置部23は、入力端子の選択の都度、当該入力端子と接続されるべき出力端子を有する接続先シンボル及び当該出力端子を抽出する(ステップS8)。
以下、上記ステップS7,S8の詳細について、先行するステップS6またはS13でシンボルSBi(図6の例ではi=5)が接続元シンボルとして選択されたものとして順に説明する。
まずステップS7(第1の手法)の詳細について説明する。
配線配置部23は、制御コードリスト132中の接続元シンボルSBiに対応する制御コード(以下、第1の制御コードと称する)から線番名(つまり、シンボルSBiの入力端子または出力端子と接続される配線の線番名)を抽出する。ここでは、m+n個の線番名X1〜Xm+nが抽出されたものとする。もし、シンボルSBiがシンボルSB5であるならば(i=5)、図5に示す制御コードリスト132の例では、線番名として、R0007,R0005及びR0004が抽出される。
次に配線配置部23は、シンボル形状テーブル133から接続元シンボルSB5のシンボル情報に含まれている端子情報を抽出する。そして配線配置部23は、接続元シンボルSBiの端子情報と抽出された線番名とに基づいて、配線配置が開始されるべき入力端子(接続元入力端子)を次のように選択する。
まず、接続元シンボルSBiの端子情報は、当該シンボルSBiが、m個の入力端子、及びn個の出力端子を有しており、各端子がいずれも特別の条件によらずに通常の配線(線番)に用いられることを示しているものとする。また、m個の入力端子の端子番号は1〜mであり、n個の出力端子の端子番号はm+1〜m+nであるものとする。この場合、配線配置部23は、端子番号1〜mの入力端子が、第1の制御コード(つまり接続元シンボルSBiに対応する制御コード)中のそれぞれ1番目の線番名X1〜m番目の線番名Xmに対応し(つまり1番目の線番名X1〜m番目の線番名Xmの示す配線と接続され)、端子番号m+1〜m+nの出力端子が、当該第1の制御コード中のそれぞれm+1番目の線番名Xm+1〜m+n番目の線番名Xm+nに対応する(つまりm+1番目の線番名Xm+1〜m+n番目の線番名Xm+nの示す配線と接続される)ものと判断する。
次に配線配置部23は、第1の制御コード中のそれぞれ1番目〜m番目の線番名とそれぞれ対応する入力端子のうちの例えば端子番号が最も大きい入力端子、つまり端子番号mの入力端子を、配線配置が開始されるべき入力端子(接続元入力端子)として選択する。このため、接続元シンボルSBiがシンボルSB5であり、当該シンボルSB5が、端子番号1の入力端子、端子番号2の入力端子及び端子番号3の出力端子の3つの端子を有しており、各端子がいずれも特別の条件によらずに通常の配線に用いられることを示しているものとするならば、配線配置部23はまず、線番名R0007,R0005及びR0004のうちのR0005に対応する端子番号2の入力端子を選択することになる。
このように本実施形態では、接続元シンボルが複数の入力端子を有している場合、端子番号が大きい入力端子から順に接続元入力端子として選択される。しかし、この配線配置が開始されるべき入力端子の選択順は必ずしも端子番号が大きい順である必要はなく、例えば、端子番号が小さい入力端子から順に選択されても、或いは入力端子の座標位置に応じて選択されても構わない。
配線配置部23は、線番名Xmに対応する入力端子を、配線配置が開始されるべき入力端子として選択すると、選択された入力端子(接続元入力端子)の図面領域40内の座標を、シンボル形状テーブル133に登録されているシンボル(接続元シンボル)SBiの端子情報及びシンボル配置テーブル134に格納されている当該シンボルSBiの位置情報に基づいて算出する。前述の入力端子Baの座標の算出についての説明から明らかなように、シンボルSBiの端子情報の示す接続元入力端子の座標は、当該シンボルSBiの予め定められた基点からの相対座標である。シンボルSBiの接続元入力端子の図面領域40内の座標(つまり絶対座標)は、上記相対座標と、上記位置情報の示す位置(つまり、シンボルSBiが配置されているシンボルエリア41の図面領域40内の位置)とから算出される。但し以下の説明では、簡略化のために、端子情報から抽出される座標が図面領域40内の座標を示すものとする場合もある。
配線配置部23は、以上のようにして配線配置が開始されるべき接続元シンボルSBiの入力端子(つまり、線番名Xmに対応する入力端子)を選択すると(ステップS7)、当該入力端子と線番名がXmの配線を介して接続されるべき出力端子を有する接続先シンボル及び当該出力端子を抽出する(ステップS8)。
以下、ステップS8(第2の手法)の詳細について説明する。
まず配線配置部23は、制御コードリスト132中の、図面領域40に配置されている接続元シンボルSBi以外のシンボル群に対応する制御コード群(つまり第1の制御コード以外の制御コード群)から、接続元シンボルSBiの接続先入力端子に接続される配線の線番名Xmと同一の線番名を検索する。ここでは、第2の制御コードから線番名Xmが検索できたものとする。この場合、配線配置部23は、第2の制御コード(つまり、検索された線番名Xmを含む第2の制御コード)中の命令語132aの示すシンボルSBjを、線番名Xmの配線で接続元シンボルSBiの入力端子と接続されるべき出力端子を有する接続先シンボルの候補として抽出する。
次に配線配置部23は、シンボル形状テーブル133から接続先シンボルの候補(シンボルSBj)のシンボル名を含むシンボル情報を検索する。そして配線配置部23は、検索されたシンボル情報中の端子情報に基づき、線番名Xmに対応する当該候補の端子が出力端子であるかを判定する。
もし、そうであるならば、配線配置部23は該当する候補(シンボルSBj)を接続先シンボルであると決定する。つまり配線配置部23は、シンボルSBjを接続先シンボルとして抽出する。また配線配置部23は、抽出した接続先シンボルの線番名Xmに対応する出力端子を接続先出力端子として抽出する。そして配線配置部23は、検索されたシンボル情報中の端子情報と、シンボル配置テーブル134に格納されている接続先シンボルSBjの位置情報とに基づき、線番名Xmに対応する(つまり線番名Xmの配線で接続されるべき)当該接続先シンボルSBjの出力端子の図面領域40内の座標を抽出する。以上の手順は、シンボルSB5が接続元シンボルとして選択された場合に、他のシンボル群からシンボルSB3を接続先シンボルとして抽出する手順と同様である。
これに対し、線番名Xmの配線に対応する、接続先シンボルの端子が出力端子でないならば、配線配置部23は、他の接続先シンボルの候補について同様の判定を行う。
このようにして配線配置部23は、接続元シンボルSBiの入力端子と線番名がXmの配線を介して接続されるべき出力端子を有する接続先シンボルSBj及び当該出力端子(つまり、線番名Xmに対応する出力端子)を抽出する(ステップS8)。このステップS8において配線配置部23は、上述したように、線番名Xmに対応する接続先シンボルSBjの出力端子の図面領域40内の座標も抽出する。
ここで、ステップS13で接続元シンボルとして選択されたシンボルSBiがシンボルSB5(i=5)であり、ステップS7で選択された入力端子が線番名R0005に対応する端子番号2の入力端子であるものとする。図5に示す制御コードリスト132から明らかなように、シンボルSB5以外で線番名R0005に対応する端子を有するシンボルは、シンボルSB3,SB6,SB8である。したがって、シンボルSB3,SB6,SB8が接続先シンボルの候補として抽出され得る。本実施形態では、シンボルSB3,SB6,SB8のうちのシンボルSB3のみが、線番名R0005に対応する出力端子を有するものとする。この場合、上記ステップS8では、接続元シンボルSB5の入力端子と線番名がR0005の配線を介して接続されるべき出力端子を有する接続先シンボルSBjとしてシンボルSB3(j=3)が抽出され、当該出力端子(つまり、線番名R0005に対応するシンボルSB3の出力端子)が接続先出力端子として抽出される。
上述したように、シンボルSBiが接続元シンボルとして選択されると共に、線番名Xmに対応する当該シンボルSBiの入力端子が接続元入力端子として選択され、しかる後に図面領域40に配置された他のシンボル群(より詳細には、線番名Xmに対応する端子を有する他のシンボル群)の中からシンボルSBjが接続先シンボルとして抽出されると共に、線番名Xmに対応する当該シンボルSBjの出力端子が接続先出力端子として抽出されたものとする。この場合、従来技術では、シンボルSBjの出力端子からシンボルSBiの入力端子まで信号の方向に配線ルートを探索し、当該配線ルートに沿ってシンボルSBjの出力端子からシンボルSBiの入力端子まで配線するのが一般的である。ここでは、接続元シンボルはシンボルSBj(第2のシンボル)であり、接続先シンボルはシンボルSBi(第1のシンボル)である。
これに対して本実施形態では、接続元シンボルはシンボルSBi(第1のシンボル)であり、接続先シンボルはシンボルSBj(第2のシンボル)である。配線配置部23は、図8においてシンボルSB5の入力端子BaからシンボルSB3の出力端子Bbに向かって配線する場合と同様に、シンボルSBiの入力端子からシンボルSBjの出力端子まで信号の方向とは逆方向に配線ルートを探索する。そして配線配置部23は、この配線ルートに沿ってシンボルSBiの入力端子からシンボルSBjの出力端子まで、線番名Xmの配線で接続する。
3.3.3 中継点の探索を伴う配線配置処理
次に、図3のフローチャートに示される配線配置処理33に含まれている中継点の探索を伴う配線配置処理について、主として図11を参照して説明する。
制御コードリスト132中に同一線番名を含む3つ以上の制御コードが存在することがある。図5に示す制御コードリスト132では、線番名R0004,R0005が、このような例に該当する。この場合、線番名R0004,R0005の配線を、図11に示すように、交点マーク“・”で表される接続点を中継点(または分岐点)C1,C2,C3として、複数配置する必要がある。つまり、中継点の探索を伴う配線配置処理が必要となる。以下、中継点の探索を伴う配線配置処理について説明する。
まず、第1及び第2の制御コード中の同一の線番名Xm(例えばXm=R0007)に基づき、当該線番名Xmの配線がシンボルSBi(例えばi=8)の入力端子からシンボルSBj(例えばj=3)の出力端子まで配置された後、配線配置部23が、制御コードリスト132から当該線番名Xmを含む第3の制御コードを検索したものとする。ここで第3の制御コード中の命令語132aは、図面領域40に配置されているシンボルSBk(例えばk=6)を示しており、当該シンボルSBkの線番名Xmの配線と接続されるべき端子が入力端子であるものとする。この場合、配線配置部23は、シンボルSBkを接続元シンボルとして抽出する。
このように、同一の線番名Xmと接続されるべき端子を有するシンボルが3つ以上存在する場合、配線配置部23は、線番名Xmの配線を、交点マーク“・”で表される接続点を中継点として2つ以上配置する必要があると判定する。このとき、シンボルSBiの入力端子からシンボルSBjの出力端子まで、線番名Xmの配線が既に配置されている。
次に配線配置部23は、シンボルSBkの入力端子と線番名Xmの配線で接続されるべき出力端子を有するシンボルを接続先シンボルとして抽出すると共に当該出力端子を接続先出力端子として抽出する。ここでは、上述のように、線番名Xmの配線でシンボルSBiの入力端子と既に接続されている出力端子を有するシンボルSBjが再び接続先シンボルとして抽出される。
シンボルSBjが接続先シンボルとして抽出されると、配線配置部23は、シンボルSBkの入力端子(接続元入力端子)と当該シンボルSBjの出力端子(接続先出力端子)とを接続するのに用いられる配線ルートエリアを探索する。次に配線配置部23は、探索された配線ルートエリア内の同一線番名Xmの配線が既に配置されている格子列上を通るように、シンボルSBkの入力端子からシンボルSBjの出力端子に至る配線ルート(より詳細には、線番名Xmの配線のための配線ルート)の探索を開始する。この配線ルートの探索において配線配置部23は、既に配置されている、シンボルSBiの入力端子から(現在の接続先シンボルである)シンボルSBjの出力端子に至る線番名Xmの配線(の配線ルート)との接続点となる、交点マーク“・”が配置されるべき中継点を探索する。つまり配線配置部23は、シンボルSBkの入力端子からシンボルSBjの出力端子に至る線番名Xmの配線の配線ルートの探索で、当該線番名Xmと同一の線番名の既に配置されている配線(の配線ルート)との接続点(交点)を中継点として探索する。
配線配置部23は、中継点を探索すると配線ルート探索を終了し、当該中継点に交点マーク“・”を配置すると共に、その時点までに探索された、接続元のシンボルSBkの入力端子から当該中継点に至る配線ルートに、線番名Xmの配線を配置する。このため交点マーク“・”は、探索された配線ルートの終端に配置されることになる。上述した中継点の探索を伴う配線配置の手法を第3の手法と称する。
以下、第3の手法で適用される、配線ルートの探索の方向及び当該配線ルートに沿う配線の方向の意義について説明する。ここでは、上述のように、シンボルSBiの入力端子からシンボルSBjの出力端子に至る線番名Xmの配線の配線ルート(以下、第1の配線ルートと称する)が探索され、当該第1の配線ルートに沿ってシンボルSBiの入力端子からシンボルSBjの出力端子まで線番名Xmの配線が配置される。その後、シンボルSBkの入力端子とシンボルSBjの出力端子とを接続するのに用いられる配線ルートエリアが探索され、この探索された配線ルートエリア内で、シンボルSBkの入力端子からシンボルSBjの出力端子に至る線番名Xmの配線の配線ルート(以下、第2の配線ルートと称する)の探索が開始される。
この配線ルート探索の方向から明らかなように、本実施形態によれば、シンボルSBkの入力端子からシンボルSBjの出力端子に至る線番名Xmの配線の第2の配線ルートの探索で、当該線番名Xmと同一の線番名の配線が既に配置されている第1の配線ルートとの接続点を中継点として探索すると同時に、シンボルSBkの入力端子から当該中継点(接続点)に至る配線ルートを探索することができ、当該中継点からシンボルSBjの出力端子までの配線ルートの探索は不要となる。しかも、シンボルSBkの入力端子から中継点に至る配線ルートは、探索された配線ルートエリアから外れることなく、つまり配線ルートエリアを変更することなく決定されるため、当該配線ルートが大きく変わることはなく、且つ当該配線ルートの終端を最適な中継点として決定できる。よって本実施形態で適用される中継点の探索を伴う配線配置処理によれば、同一線番名の配線を、接続点を中継点として複数配置する必要がある場合、当該中継点となる接続点(交点)を簡単な処理で探索でき、接続元シンボルの入力端子から当該接続点に至る配線ルートを効率的に探索できる。
これに対して従来技術では、前述したように、シンボルSBjの出力端子からシンボルSBiの入力端子に至る配線ルートが探索されて、当該配線ルートに沿って、シンボルSBjの出力端子からシンボルSBiの入力端子まで線番名Xmの配線が配置される。このため従来技術では、その後に行われるシンボルSBjの出力端子からシンボルSBkの入力端子に至る線番名Xmの配線のための配線ルートの探索において、シンボルSBjの出力端子からシンボルSBiの入力端子までに既に配置されている配線の配線ルートに沿って中継点を探索し、しかる後に当該中継点からシンボルSBiの入力端子に至る配線ルートを探索する必要がある。このため従来技術における中継点の探索を伴う配線配置処理では、本実施形態と異なり処理が複雑となり、中継点となる接続点及び配線ルートを効率的に探索することが難しい。
3.3.4 通常/入力/出力シンボル
次に、本実施形態で適用されるシンボルのタイプについて、先に挙げた図11を参照して説明する。
本実施形態において、配線(配線ルートの探索)の対象となるシンボルは、3つのタイプに分類される。第1のタイプのシンボルは、通常シンボルと呼ばれる。通常シンボルは、例えば、シンボルSB1〜SB8のように、図面領域40内のシンボルエリア41に配置されるシンボルである。つまり、通常シンボルは、回路要素を表すシンボルである。第2のタイプ及び第3のタイプのシンボルは、第1のタイプのシンボル(通常シンボル)と異なって、非回路要素を表す非表示のシンボルである。第2のタイプのシンボルは入力シンボルと呼ばれ、第3のタイプのシンボルは出力シンボルと呼ばれる。
図11において、符号ISBx,ISByで示されるシンボルは非表示の入力シンボルであり、符号OSB9,OSB10で示されるシンボルは非表示の出力シンボルである。図11の例では、入力シンボルISBx,ISByは図面領域40の左縁(つまり回路図面の左側境界)に、出力シンボルOSB9,OSB10は図面領域40の右縁(つまり回路図面の右側境界)に、それぞれ仮想的に配置される。
3.3.5 入力/出力シンボルと通常シンボルとの間を対象とする配線配置処理
次に、本実施形態で適用される、非表示の入力/出力シンボルと通常シンボルとの間を対象とする配線配置処理について、主として図3及び図11を参照して説明する。
本実施形態において配線配置部23は、通常シンボル間の配線ルートの探索及び当該配線ルートに沿った配線の配置を優先して実行する(ステップS7〜S12)。次に配線配置部23は、非表示の入力/出力シンボルと通常シンボルとの間を対象とする、図面(図面領域40)をまたがる配線を、例えば次のように行う(ステップS14)。
配線配置部23はまず、非表示の出力シンボルと通常シンボル(より詳細には、通常シンボルの出力端子)との間の配線ルートの探索及び当該配線ルートに沿った配線の配置を行う。最後に配線配置部23は、非表示の入力シンボルと通常シンボル(より詳細には、通常シンボルの入力端子)との間の配線ルートの探索及び当該配線ルートに沿った配線の配置を行う。ここでは、出力シンボルが接続元シンボルとして、入力シンボルが接続先シンボルとして、それぞれ用いられるものとする。この場合、出力シンボルと接続される出力端子を有する通常シンボルは、当該出力シンボルに対して接続先シンボルとして、入力シンボルと接続される入力端子を有する通常シンボルは、当該入力シンボルに対して接続元シンボルとして、それぞれ用いられる。
上述したよう本実施形態では、図面領域40に配置された通常シンボル間の配線のための配線配置処理33が優先して実行される。この通常シンボル間の配線が終了すると、配線配置部23は、非表示の出力シンボルを接続元シンボルとして図面領域40の右縁に配置し、当該出力シンボルと図面領域40内の通常シンボルの出力端子との間の配線のための配線配置処理を実施する。
ここで、非表示の出力シンボルOSB9と、図面領域40内の上段のシンボルエリア41に配置されたシンボル(通常シンボル)SB1〜SB4のうちのシンボルSBpの出力端子とを接続するものとする。配線配置部23は、この出力シンボルOSB9と接続されるべきシンボルSBpの出力端子を次のように抽出する。
まず配線配置部23は、シンボルSB1〜SB4のシンボル名を含む制御コードリスト132中の制御コード群から制御コードの並び順とは逆順に(つまり、x座標が大きいシンボルに対応する制御コードから順に)、線番名群を読み込む動作を開始する。今、シンボルSBpのシンボル名を含む制御コード(つまりシンボルSBpに対応する制御コード)から線番名群が読み込まれたものとする。
すると配線配置部23は、読み込まれた線番名群の中に、図面領域40に配置されている他のシンボル群に対応する制御コード群のいずれにも含まれていない線番名があるかを判定する。もし、該当する線番名があるならば、配線配置部23は、当該線番名に対応する端子がシンボルSBpの出力端子であるかを、当該シンボルSBpのシンボル情報中の端子情報に基づいて判定する。
もし、シンボルSBpの出力端子であるならば、配線配置部23は、当該シンボルSBpの出力端子(つまり、図面領域40内の他の全てのシンボルのいずれの端子とも同一線番名で対応付けられていない出力端子)を、出力シンボルOSB9と接続されるべき出力端子として抽出する。
これに対し、読み込まれた線番名群のいずれもが、上記他のシンボル群に対応する制御コード群のいずれかに含まれているならば、つまり該当する線番名がないならば、配線配置部23は、シンボルSB1〜SB4のうちのシンボルSBpの直前に配置されたシンボルに対応する制御コードから線番名群を読み込み、シンボルSBpに対応する制御コードから線番名群を読み込んだ場合と同様の処理を行う。
次に、非表示の出力シンボルOSB10と、図面領域40内の下段のシンボルエリア41に配置されたシンボルSB5〜SB8のうちのシンボルSBqの出力端子とを接続するものとする。配線配置部23は、この出力シンボルOSB10と接続されるべきシンボルSBqの出力端子を、前述した出力シンボルOSB9と接続されるべきシンボルSBpの出力端子を抽出した場合と同様に抽出する。但し、シンボルSBqは、シンボルSB5〜SB8から抽出される。
さて、シンボルSB1〜SB4,SB5〜SB8の中から、それぞれシンボルSBp,SBqの出力端子が抽出された場合、出力シンボルOSB9,OSB10は、図11に示すように、図面領域40内の上段、下段のシンボルエリア41の下側の配線エリア44(より詳細には配線エリア44の上縁)に対応する、図面領域40の右縁の位置Pa,Pbを最優先の位置として配置される。
このため、位置Pa(またはPb)を端点とする既に配置済みの配線があるならば、配線配置部23は、出力シンボルOSB9(またはOSB10)を対象とする配線配置の位置(対象位置)を、Pa(またはPb)から前述の所定間隔(2mm間隔)ずつ下方に移動する操作を、配置済みの配線が存在しなくなる位置に到達するまで、配線エリア44の垂直方向の幅の範囲で繰り返す。そして配線配置部23は、配置済みの配線が存在しない位置を対象位置として決定すると、その位置に出力シンボルOSB9(OSB10)を配置する。図11の例では、出力シンボルOSB9,OSB10は、それぞれ位置Pa,Pbに配置される。その後配線配置部23は、通常シンボル間の配線配置と同様に、出力シンボルOSB9(OSB10)とシンボルSBp(SBq)の出力端子とを接続するための最適の配線ルートエリア及び配線ルートを決めて、当該配線ルートに沿って配線を配置する。配線配置部23は、この配置された配線の座標を含む配線情報、及び配置された配線の線番名を含む線番情報を、図面バッファ及び図面管理データベース135に格納する。
上述したような、出力シンボルと通常シンボルの出力端子との間の配線のための配線配置処理で適用される手法を第4の手法と称する。なお、図11の例では、シンボルSBp,SBqは、それぞれシンボルSB1,SB8である。
非表示の入力シンボルISBx,ISByについても同様である。まず入力シンボルISBxと、図面領域40内の上段のシンボルエリア41に配置されたシンボルSB1〜SB4のうちのシンボルSBrの入力端子とを接続するものとする。配線配置部23は、この入力シンボルISBxと接続されるべきシンボルSBrの入力端子を次のように抽出する。
まず配線配置部23は、シンボルSB1〜SB4のシンボル名を含む制御コードリスト132中の制御コード群から制御コードの並び順に(つまり、x座標が小さいシンボルに対応する制御コードから順に)、線番名群を読み込む動作を開始する。今、シンボルSBrに対応する制御コードから線番名群が読み込まれたものとする。
すると配線配置部23は、読み込まれた線番名群の中に、図面領域40に配置されている他のシンボル群に対応する制御コード群のいずれにも含まれていない線番名があるかを判定する。もし、該当する線番名があるならば、配線配置部23は、当該線番名に対応する端子がシンボルSBrの入力端子であるかを、当該シンボルSBrのシンボル情報中の端子情報に基づいて判定する。
もし、シンボルSBrの入力端子であるならば、配線配置部23は、当該シンボルSBrの入力端子(つまり、図面領域40内の他の全てのシンボルのいずれの端子とも同一線番名で対応付けられていない入力端子)を、入力シンボルISBxと接続されるべき出力端子として抽出する。
これに対し、読み込まれた線番名群のいずれもが、上記他のシンボル群に対応する制御コード群のいずれかに含まれているならば、つまり該当する線番名がないならば、配線配置部23は、シンボルSB1〜SB4のうちのシンボルSBrの直前に配置されたシンボルに対応する制御コードから線番名群を読み込み、シンボルSBrに対応する制御コードから線番名群を読み込んだ場合と同様の処理を行う。
また、非表示の入力シンボルISByと、図面領域40内の下段のシンボルエリア41に配置されたシンボルSB5〜SB8のうちのシンボルSBsの出力端子とを接続するものとする。配線配置部23は、この入力シンボルISByと接続されるべきシンボルSBsの出力端子を、前述した入力シンボルISBxと接続されるべきシンボルSBrの入力端子を抽出した場合と同様に抽出する。但し、シンボルSBrは、シンボルSB5〜SB8から抽出される。
さて、シンボルSB1〜SB4,SB5〜SB8の中から、それぞれシンボルSBr,SBsの入力端子が抽出された場合、入力シンボルISBx,ISByは、図11に示すように、図面領域40内の上段、下段のシンボルエリア41の下側の配線エリア44(より詳細には配線エリア44の上縁)に対応する、図面領域40の左縁の位置Pc,Pdを最優先の位置として配置される。
そして、出力シンボルOSB9,OSB10の配置位置を決定した場合と同様の手順で、入力シンボルISBx,ISByの配置位置が決定される。図11の例では、入力シンボルISBx,ISByは、それぞれ位置Pc,Pdに配置される。その後配線配置部23は、入力シンボルISBx(ISBy)とシンボルSBr(SBs)の入力端子とを接続するための最適の配線ルートエリア及び配線ルートを決めて、当該配線ルートに沿って配線を配置する。配線配置部23は、この配置された配線の座標を含む配線情報、及び配置された配線の線番名を含む線番情報を、図面バッファ及び図面管理データベース135に格納する。
上述したような、入力シンボルと通常シンボルの入力端子との間の配線のための配線配置処理で適用される手法を第5の手法と称する。
さて、図面作成の途中での、または図面作成の完了による、回路図自動作成処理の終了に伴い、例えばユーザから図面の保存が指示された場合、その時点の図面バッファの内容が、図面管理データベース135及び対応する図面管理ファイル136に格納される。
3.3.6 配線配置処理の具体例
次に、配線配置処理の具体例について、図面領域40内に配置されたシンボル間(つまり通常シンボル間)を対象とする場合と、図面領域40の左縁/右縁に配置された非表示の入力/出力シンボルと図面領域40内に配置されたシンボルとの間を対象とする場合とに分けて、順次説明する。
3.3.6.1 配線配置処理の具体例その1
まず、通常シンボル間を対象とする配線配置処理の具体例について、主として図12乃至図20を参照して説明する。
図10を参照して説明したように、図面領域40内で配線配置処理が開始されるべきシンボル(つまり接続元シンボル)は、シンボルSB1〜SB8のうち右下のシンボルエリア41に配置されたシンボルSB8である。そこで、配線配置部23はまず、接続元シンボルとしてステップS6でシンボルSB8を選択する。そして配線配置部23は、図5に示す制御コードリスト132中の8番目の制御コードに含まれている当該シンボル(接続元シンボル)SB8の線番名と、シンボル形状テーブル133に登録されている当該シンボルSB5のシンボル情報中の端子情報とに基づき、前記第1の手法により、当該シンボルSB5の有する複数の端子の中から、配線配置が開始されるべき入力端子(つまり接続元入力端子)を選択する(ステップS7)。ここでは、シンボルSB5の複数の端子のうち線番名R0005に対応する入力端子が選択されたものとする。
次に配線配置部23は、シンボルSB8の選択された入力端子に対応する線番名R0005と同一の線番名に対応する出力端子を有するシンボルを、前記第2の手法により接続先シンボルとして抽出すると共に、当該出力端子を接続先出力端子として抽出する(ステップS8)。ここでは、シンボルSB3が出力先シンボルとして抽出され、当該シンボルSB3の複数の端子のうち線番名R0005に対応する出力端子が抽出されたものとする。
次に配線配置部23は、図7及び図8を参照して説明したのと同様の手法で、線番名R0005にそれぞれ対応する、シンボルSB8の入力端子とシンボルSB3の出力端子とを接続するのに用いられる配線ルートエリア(を構成する配線エリアの系列)を探索し、当該配線ルートエリア内を通る、シンボルSB8の入力端子からシンボルSB3の出力端子に至る線番名がR0005の配線のための、図12に示す配線ルートW1を決定する(ステップS9)。そして配線配置部23は、決定された配線ルートW1に沿って、シンボルSB8の入力端子からシンボルSB3の出力端子に向かって、線番名がR0005の配線(つまり配線W1)を配置する(ステップS10)。
次に配線配置部23は、シンボルSB8内に次に配線配置が開始されるべき他の入力端子があるかを、制御コードリスト132中の当該シンボルSB8に対応する制御コードに含まれている残りの線番名と、当該シンボルSB8の端子情報とに基づいて判定する(ステップS11)。もし、シンボルSB8内に他の入力端子があるならば(ステップS11のYes)、配線配置部23はステップS7に戻り、シンボルSB8内の次に配線配置が開始されるべき入力端子を選択する。ここでは、線番名R0004に対応する、シンボルSB8の入力端子が選択される。
次に配線配置部23は、シンボルSB8の選択された入力端子(より詳細には、最も最近に選択された入力端子)に対応する線番名R0004と同一の線番名に対応する出力端子を有するシンボルを接続先シンボルとして抽出すると共に、当該出力端子を接続先出力端子として抽出する(ステップS8)。ここでは、シンボルSB5が出力先シンボルとして抽出され、当該シンボルSB5の複数の端子のうち線番名R0004に対応する出力端子が抽出されたものとする。
次に配線配置部23は、線番名R0004にそれぞれ対応する、シンボルSB8の入力端子とシンボルSB5の出力端子とを接続するのに用いられる配線ルートエリアを探索し、当該配線ルートエリア内を通る図13に示す配線ルートW2を決定する(ステップS9)。そして配線配置部23は、決定された配線ルートW2に沿って、シンボルSB8の入力端子からシンボルSB5の出力端子に向かって、線番名がR0004の配線W2を配置する(ステップS10)。
次に配線配置部23は、シンボルSB8内に次に配線配置が開始されるべき他の入力端子があるかを再び判定する(ステップS11)。ここでは、制御コードリスト132中の当該シンボルSB8に対応する制御コードに含まれている残りの線番名D0004は、シンボルSB8の出力端子とは対応するものの、入力端子とは対応しないものとする。この場合、配線配置部23は、シンボルSB8内に次に配線配置が開始されるべき他の入力端子はないと判定し(ステップS11のNo)、ステップS12に進む。
配線配置部23はステップ12において、図面領域40に配置されたシンボル群の中に、次に配線配置が開始されるべき他のシンボルがあるかを、シンボル配置テーブル134に基づいて判定する。この例のように他のシンボルがあるならば(ステップS12のYes)、配線配置部23は、図10に示す接続元シンボルの選択順序で、つまり制御コードリスト132中の制御コードの並びに対応するシンボルの配置順とは逆順に、接続元シンボルを選択する(ステップS13)。ここでは、シンボルSB8に後続する接続元シンボルとして、シンボルSB7が選択される。
配線配置部23は、前記シンボルSB8を選択した場合と同様にして、シンボルSB7の有する複数の端子の中から、配線配置が開始されるべき入力端子を選択する(ステップS7)。ここでは、線番名R0008に対応する入力端子が選択されたものとする。
次に配線配置部23は、シンボルSB7の選択された入力端子に対応する線番名R0008と同一の線番名に対応する出力端子を有するシンボルを接続先シンボルとして抽出すると共に、当該出力端子を接続先出力端子として抽出する(ステップS8)。ここでは、シンボルSB6が出力先シンボルとして抽出され、当該シンボルSB6の複数の端子のうち線番名R0008に対応する出力端子が抽出されたものとする。
すると配線配置部23は、線番名R0008にそれぞれ対応する、シンボルSB7の入力端子とシンボルSB3の出力端子とを接続するのに用いられる配線ルートエリアを探索し、当該配線ルートエリア内を通る図14に示す配線ルートW3を決定する(ステップS9)。そして配線配置部23は、決定された配線ルートW3に沿って、シンボルSB8の入力端子からシンボルSB3の出力端子に向かって、線番名がR0008の配線W3を配置する(ステップS10)。
次に配線配置部23は、シンボルSB7を選択した場合と同様にして、当該シンボルSB7に後続する接続元シンボルとして、シンボルSB6を選択する(ステップS13)。続いて配線配置部23は、シンボルSB6の有する複数の端子の中から、配線配置が開始されるべき入力端子を選択する(ステップS7)。ここでは、線番名R0005に対応する入力端子が選択されたものとする。
次に配線配置部23は、シンボルSB6の選択された入力端子に対応する線番名R0005と同一の線番名に対応する出力端子を有するシンボルを接続先シンボルとして抽出すると共に、当該出力端子を接続先出力端子として抽出する(ステップS8)。ここでは、シンボルSB3が出力先シンボルとして再び抽出され、当該シンボルSB3の複数の端子のうち線番名R0005に対応する出力端子が再び抽出されたものとする。この場合、配線配置部23は、前記第3の手法により、中継点の探索を伴う配線配置処理を次のように実行する。
まず配線配置部23は、線番名R0005にそれぞれ対応する、シンボルSB6の入力端子とシンボルSB3の出力端子とを接続するのに用いられる配線ルートエリアを探索する(ステップS9)。このとき、線番名R0005の配線(配線ルート)として配線(配線ルート)W1が既に配置(設定)されている(図12乃至図14参照)。この場合、配線配置部23はステップS9において、探索された配線ルートエリア内の、同一線番名R0005の配線W1が配置されている格子列(つまり配線ルートW1上の格子列)上を通るように、シンボルSB6の入力端子からシンボルSB3の出力端子に至る配線ルートの探索を開始する。この配線ルートの探索において配線配置部23は、シンボルSB8の入力端子からシンボルSB3の出力端子に至る線番名R0005の配置済み配線W1(の配線ルートW1)との接続点となる、交点マーク“・”が配置されるべき、図15に示す中継点C1を探索する。すると配線配置部23は、シンボルSB6の入力端子から探索された中継点C1に至るルートを配線ルートW4として決定する。そして配線配置部23は、決定された配線ルートW4に沿って、シンボルSB6の入力端子からシンボルSB3の出力端子に向かい、当該配線ルートW4の終端(つまり、配線ルートW1と重なる位置)となる中継点C1まで、線番名がR0005の配線W4を配置する(ステップS10)。このステップS10において配線配置部23は、配線(配線ルート)W4の終端(中継点C1)に交点マーク“・”を配置する。
すると配線配置部23は、シンボルSB6内の次に配線配置が開始されるべき入力端子を選択する(ステップS7)。ここでは、線番名R0004に対応する、シンボルSB6の入力端子が選択される。
次に配線配置部23は、シンボルSB6の選択された入力端子に対応する線番名R0004と同一の線番名に対応する出力端子を有するシンボルを接続先シンボルとして抽出すると共に、当該出力端子を接続先出力端子として抽出する(ステップS8)。ここでは、シンボルSB5が出力先シンボルとして再び抽出され、当該シンボルSB5の線番名R0004に対応する出力端子が再び抽出されたものとする。この場合、配線配置部23は、前記第3の手法により、中継点の探索を伴う配線配置処理を実行する。
すると、線番名R0004にそれぞれ対応する、シンボルSB6の入力端子とシンボルSB5の出力端子とを接続するのに用いられる配線ルートエリアが探索される(ステップS9)。このステップS9では、探索された配線ルートエリア内の同一線番名R0004の配線W2が配置されている格子列上を通るように配線ルートの探索が開始され、当該配線W2(の配線ルートW2)との接続点となる、図16に示す中継点C2が探索される。配線配置部23は、シンボルSB6の入力端子から探索された中継点C2に至る配線ルートW5に沿って、シンボルSB6の入力端子から当該中継点C2まで、線番名がR0004の配線W5を配置する(ステップS10)。
次に配線配置部23は、シンボルSB6に後続する接続元シンボルとして、シンボルSB5を選択する(ステップS13)。続いて配線配置部23は、シンボルSB5の有する複数の端子の中から、配線配置が開始されるべき入力端子を選択する(ステップS7)。ここでは、線番名R0005に対応する入力端子が選択されたものとする。
次に配線配置部23は、シンボルSB5の選択された入力端子に対応する線番名R0005と同一の線番名に対応する出力端子を有するシンボルを接続先シンボルとして抽出すると共に、当該出力端子を接続先出力端子として抽出する(ステップS8)。ここでは、シンボルSB3が出力先シンボルとして再び抽出され、当該シンボルSB3の複数の端子のうち線番名R0005に対応する出力端子が再び抽出されたものとする。この場合、配線配置部23は、前記第3の手法により、中継点の探索を伴う配線配置処理を実行する。
すると、線番名R0005にそれぞれ対応する、シンボルSB5の入力端子とシンボルSB3の出力端子とを接続するのに用いられる配線ルートエリアが探索される(ステップS9)。このステップS9では、探索された配線ルートエリア内の同一線番名R0005の配線W1またはW4が配置されている格子列上を通るように配線ルートの探索が開始され、当該配線W4(の配線ルートW4)との接続点となる、図17に示す中継点C3が探索される。配線配置部23は、シンボルSB5の入力端子から探索された中継点C3に至る配線ルートW6に沿って、シンボルSB5の入力端子から当該中継点C3まで、線番名がR0005の配線W6を配置する(ステップS10)。
次に配線配置部23は、シンボルSB5内の次に配線配置が開始されるべき入力端子を選択する(ステップS7)。ここでは、線番名R0007に対応する、シンボルSB5の入力端子が選択される。
次に配線配置部23は、シンボルSB5の選択された入力端子に対応する線番名R0007と同一の線番名に対応する出力端子を有するシンボルを接続先シンボルとして抽出すると共に、当該出力端子を接続先出力端子として抽出する(ステップS8)。ここでは、シンボルSB4が出力先シンボルとして抽出され、当該シンボルSB4の線番名R0007に対応する出力端子が抽出されたものとする。
すると配線配置部23は、線番名R0007にそれぞれ対応する、シンボルSB5の入力端子とシンボルSB4の出力端子とを接続するのに用いられる配線ルートエリアを探索し、当該配線ルートエリア内を通る図18に示す配線ルートW7を決定する(ステップS9)。そして配線配置部23は、決定された配線ルートW7に沿って、シンボルSB5の入力端子からシンボルSB4の出力端子に向かって、線番名がR0007の配線W7を配置する(ステップS10)。
次に配線配置部23は、図10に示す接続元シンボルの選択順序に従い、シンボルSB5に後続する接続元シンボルとして、シンボルSB4を選択する(ステップS13)。この場合、配線配置部23は、制御コードリスト132中のシンボルSB4に対応する制御コードから線番名を抽出する。ここでは、図5から明らかなように、2つの線番名R0006,R0007が抽出される。また配線配置部23は、シンボル形状テーブル133からシンボルSB5のシンボル情報に含まれている端子情報を抽出する。配線配置部23は、抽出された線番名R0006,R0007及び端子情報に基づき、線番名R0006,R0007に対応するシンボルSB4の端子の種別を判定する。ここでは、線番名R0006に対応するシンボルSB4の端子が入力端子であると判定され、線番名R0007に対応するシンボルSB4の端子が出力端子(シンボルSB5の入力端子と配線W7で接続された出力端子)であると判定されたものとする。この場合、配線配置部23は、線番名R0006に対応するシンボルSB4の入力端子を接続元入力端子として選択する(ステップS7)
次に配線配置部23は、線番名R0006の配線でシンボルSB4の入力端子と接続されるべき、接続先シンボルの出力端子を、前記第2の手法で抽出するための処理(ステップS8)を実行する。このステップS8において配線配置部23は、制御コードリスト132中の、図面領域40に配置されているシンボルSB4以外のシンボル群に対応する制御コード群から、線番名R0006を検索する。ここでは、図5から明らかなように、線番名R0006は検索できない。
すると配線配置部23は、図面領域40に配置されているシンボル群の中に、ステップS7で選択された線番名R0006に対応するシンボルSB4の入力端子と接続されるべき出力端子を有するシンボル(つまり通常シンボル)は存在しないと判定する。このことは、線番名R0006に対応するシンボルSB4の入力端子が、当該線番名R0006の配線で入力シンボルと接続されるべきものあることを示す。この場合、配線配置部23は、図3のフローチャートでは省略されているが、ステップS13,S7での選択をキャンセルする。
そこで配線配置部23は、図10に示す接続元シンボルの選択順序に従い、シンボルSB3を接続元シンボルとして選択する(ステップS13)。配線配置部23は、シンボルSB3の有する複数の端子の中から、配線配置が開始されるべき入力端子を選択する(ステップS7)。ここでは、線番名R0004に対応する入力端子が選択されたものとする。
次に配線配置部23は、シンボルSB3の選択された入力端子に対応する線番名R0004と同一の線番名に対応する出力端子を有するシンボルを接続先シンボルとして抽出すると共に、当該出力端子を接続先出力端子として抽出する(ステップS8)。ここでは、シンボルSB5が出力先シンボルとして再び抽出され、当該シンボルSB5の複数の端子のうち線番名R0004に対応する出力端子が再び抽出されたものとする。この場合、配線配置部23は、前記第3の手法により、中継点の探索を伴う配線配置処理を実行する。
すると、線番名R0004にそれぞれ対応する、シンボルSB3の入力端子とシンボルSB5の出力端子とを接続するのに用いられる配線ルートエリアが探索される(ステップS9)。このステップS9では、探索された配線ルートエリア内の同一線番名R0004の配線W2またはW5が配置されている格子列上を通るように配線ルートの探索が開始され、当該配線W2(の配線ルートW2)との接続点となる、図19に示す中継点C2が探索される。この中継点C2は、上述したように配線W2(の配線ルートW2)と配線W5(の配線ルートW5)との接続点でもある。配線配置部23は、シンボルSB3の入力端子から探索された中継点C2に至る配線ルートW8に沿って、シンボルSB3の入力端子から当該中継点C2まで、線番名がR0004の配線W8を配置する(ステップS10)。
次に配線配置部23は、シンボルSB3内の次に配線配置が開始されるべき入力端子を選択する(ステップS7)。ここでは、線番名R0003に対応する、シンボルSB3の入力端子が選択される。
次に配線配置部23は、シンボルSB3の選択された入力端子に対応する線番名R0003と同一の線番名に対応する出力端子を有するシンボルを接続先シンボルとして抽出すると共に、当該出力端子を接続先出力端子として抽出する(ステップS8)。ここでは、シンボルSB2が出力先シンボルとして抽出され、当該シンボルSB2の線番名R0003に対応する出力端子が抽出されたものとする。
すると配線配置部23は、線番名R0003にそれぞれ対応する、シンボルSB3の入力端子とシンボルSB2の出力端子とを接続するのに用いられる配線ルートエリアを探索し、当該配線ルートエリア内を通る図20に示す配線ルートW9を決定する(ステップS9)。そして配線配置部23は、決定された配線ルートW9に沿って、シンボルSB3の入力端子からシンボルSB2の出力端子に向かって、線番名がR0003の配線W9を配置する(ステップS10)。
次に配線配置部23は、図10に示す接続元シンボルの選択順序に従い、シンボルSB3に後続する接続元シンボルとして、シンボルSB2を選択する(ステップS13)。この場合、配線配置部23は、制御コードリスト132中のシンボルSB2に対応する制御コードから線番名を抽出する。ここでは、図5から明らかなように、2つの線番名R0002,R0003が抽出される。また配線配置部23は、シンボル形状テーブル133からシンボルSB2のシンボル情報に含まれている端子情報を抽出する。配線配置部23は、抽出された線番名R0002,R0003及び端子情報に基づき、線番名R0002,R0003に対応するシンボルSB2の端子の種別を判定する。ここでは、線番名R0002に対応するシンボルSB2の端子が入力端子であると判定され、線番名R0003に対応するシンボルSB2の端子が出力端子(シンボルSB3の入力端子と配線W9で接続された出力端子)であると判定されたものとする。この場合、配線配置部23は、線番名R0002に対応するシンボルSB2の入力端子を接続元入力端子として選択する(ステップS7)
次に配線配置部23は、線番名R0002の配線でシンボルSB2の入力端子と接続されるべき、接続先シンボルの出力端子を、前記第2の手法で抽出するための処理(ステップS8)を実行する。このステップS8において配線配置部23は、制御コードリスト132中の、図面領域40に配置されているシンボルSB2以外のシンボル群に対応する制御コード群から、線番名R0002を検索する。ここでは、図5から明らかなように、線番名R0002は検索できない。
すると配線配置部23は、図面領域40に配置されているシンボル群の中に、ステップS7で選択された線番名R0002に対応するシンボルSB2の入力端子と接続されるべき出力端子を有するシンボルは(通常シンボル)存在しないと判定する。このことは、線番名R0002に対応するシンボルSB2の入力端子が、当該線番名R0002の配線で入力シンボルと接続されるべきものあることを示す。この場合、配線配置部23は、ステップS13,S7での選択をキャンセルする。
そこで配線配置部23は、図10に示す接続元シンボルの選択順序に従い、図面領域40内に最初に配置されたシンボルSB1を接続元シンボルとして選択する(ステップS13)。この場合、配線配置部23は、制御コードリスト132中のシンボルSB1に対応する制御コードから線番名を抽出する。ここでは、図5から明らかなように、2つの線番名R0001,D0001が抽出される。また配線配置部23は、シンボル形状テーブル133からシンボルSB1のシンボル情報に含まれている端子情報を抽出する。配線配置部23は、抽出された線番名R0001,D0001及び端子情報に基づき、線番名R0001,D0001に対応するシンボルSB1の端子の種別を判定する。ここでは、線番名R0001に対応するシンボルSB1の端子が入力端子であると判定され、線番名D0001に対応するシンボルSB1の端子が出力端子であると判定されたものとする。この場合、配線配置部23は、線番名R0001に対応するシンボルSB1の入力端子を接続元入力端子として選択する(ステップS7)
次に配線配置部23は、線番名R0001の配線でシンボルSB1の入力端子と接続されるべき、接続先シンボルの出力端子を、前記第2の手法で抽出するための処理(ステップS8)を実行する。このステップS8において配線配置部23は、制御コードリスト132中の、図面領域40に配置されているシンボルSB1以外のシンボル群に対応する制御コード群から、線番名R0001を検索する。ここでは、図5から明らかなように、線番名R0001は検索できない。
すると配線配置部23は、図面領域40に配置されているシンボル群の中に、ステップS7で選択された線番名R0001に対応するシンボルSB1の入力端子と接続されるべき出力端子を有するシンボル(通常シンボル)は存在しないと判定する。このことは、線番名R0001に対応するシンボルSB1の入力端子が、当該線番名R0001の配線で入力シンボルと接続されるべきものあることを示す。この場合、配線配置部23は、ステップS13,S7での選択をキャンセルする。
3.3.6.2 配線配置処理の具体例その2
次に、非表示の入力/出力シンボルと通常シンボルとの間を対象とする配線配置処理の具体例について、図21乃至図27を参照して説明する。
上述のように、接続元シンボルの選択が図面領域40内の先頭のシンボルSB1まで到達し、当該シンボルSB1を接続元シンボルとする配線配置が行われるか、或いは本実施形態のように、当該シンボルSB1を接続元シンボルとする選択がキャンセルされると、図面領域40に配置されたシンボル群の中に、次に配線配置が開始されるべき他のシンボルは存在しなくなる(ステップS12のNo)。この場合、配線配置部23は、通常シンボル間の配線ルートの探索及び当該配線ルートに沿った配線の配置のための処理が終了したとして、入力/出力シンボルと通常シンボルとの間を対象とする、図面(図面領域40)をまたがる配線を実行する(ステップS14)。
ステップS14において配線配置部23は、まず前記第4の手法により、非表示の出力シンボルと通常シンボルの出力端子(より詳細には、同一線番名により他の通常シンボルの入力端子と対応付けられていない通常シンボルの出力端子)との間の配線ルートの探索及び当該配線ルートに沿った配線の配置を開始する。本実施形態における非表示の出力シンボルと通常シンボルの出力端子との間の配線配置では、図面領域40内の上段のシンボルエリア41に配置されたシンボルSB1〜SB4が、図面領域40内の下段のシンボルエリア41に配置されたシンボルSB5〜SB8よりも優先される。つまり、y座標が大きい方のシンボルが優先される。また、シンボルSB1〜SB4,SB5〜SB8の中では、図面領域40内のより右側に配置されているシンボル、つまりx座標が大きい方のシンボルが優先される。また、複数の出力端子を有するシンボルの場合、y座標が大きい方の出力端子が優先される。
そこで配線配置部23は、図面領域40内の上段に配置されたシンボルSB1〜SB4から、その配置順(つまり、制御コードリスト132中の対応する制御コードの並び順)とは逆順に、出力シンボルの接続先となるシンボルを選択する動作を開始する。
本実施形態では、シンボルSB1〜SB4のうちシンボルSB1,SB2及びSB4が、図面領域40内の他のシンボルの端子と同一線番名で対応付けられていない端子(以下、非対応端子と称する)を有する。このことは、配線配置部23が、各シンボルSB1〜SB4に対応する制御コード中の線番名と、図面領域40内の他のシンボルに対応する制御コード中の線番名とを比較することにより検出可能である。
ここで、上記非対応端子が、シンボルSB1の線番名R0001に対応する入力端子と、シンボルSB1の線番名D0001に対応する出力端子と、シンボルSB2の線番名R0002に対応する入力端子と、シンボルSB4の線番名R0006に対応する入力端子とであるものとする。このことは、シンボルSB1,SB2及びSB4に対応する制御コード中の線番名と、当該シンボルSB1,SB2及びSB4の端子情報とから検出することができる。出力シンボルと通常シンボル(つまり、図面領域40内の上段に配置された通常シンボル)の出力端子との間の配線配置では、対象となる出力端子は、シンボルSB1の線番名D0001に対応する出力端子だけである。
この場合、配線配置部23は、線番名D0001に対応する非表示の出力シンボル(以下、第1の出力シンボルと称する)を接続元シンボルとした場合の接続先シンボルとして、シンボルSB1を抽出し、当該シンボルSB1の線番名D0001に対応する出力端子を接続先出力端子として抽出する。そして配線配置部23は、第1の出力シンボル(図11に示される出力シンボルOSB9に対応)と、線番名D0001に対応するシンボルSB1の出力端子との間の配線に用いられるべき配線ルートエリアを決定する。ここでは、シンボルSB1が配置されているシンボルエリア41にその右側で隣接する配線エリア42の部分と、図面領域40内の上段のシンボルエリア41の下側の配線エリア44(より詳細には、上段のシンボルエリア41にその下側で隣接する配線エリア44のうち、シンボルSB1が配置されているシンボルエリア41の下側の部分よりも右側の部分)とが、配線ルートエリアとして決定される。
このとき、決定された配線ルートエリアには、配置済みの配線は図20に示すように存在しない。そこで配線配置部23は、図11に示されるPaに相当する位置に第1の出力シンボルを配置して、図21に示すように、当該第1の出力シンボルと、線番名D0001に対応するシンボルSB1の出力端子との間の配線ルートW10を決定する。そして配線配置部23は、決定された配線ルートW10に沿って、第1の出力シンボルとシンボルSB1の出力端子との間に線番名がD0001の配線W10を配置する。
次に配線配置部23は、図面領域40内の下段に配置されたシンボルSB5〜SB8から、その配置順とは逆順に、出力シンボルの接続先となるシンボルを選択する。図5から明らかなように、本実施形態では、シンボルSB5〜SB8のうちシンボルSB6〜SB8が、前記非対応端子を有する。このことは、配線配置部23が、各シンボルSB5〜SB8に対応する制御コード中の線番名と、図面領域40内の他のシンボルに対応する制御コード中の線番名とを比較することにより検出可能である。
ここで、上記非対応端子が、シンボルSB6の線番名D0002に対応する出力端子と、シンボルSB7の線番名D0003に対応する出力端子と、シンボルSB8の線番名D0004に対応する入力端子とであるものとする。このことは、シンボルSB6〜SB8に対応する制御コード中の線番名と、当該シンボルSB6〜SB8の端子情報とから検出することができる。出力シンボルと通常シンボルの出力端子との間の配線配置では、対象となる出力端子は、シンボルSB6〜SB8のそれぞれ線番名D0002〜D0004に対応する出力端子である。
この場合、配線配置部23は、まず線番名D0004に対応する非表示の出力シンボル(以下、第2の出力シンボルと称する)を接続元シンボルとした場合の接続先シンボルとして、シンボルSB8を抽出し、当該シンボルSB8の線番名D0004に対応する出力端子を接続先出力端子として抽出する。そして配線配置部23は、第2の出力シンボル(図11に示される出力シンボルOSB10に対応)と、線番名D0004に対応するシンボルSB8の出力端子との間の配線に用いられるべき配線ルートエリアを決定する。ここでは、シンボルSB8が配置されているシンボルエリア41にその右側で隣接する配線エリア42の部分と、図面領域40内の下段のシンボルエリア41の下側の配線エリア44(より詳細には、下段のシンボルエリア41にその下側で隣接する配線エリア44のうち、シンボルSB8が配置されているシンボルエリア41の下側の部分よりも右側の部分)が、配線ルートエリアとして決定される。
このとき、決定された配線ルートエリアには、配置済みの配線は図21に示すように存在しない。そこで配線配置部23は、図11に示されるPbに相当する位置に第2の出力シンボルを配置して、図22に示すように、当該第2の出力シンボルと、線番名D0004に対応するシンボルSB8の出力端子との間の配線ルートW11を決定する。そして配線配置部23は、決定された配線ルートW11に沿って、第2の出力シンボルとシンボルSB8の出力端子との間に線番名がD0004の配線W11を配置する。
次に配線配置部23は、線番名D0003に対応する非表示の出力シンボル(以下、第3の出力シンボルと称する)を接続元シンボルとした場合の接続先シンボルとして、シンボルSB7を抽出し、当該シンボルSB7の線番名D0003に対応する出力端子を接続先出力端子として抽出する。そして配線配置部23は、第3の出力シンボルと、線番名D0003に対応するシンボルSB7の出力端子との間の配線に用いられるべき配線ルートエリアを決定する。ここでは、シンボルSB7が配置されているシンボルエリア41にその右側で隣接する配線エリア42の部分と、図面領域40内の下段のシンボルエリア41の下側の配線エリア44(より詳細には、下段のシンボルエリア41にその下側で隣接する配線エリア44のうち、シンボルSB7が配置されているシンボルエリア41の下側の部分よりも右側の部分)が、配線ルートエリアとして決定される。
すると配線配置部23は、第3の出力シンボルを、図面領域40内の下段のシンボルエリア41の下側の配線エリア44の上縁に対応する、図面領域40の右縁の位置(つまり最優先の位置)に配置する。このとき、決定された配線ルートエリアの上縁、つまり図面領域40内の下段のシンボルエリア41の下側の配線エリア44の上縁には、図22に示すように、配置済みの配線W11が存在する。
そこで配線配置部23は、配線W11と重ならないように、第3の出力シンボルの配置位置を前述の所定間隔だけ下方に移動する。次に配線配置部23は、図23に示すように、移動された第3の出力シンボルと、線番名D0003に対応するシンボルSB7の出力端子との間の配線ルートW12を決定する。そして配線配置部23は、決定された配線ルートW12に沿って、第3の出力シンボルとシンボルSB7の出力端子との間に線番名がD0003の配線W12を配置する。
次に配線配置部23は、線番名D0002に対応する非表示の出力シンボル(以下、第4の出力シンボルと称する)を接続元シンボルとした場合の接続先シンボルとして、シンボルSB6を抽出し、当該シンボルSB6の線番名D0002に対応する出力端子を接続先出力端子として抽出する。そして配線配置部23は、第4の出力シンボルと、線番名D0002に対応するシンボルSB7の出力端子との間の配線に用いられるべき配線ルートエリアを決定する。ここでは、シンボルSB6が配置されているシンボルエリア41にその右側で隣接する配線エリア42の部分と、図面領域40内の下段のシンボルエリア41の下側の配線エリア44(より詳細には、下段のシンボルエリア41にその下側で隣接する配線エリア44のうち、シンボルSB6が配置されているシンボルエリア41の下側の部分よりも右側の部分)が、配線ルートエリアとして決定される。
すると配線配置部23は、第4の出力シンボルを、図面領域40内の下段のシンボルエリア41の下側の配線エリア44の上縁に対応する、図面領域40の右縁の位置(つまり最優先の位置)に配置する。このとき図23に示すように、図面領域40内の下段のシンボルエリア41の下側の配線エリア44の上縁には配置済みの配線W11が存在し、当該配線W11よりも前記所定間隔だけ下方には配置済みの配線W12が存在する。
そこで配線配置部23は、配線W11,W12と重ならない位置まで、第4の出力シンボルの配置位置を前記所定間隔ずつ順次下方に移動する。次に配線配置部23は、図24に示すように、移動された第4の出力シンボルと、線番名D0002に対応するシンボルSB6の出力端子との間の配線ルートW13を決定する。そして配線配置部23は、決定された配線ルートW13に沿って、第4の出力シンボルとシンボルSB6の出力端子との間に線番名がD0002の配線W13を配置する。
以上により、ステップS14における、出力シンボルと通常シンボルとの間を対象とする、図面をまたがる配線が終了する。
すると配線配置部23は、ステップS14における、入力シンボルと通常シンボルとの間を対象とする、図面をまたがる配線を開始する。即ち配線配置部23は、前記第5の手法により、非表示の入力シンボルと通常シンボルの入力端子(より詳細には、同一線番名により他の通常シンボルの出力端子と対応付けられていない通常シンボルの入力端子)との間の配線ルートの探索及び当該配線ルートに沿った配線の配置を開始する。本実施形態における入力シンボルと通常シンボルの出力端子との間の配線配置では、図面領域40内の上段のシンボルエリア41に配置されたシンボルSB1〜SB4が、図面領域40内の下段のシンボルエリア41に配置されたシンボルSB5〜SB8よりも優先される。つまり、y座標が大きい方のシンボルが優先される。また、シンボルSB1〜SB4,SB5〜SB8の中では、図面領域40内のより左側に配置されているシンボル、つまりx座標が小さい方のシンボルが優先される。また、複数の入力端子を有するシンボルの場合、y座標が大きい方の入力端子が優先される。
そこで配線配置部23は、図面領域40内の上段に配置されたシンボルSB1〜SB4から、その配置順(つまり、制御コードリスト132中の対応する制御コードの並び順)に、入力シンボルの接続元となるシンボルを選択する動作を開始する。
前述したように本実施形態では、シンボルSB1〜SB4のうちシンボルSB1,SB2及びSB4が、非対応端子を有しており、シンボルSB1の線番名R0001に対応する入力端子と、シンボルSB1の線番名D0001に対応する出力端子と、シンボルSB2の線番名R0002に対応する入力端子と、シンボルSB4の線番名R0006に対応する入力端子とが、当該非対応端子である。したがって、入力シンボルと通常シンボルの入力端子との間の配線配置では、対象となる入力端子は、シンボルSB1,SB2,SB4のそれぞれ線番名R0001,R0002,R0006に対応する入力端子である。
この場合、配線配置部23は、まず線番名R0001に対応する非表示の入力シンボル(以下、第1の入力シンボルと称する)を接続先シンボルとする場合の接続元シンボルとして、シンボルSB1を抽出し、当該シンボルSB1の線番名R0001に対応する入力端子を接続元入力端子として抽出する。そして配線配置部23は、第1の入力シンボル(図11に示される入力シンボルISBxに対応)と、線番名R0001に対応するシンボルSB1の入力端子との間の配線に用いられるべき配線ルートエリアを決定する。ここでは、シンボルSB1が配置されているシンボルエリア41にその左側で隣接する配線エリア42の部分と、図面領域40内の上段のシンボルエリア41の下側の配線エリア44(より詳細には、上段のシンボルエリア41にその下側で隣接する配線エリア44のうち、シンボルSB1が配置されているシンボルエリア41の下側の部分よりも左側の部分)が、配線ルートエリアとして決定される。
このとき、決定された配線ルートエリアの上縁、つまり図面領域40内の上段のシンボルエリア41の下側の配線エリア44の上縁には、配置済みの配線は図24に示すように存在しない。そこで配線配置部23は、図11に示されるPcに相当する位置に第1の入力シンボルを配置して、図25に示すように、当該第1の入力シンボルと、線番名R0001に対応するシンボルSB1の入力端子との間の配線ルートW14を決定する。そして配線配置部23は、決定された配線ルートW14に沿って、第1の入力シンボルとシンボルSB1の入力端子との間に線番名がR0001の配線W14を配置する。
次に配線配置部23は、線番名R0002に対応する非表示の入力シンボル(以下、第2の入力シンボルと称する)を接続先シンボルとした場合の接続元シンボルとして、シンボルSB2を抽出し、当該シンボルSB2の線番名R0002に対応する入力端子を接続元入力端子として抽出する。そして配線配置部23は、第2の入力シンボルと、線番名R0002に対応するシンボルSB2の入力端子との間の配線に用いられるべき配線ルートエリアを決定する。ここでは、シンボルSB2が配置されているシンボルエリア41にその左側で隣接する配線エリア42の部分と、図面領域40内の上段のシンボルエリア41の下側の配線エリア44(より詳細には、上段のシンボルエリア41にその下側で隣接する配線エリア44のうち、シンボルSB2が配置されているシンボルエリア41の下側の部分よりも左側の部分)が、配線ルートエリアとして決定される。
すると配線配置部23は、第2の入力シンボルを、図面領域40内の上段のシンボルエリア41の下側の配線エリア44の上縁に対応する、図面領域40の左縁の位置(つまり最優先の位置)に配置する。このとき、決定された配線ルートエリアの上縁、つまり図面領域40内の上段のシンボルエリア41の下側の配線エリア44の上縁には、図25に示すように、配置済みの配線W14が存在する。
そこで配線配置部23は、配線W14と重ならないように、第2の入力シンボルの配置位置を前述の所定間隔だけ下方に移動する。次に配線配置部23は、図26に示すように、移動された第2の入力シンボルと、線番名R0002に対応するシンボルSB2の入力端子との間の配線ルートW15を決定する。そして配線配置部23は、決定された配線ルートW15に沿って、第2の入力シンボルとシンボルSB2の入力端子との間に線番名がR0002の配線W15を配置する。
次に配線配置部23は、線番名R0006に対応する非表示の入力シンボル(以下、第3の入力シンボルと称する)を接続先シンボルとした場合の接続元シンボルとして、シンボルSB4を抽出し、当該シンボルSB4の線番名R0006に対応する入力端子を接続元入力端子として抽出する。そして配線配置部23は、第3の入力シンボルと、線番名R0006に対応するシンボルSB4の入力端子との間の配線に用いられるべき配線ルートエリアを決定する。ここでは、シンボルSB4が配置されているシンボルエリア41にその左側で隣接する配線エリア42の部分と、図面領域40内の上段のシンボルエリア41の下側の配線エリア44(より詳細には、上段のシンボルエリア41にその下側で隣接する配線エリア44のうち、シンボルSB4が配置されているシンボルエリア41の下側の部分よりも左側の部分)が、配線ルートエリアとして決定される。
すると配線配置部23は、第3の入力シンボルを、図面領域40内の上段のシンボルエリア41の下側の配線エリア44の上縁に対応する、図面領域40の左縁の位置に配置する。このとき図26に示すように、図面領域40内の上段のシンボルエリア41の下側の配線エリア44の上縁には配置済みの配線W14が存在し、当該配線W14よりも前記所定間隔だけ下方には配置済みの配線W15が存在する。
そこで配線配置部23は、配線W14,W15と重ならない位置まで、第3の入力シンボルの配置位置を前記所定間隔ずつ順次下方に移動する。次に配線配置部23は、図27に示すように、移動された第3の入力シンボルと、線番名R0006に対応するシンボルSB4の入力端子との間の配線ルートW16を決定する。そして配線配置部23は、決定された配線ルートW16に沿って、第3の入力シンボルとシンボルSB4の入力端子との間に線番名がR0006の配線W16を配置する。
以上により、ステップS14における、入力シンボルと通常シンボルとの間を対象とする、図面をまたがる配線が終了する。これにより、配線配置処理33が終了する。
図28は、配線配置処理33が終了した際のシンボル間の配線配置の状態を示す。ここでは、配線を示す矢印の向きは信号の方向を表している。
本実施形態で適用される配線配置処理33によれば、図面領域40内に配置された通常シンボル間、次に通常シンボルと図面領域40右縁の出力シンボルとの間、最後に通常シンボルと図面領域40左縁の入力シンボルとの間という順序で配線が行われる。つまり、シンボル間の配線配置が、図面領域40(図面)の左右の縁より内側の通常シンボル間から、図面領域40の左縁側、そして図面領域40の右端側というように、分散して行われる。このため、余分な配線を作ることなく効率的に配線することが可能である。
4.調整処理
4.1 調整処理の手順
次に、図3のフローチャートに示される調整処理34の手順について説明する。図3のフローチャートでは、作図の簡略化のために、配線配置部23による図面をまたがる配線の処理(ステップS14)の後に、調整処理34が実行されるように表されている。この調整処理34において調整部24は、必要な配線が配線エリア内に収まるかを判定する(ステップS15)。本実施形態では、配線ルートエリアに、予め設定された許容される数の配線、つまり配線可能数(格子数)に一致する数の配線が既に配置されている場合、当該配線ルートエリアに新たな配線を配置することはできない。このような場合、対象となるシンボル(シンボル間)は未配線の状態となる。調整部24は、このような未配線のシンボル(シンボル間)を検出することにより、上記ステップS15の判定を行う。
もし、必要な配線が配線エリア内に収まるならば(ステップS15のYes)、調整部24は調整処理34を終了する。勿論、無用な処理が行われるのを防止するために、ステップS15の判定が、図面をまたがる配線の処理(ステップS14)において出力シンボルと通常シンボルとの間または入力シンボルと通常シンボルとの間の配線のための処理が実行される毎に行われる構成であっても構わない。この構成では、該当する配線が配線エリア内に収まるならば(ステップS15のYes)、ステップS14に戻って、後続の出力シンボルと通常シンボルとの間または入力シンボルと通常シンボルとの間の配線のための処理が実行されることになる。
一方、必要な配線が配線エリア内に収まらないならば(ステップS15のNo)、調整部24は作成中の図面データをクリアする(ステップS16)。つまり配線配置部23は、図面バッファの内容、シンボル配置テーブル134の内容、図面管理データベース135中の該当する図面のデータ、対応する図面管理ファイル136の内容及びビットマップテーブル90の内容をクリアする。
次に調整部24は、現在設定されている、1図面領域に配置されるべきシンボル数(シンボル数設定値)を、所定数、例えば1つだけ削減する(ステップS17)。ここでは、シンボル数設定値が、8(N×M=2×4=8)から1つ削減されて、7となったものとする。
調整部24は、シンボル数設定値(設定数)を削減すると(ステップS17)、シンボル・配線エリア設定部21に制御を渡す。すると、シンボル・配線エリア設定部21は、削減されたシンボル数設定値に対応する新たな図面領域40を用意し、当該図面領域40上に当該削減された数のシンボルを配置するのに必要なシンボルエリア41を配置する(ステップS2)。但し本実施形態では、シンボル数設定値が削減(ここでは、8から7に削減)されても、図面領域40のサイズ及びシンボルエリア41の数は、シンボル数設定値が8(N×M=2×4=8)であるときと変わらないものとする。シンボル数設定値が削減される前と異なるのは、図面領域40に実際に配置されるシンボルの数が削減(ここでは、8から7に削減)される点である。
なお、M=4の本実施形態において、シンボル数設定値が4まで削減されたならば、図面領域40のサイズが変更されて、4(N×M=1×4=4)個のシンボルエリア41が配置される構成を適用しても構わない。また、シンボル数設定値が6に削減された段階で、図面領域40のサイズが変更されて、6(N×M=2×3=6)個のシンボルエリア41が配置される構成を適用しても構わない。
ステップS2以降の処理、つまりシンボル配置処理32及び配線配置処理等は、図面領域40に配置されるシンボルの数が8から7に変更される点を除き、前述したシンボル数設定値が8の場合と同様である。
このように本実施形態では、配線数が多いために、配線ルートエリア内に収まらない配線がある場合、図面領域40内に配置されるシンボル数を1つ減らしてからシンボル配置及び配線配置が再度実行される。
4.2 調整処理の具体例
次に調整処理34の具体例について、図29及び図30を参照して説明する。
図29は、配線数が多いために、必要な配線が配線ルートエリア内に収まらない例を示す。図29には、図6に示した8つのシンボルSB1〜SB8に加えて、更に3つのシンボルSB9〜SB11が図面領域40に配置された後に、配線配置処理33が行われた例が示されている。この場合、現在設定されている1図面領域に配置されるべきシンボル数(シンボル数設定値)は11であり、図29に示す図面領域40には、図6に示した図面領域40と異なり、12(N×M=3×4=12)個のシンボルエリア41が配置されているものとする。
図29において、シンボルSB1〜SB11が、当該シンボルSB1〜SB11間の配線配置のために接続元シンボルとして選択される順序は、当該シンボルSB1〜SB11にそれぞれ付された丸数字で示されるように。図10と同様にシンボルの配置順とは逆順である。
ここで、通常シンボル間の配線のための配線配置処理が行われた後、図面をまたぐ配線配置処理(ステップS14)が行われたものとする。この図面をまたぐ配線配置処理では、出力シンボルと通常シンボルとの間の配線配置が行われ、しかる後に入力シンボルと通常シンボルとの間の配線配置が行われる。そして、入力シンボルと通常シンボルとの間の配線配置が進み、シンボルSB10の4つの入力端子と4つの入力シンボルとの間の配線配置が順に行われるものとする。
図29は、シンボルSB10の2つの入力端子と対応する2つの入力シンボルとの間の配線配置が終了した後、シンボルSB10の後続の入力端子(つまり3番目の入力端子)と対応する入力シンボルとの間の配線のための処理が開始された際の状態を示している。このとき、シンボルSB10の3番目の入力端子(を含む4つの入力端子)と対応する入力シンボル(を含む4つの入力シンボル)とを接続する配線の配置に用いられる配線ルートエリアを構成する配線エリアの系列のうち、当該シンボルSB10とシンボルSB9との間の配線エリア42には、図29に示すように既に6つの配線が配置されている。この配線数6は、配線エリア42の配線可能数に一致する。この場合、シンボルSB10の3番目の入力端子(図29において矢印Dで示される入力端子)と対応する入力シンボルとの間の配線を配線エリア42内に配置することはできない(ステップS12のNo)。
そこで調整部24は、作成中の図面データをクリアし(ステップS16)、1図面領域に配置されるべきシンボル数の設定値(シンボル数設定値)を現在の11から10に1だけ削減する(ステップS17)。この状態で、シンボル配置処理32及び配線配置処理33が再開される。
図30は、再開されたシンボル配置処理32及び配線配置処理33により、全ての配線が正常に配置された状態を示す。図30の例では、シンボル数設定値が11から10に削減された結果、図29と異なり、図面領域40からシンボルSB11が外されている。
このように、シンボルSB11が外された結果、シンボルSB10の2つの入力端子と対応する2つの入力シンボルとの間の配線配置が終了した段階で、当該シンボルSB10とシンボルSB9との間の配線エリア42に配置されている配線の数は、図29の例における6から2に減少している。このため図30に示すように、シンボルSB10の残りの2つの入力端子と2つの入力シンボルとを接続するための配線を、当該シンボルSB10とシンボルSB9との間の配線エリア42を含む配線ルートエリア内に配置することができる。
図面領域40から外されたシンボルSB11は、新たに用意される別の図面領域の先頭(左上)のシンボルエリア41に配置される(ステップS2,S3)。
本実施形態によれば、制御コードリスト132中の制御コード数が多く、したがって多枚数の図面を作成する必要がある場合に、1図面に配置されるシンボル数が多いために必要な配線ができなくなったとしても、図面作成が、1図面に配置されるシンボル数を減らしながら自動で再開される。このため、多枚数の図面に対して最適のシンボル数で図面の区切りを検出して、図面を自動で作成することができる。つまり本実施形態によれば、最適なシンボル数で図面を区切ることにより、多枚数の図面を効率的に自動作成できる。
以上説明した少なくとも1つの実施形態によれば、多数のシンボルを簡単な手順で1図面内に見栄え良く配置できる回路図自動作成方法を提供することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。