(57)【要約】  【課題】  領域を拡大するとこれにあわせて部品を自動複製する。  【解決手段】  入力手段３にドラッグ命令が与えられると、演算手段５は、前記配置した登録部品データの矩形基準領域を、画面の上下方向およびまたは左右方向にドラッグさせた拡大矩形領域を決定し、この拡大矩形領域に登録部品が重複することなく行列複製配置可能な最大配置状態を演算する。画面制御手段７は、前記演算結果に基づき、前記行列複製した登録部品を前記表示手段９に表示させる。  【選択図】  図１
2006331288.tif 000002
【特許請求の範囲】
【請求項１】
Ａ）矩形の基準領域を有する登録部品データを画面上に配置してレイアウト表示を行うレイアウトシミュレーションプログラムであって、
Ｂ）以下のb1)〜b5)処理を実行すること、
b1)ユーザの指示に基づいて前記登録部品データが画面上に配置されると、前記矩形の基準領域を表示し、
b2)前記矩形の基準領域が画面の上下方向およびまたは左右方向にドラッグされると、前記ドラッグ後の矩形領域を拡大矩形領域として決定し、
b3)前記拡大矩形領域について、前記登録部品が重複することなく行列複製配置可能な最大配置状態を求めて、これを前記画面上に表示し、
b4)前記拡大矩形領域を特定する拡大矩形領域決定データ、および行列複製した登録部品の前記最大配置状態を特定する複製部品配置データを対応づけて記憶し、
b5)前記拡大矩形領域が画面の上下方向およびまたは左右方向にドラッグされると、前記ドラッグ後の矩形領域を拡大矩形領域として、前記b3),b4)の処理を実行する、
を特徴とするレイアウトシミュレーションプログラム。
【請求項２】
請求項１のレイアウトシミュレーションプログラムにおいて、
前記登録部品データは、前記画面の上下方向または左右方向のいずれかまたは双方に、行列複製を行わない非複製部が定義されており、
前記非複製部につき行列複製を行わない方向には、前記非複製部を除いた部分を複製し、前記非複製部および複製された部分を前記非複製部につき行列複製を行う方向に複製することにより、前記行列複製を実行すること、
を特徴とするもの。
【請求項３】
Ａ）所定の基準領域を有する登録部品データを画面上に配置してレイアウト表示を行うレイアウトシミュレーションプログラムであって、
Ｂ）以下のb1)〜b4)処理を実行すること、
b1)ユーザの指示に基づいて、前記登録部品データが画面上に配置されると、前記所定の基準領域を表示し、
b2)前記基準領域が拡縮変形されると、前記変形後の領域を拡縮領域として決定し、
b3)前記拡縮領域について、前記登録部品が重複することなく行列複製配置可能な最大配置状態を求め、
b4)前記基準領域の配置位置、前記矩形領域を特定する拡縮領域決定データ、および行列複製した登録部品の前記最大配置状態を特定する複製部品配置データを対応づけて記憶する、
を特徴とするレイアウトシミュレーションプログラム。
【請求項４】
請求項３のレイアウトシミュレーションプログラムにおいて、
前記拡縮領域がさらに拡縮変形されると、前記拡縮変形後の領域を拡縮領域として、前記b3),b4)の処理を実行すること、
を特徴とするもの。
【請求項５】
請求項３のレイアウトシミュレーションプログラムにおいて、
前記登録部品データには、表示状態を変更できない非変更部と、前記非変更部に対して、位置または回転関係を変更できる変更可能部で構成されており、
前記拡縮領域内のいずれかの登録部品データについて、その変更可能部の位置または回転関係が変更されると、他の登録部品データについても、同様に変更可能部の位置または回転関係を変更させること、
を特徴とするもの。
【請求項６】
請求項３のレイアウトシミュレーションプログラムにおいて、
前記登録部品データには、隣接する登録部品との間で所定間隔を設けて行列複製するための間隔データが定義されており、
前記間隔を考慮して、前記登録部品が重複することなく行列複製配置可能な最大配置状態を求め、
前記最大配置状態に応じて画面上に配置し、
操作者によって、一部の登録部品の配置位置が変更されると、前記間隔データが変更されたと判断して、前記最大配置状態を再演算すること、
を特徴とするもの。
【請求項７】
請求項６のレイアウトシミュレーションプログラムにおいて、
操作者によって、一部の登録部品の配置位置が変更されると、前記間隔データの変更された分だけ前記拡縮領域が変更されたと判断して、前記最大配置状態を再演算すること、
を特徴とするもの。
【請求項８】
請求項１〜請求項７のいずれかのレイアウトシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項９】
請求項１〜請求項７のいずれかのレイアウトシミュレーションプログラムが記録されたコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、レイアウトシミュレーション方法に関し、特に、登録部品の複製レイアウトに関する。
【背景技術】
【０００２】
出願人は、オフィスにおける机や椅子を部品登録しておき、これをコンピュータの画面上でシミュレーション配置するソフトウェア「３Ｄオフィスデザイナー」（商標）を開発して販売している。かかるソフトウェアの使用方法は、非特許文献１に開示されている。
【０００３】
【非特許文献１】「３Ｄオフィスデザイナー 快適オフィスの作り方 」株式会社アスキー、ISBNコード：ISBN4-7561-4362-8  かかるソフトウェアの使用方法を簡単に説明すると、オフィスにおける机や椅子などが部品として予め登録されており、これらを所定領域内にドラッグアンドドロップすることにより、任意の位置にシミュレーション配置させることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、オフィスにおける机や椅子などについては、同じものを所定数繰り返し配置する場合がある。このような場合には、部品登録したものを操作者が手入力で、所定数複製する必要があった。
【０００５】
かかる問題は、オフィスにおける机や椅子などだけでなく、部品登録した図形を所定領域内に配置する場合には同様に問題となる。
【０００６】
この発明は、部品登録した部品図形を複数配置する場合の煩雑性を防止できるレイアウトシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１）本発明にかかるレイアウトシミュレーションプログラムは、Ａ）矩形の基準領域を有する登録部品データを画面上に配置してレイアウト表示を行うレイアウトシミュレーションプログラムであって、Ｂ）以下のb1)〜b5)処理を実行する。b1)ユーザの指示に基づいて前記登録部品データが画面上に配置されると、前記矩形の基準領域を表示し、b2)前記矩形の基準領域が画面の上下方向およびまたは左右方向にドラッグされると、前記ドラッグ後の矩形領域を拡大矩形領域として決定し、b3)前記拡大矩形領域について、前記登録部品が重複することなく行列複製配置可能な最大配置状態を求めて、これを前記画面上に表示し、b4)前記拡大矩形領域を特定する拡大矩形領域決定データ、および行列複製した登録部品の前記最大配置状態を特定する複製部品配置データを対応づけて記憶し、b5)前記拡大矩形領域が画面の上下方向およびまたは左右方向にドラッグされると、前記ドラッグ後の矩形領域を拡大矩形領域として、前記b3),b4)の処理を実行する。したがって、前記拡大矩形領域内に、前記登録部品を自動配置することができる。
【０００８】
２）本発明にかかるレイアウトシミュレーションプログラムは、前記登録部品データは、前記画面の上下方向または左右方向のいずれかまたは双方に、行列複製を行わない非複製部が定義されており、前記非複製部につき行列複製を行わない方向には、前記非複製部を除いた部分を複製し、前記非複製部および複製された部分を、前記非複製部につき行列複製を行う方向に複製することにより、前記行列複製を実行する。したがって、前記非複製部を除いた部分だけを複製することができる。
【０００９】
３）本発明にかかるレイアウトシミュレーションプログラムは、Ａ）所定の基準領域を有する登録部品データを画面上に配置してレイアウト表示を行うレイアウトシミュレーションプログラムであって、Ｂ）以下のb1)〜b4)処理を実行する。b1)ユーザの指示に基づいて、前記登録部品データが画面上に配置されると、前記所定の基準領域を表示し、b2)前記基準領域が拡縮変形されると、前記変形後の領域を拡縮領域として決定し、b3)前記拡縮領域について、前記登録部品が重複することなく行列複製配置可能な最大配置状態を求め、b4)前記基準領域の配置位置、前記矩形領域を特定する拡縮領域決定データ、および行列複製した登録部品の前記最大配置状態を特定する複製部品配置データを対応づけて記憶する。したがって、前記拡縮矩形領域内に、前記登録部品を自動配置することができる。
【００１０】
４）本発明にかかるレイアウトシミュレーションプログラムは、前記拡縮領域がさらに拡縮変形されると、前記拡縮変形後の領域を拡縮領域として、前記b3),b4)の処理を実行する。したがって、繰り返し前記自動配置が可能となる。
【００１１】
５）本発明にかかるレイアウトシミュレーションプログラムは、前記登録部品データには、表示状態を変更できない非変更部と、前記非変更部に対して、位置または回転関係を変更できる変更可能部で構成されており、前記拡縮領域内のいずれかの登録部品データについて、その変更可能部の位置または回転関係が変更されると、他の登録部品データについても、同様に変更可能部の位置または回転関係が変更される。したがって、変更可能部について一部変更すると、自動複製した登録部品についても同様に変更される。
【００１２】
６）本発明にかかるレイアウトシミュレーションプログラムは、前記登録部品データには、隣接する登録部品との間で所定間隔を設けて行列複製するための間隔が定義されており、前記間隔を考慮して、前記登録部品が重複することなく行列複製配置可能な最大配置状態を求め、前記最大配置状態に応じて画面上に配置し、操作者によって、一部の登録部品の配置位置が変更されると、前記間隔データが変更されたと判断して、前記最大配置状態を再演算する。したがって、配置後の一部の登録部品を移動させるだけで、他の登録部品を連動移動させることができる。
【００１３】
７）本発明にかかるレイアウトシミュレーションプログラムは、操作者によって、一部の登録部品の配置位置が変更されると、前記間隔データの変更された分だけ前記拡縮領域が変更されたと判断して、前記最大配置状態を再演算する。したがって、拡縮領域との不一致が無くなる。
【００１４】
なお、本明細書において「行列複製配置」とは、拡縮領域に対して、第１の方向と、第２の方向のいずれか又は双方に、拡縮領域に可能な個数だけ配置することをいい、実施形態では矩形について縦横方向に複製することに該当するが、第１の方向と第２の方向の関係が決まっていれば、これらが直行する場合に限られず、所定の角度を構成する場合を含む。例えば、平行四辺形の拡縮領域であってもよい。また、円の円周方向と放射方向のような関係であってもよい。「拡縮」とは、下記の実施形態では拡大する場合について説明するが、縮小される場合も含む。縮小とは、１＊１で構成されていた島を、３＊３に拡大したあと、２＊２に縮小する場合はもちろん、実施形態の図６Ｃに示すように２＊２で島として登録した場合に、これを１＊２や１＊１に縮小する場合を含む。
【発明を実施するための最良の形態】
【００１５】
本発明の一実施形態を図面に基づいて説明する。
【００１６】
図１に示すレイアウトシミュレーション装置１は、矩形の基準領域を有する登録部品データを画面上に配置してレイアウト表示を行うレイアウトシミュレーション装置であり、ユーザからの命令が入力される入力手段３、与えられた命令に基づいて、各種の演算処理を行う演算手段５，演算結果に基づいて画面の制御を行う画面制御手段７を備えている。
【００１７】
入力手段３には、ユーザから配置命令または、ドラッグ命令が与えられる。演算手段５は、前記配置命令を受けると、前記登録部品データの画面上の配置位置を決定する。画面制御手段７は、決定された配置位置に前記登録部品が表示されるように、表示手段９に表示命令を与える。表示手段９は、これを表示する。これにより、画面上の所望の位置に前記登録部品データが配置される。
【００１８】
入力手段３にドラッグ命令が与えられると、演算手段５は、前記配置した登録部品データの矩形基準領域を、画面の上下方向およびまたは左右方向にドラッグさせた前記ドラッグ後の矩形領域を拡縮矩形領域として決定する。さらに、決定した拡縮矩形領域に前記登録部品が重複することなく行列複製配置可能な最大配置状態を演算する。前記拡縮矩形領域を特定する拡縮矩形領域決定データ、および行列複製した登録部品の前記最大配置状態を特定する複製部品配置データは、記憶手段６に記憶される。画面制御手段７は、前記演算結果に基づき、前記行列複製した登録部品を前記表示手段９に表示させる。
【００１９】
なお、演算手段５は、入力手段３から、前記拡縮矩形領域について再度、画面の上下方向およびまたは左右方向に変形されると、前記変形後の矩形領域を拡縮矩形領域として、前記演算処理を実行する。
【００２０】
２．ハードウェア構成
図１に示すレイアウトシミュレーション装置１のハードウェア構成について、図２を用いて説明する。図２は、ＣＰＵを用いて構成したハードウェア構成の一例である。
【００２１】
レイアウトシミュレーション装置１は、ＣＰＵ２３、メモリ２７、ハードディスク２６、モニタ３０、ＣＤＤ（ＣＤ−ＲＯＭドライブ）２５、入力デバイス２８、およびバスライン２９を備えている。ＣＰＵ２３は、ハードディスク２６に記憶された各プログラムにしたがいバスライン２９を介して、各部を制御する。
【００２２】
ハードディスク２６は、オペレーティングシステムプログラム２６ｏ（以下ＯＳと略す）、レイアウトプログラム２６pを記憶しており、マスタデータ記憶部２６n,図面データ記憶部２６dを有する。
【００２３】
オペレーティングシステムプログラム（ＯＳ）２６ｏとして、本実施形態においては、マイクロソフト社のWindowsＸＰ（商標）を採用したが、これに限定されるものではない。
【００２４】
なお、上記プログラムは、ＣＤＤ２５を介して、プログラムが記憶されたＣＤ−ＲＯＭ２５ａから読み出されてハードディスク２６にインストールされたものである。なお、ＣＤ−ＲＯＭ以外に、フレキシブルディスク（ＦＤ）、ＩＣカード等のプログラムをコンピュータ可読の記録媒体から、ハードディスクにインストールさせるようにしてもよい。さらに、通信回線を用いてダウンロードするようにしてもよい。
【００２５】
本実施形態においては、プログラムをＣＤ−ＲＯＭからハードディスク２６にインストールさせることにより、ＣＤ−ＲＯＭに記憶させたプログラムを間接的にコンピュータに実行させるようにしている。しかし、これに限定されることなく、ＣＤ−ＲＯＭに記憶させたプログラムをＣＤＤ２５から直接的に実行するようにしてもよい。なお、コンピュータによって、実行可能なプログラムとしては、そのままインストールするだけで直接実行可能なものはもちろん、一旦他の形態等に変換が必要なもの（例えば、データ圧縮されているものを、解凍する等）、さらには、他のモジュール部分と組合して実行可能なものも含む。
【００２６】
マスタデータ記憶部２６nには、１又は２以上の島マスタデータ、およびパーツ情報マスタデータが記憶されている。島マスター１００のデータ構造について図３を用いて説明する。島マスター１００は、表示領域データ４１、名前４２、サムネイル画像４３，および当該島マスターを構成するパーツ情報４５，４７，４９で構成されている。表示領域４１には、スパン(X,Y)、境界線位置（上下左右）、隙間（上下左右）、およびはみ出し（上下左右）を記憶する。スパン(X,Y)、境界線位置（上下左右）、隙間（上下左右）、およびはみ出し（上下左右）について図４を用いて説明する。図３のスパン（X,Y)とは、当該島領域のＸ方向およびＹ方向における最大領域であり、図４におけるXsp,Yspが該当する。スパンは後述する拡大領域が指定された場合に、縦横方向の複製数を決定するのに用いられる。境界線位置（上下左右）は、島領域の中央を相対原点とした場合の境界線の座標である。これはスパンが指定されると自動的に演算することができる。隙間（上下左右）は、島マスターを後述する行列複製する場合に、隣接する島間の距離を決めるパラメータである。はみ出し（上下左右）は、後述する繰り返しを行わない部分を決定するパラメータである。図４においては、はみ出しが存在せず、図３では、はみ出し（上下左右）はそれぞれ０となっている。なお、はみ出しが存在する場合の処理については後述する。サムネイル画像とは、後述する一覧表示するときに使用する画像である。また、パーツ情報とは、当該島マスターを構成する部品の情報であり、各パーツについて、パーツ詳細データ（部品名、大きさ等）、配置情報（配置位置、尺度、配置角度）および繰り返し属性で構成されている。
【００２７】
パーツ詳細データのデータ構造を図５に示す。図５ＡはテーブルＴ１、図５ＢはチェアＣ１のパーツ詳細データである。パーツ「テーブルＴ１」は、品名「テーブルw１８００＊w６００」、幅「１８００」、奥行き「６００」、高さ「７００」が規定されている。パーツ「チェアＣ１」として、品名「肘なしチェア」、幅「５０５」、奥行き「５９０」、高さ「８５０」が規定されている。
【００２８】
図３に示す各パーツの配置情報４５について説明する。配置位置とは、各パーツの島マスターの相対座標における配置位置である。テーブルＴ１（パーツ情報１）は図３では図形４１が該当するが、図形４１の配置位置は島マスタの原点に対してx=-900,Y=125,=0に配置されている。なお、各パーツの原点は当該パーツの図形の左下である。すなわち、パーツ１の左下角が、島マスターの相対原点においていずれに存在するかが記載されている。他のパーツについても同様である。配置角度とは配置原点を中心に回転させた場合について規定する。この場合、チェアＣ１は１８０度回転して配置されている。なお、この例では、パーツ１が図４の図形４１、パーツ２が図形４２，パーツ３が図形４３に該当する。
【００２９】
つぎに、繰り返し属性について説明する。繰り返し属性としては、以下の９通りがある。０：当該パーツが縦横どちらも複製可能、１：当該パーツが左上だけに配置、２：当該パーツが横方向にのみ複製可能、３：当該パーツが右上だけに配置、４：当該パーツが縦方向に複製可能、５：当該パーツが縦方向に複製可能、６：当該パーツが左下だけに配置、７：当該パーツが横方向に複製可能、８：当該パーツが右下だけに配置。かかる配置属性については後述する。
【００３０】
なお、パーツ２とパーツ３は同じパーツであるので、パーツ情報２、パーツ情報３は、ともにチェアとなっている。
【００３１】
本実施形態においては、予め島マスタデータが登録されている場合について説明したが、ユーザが所望の図形を島マスターとして登録する場合には、画面上に複数のパーツを呼び出して配置し、島マスター登録命令が与えられると、名前、スパン、隙間（上下左右）をユーザが指定し、これによって境界線位置などのデータを演算して記憶するようにすればよい。
【００３２】
３．フローチャート
レイアウトプログラム２６pによる処理について説明する。以下では、第１の実施態様として、図６Ａ に示す画像をx=2500,y=-735に配置した後、点６１を入力デバイスで点７１（図６Ｂ参照）にドラッグし、これにより、図６Ｃに示す領域６５に、島「セミナールーム」が複製可能な個数、複製される場合について説明する。
【００３３】
３．１  配置処理
まず、操作者は、図７に示す一覧表示部５１に表示された島「セミナールーム」のサムネイル画像を入力デバイスで配置部５３にドラッグアンドドロップする。かかる配置により、図８、図９に示すデータが図面データ記憶部２６dに記憶される。
【００３４】
以下、説明する。図８Ａはインデックス部である。インデックス部には、「配置した図形情報番号」、「パーツ情報マスター」、「島マスター」が記憶される。この場合、配置した図形情報として、配置した図形情報１〜４が記憶されている。１番目の配置した図形情報の値は「島１」である。島１は、図８Ｂに示すようなデータ構造のデータである。項目「島マスター」は「島マスター１００」である。島マスター１００のデータは、図３に示すように、その配置位置、配置角度、繰り返し数、グループ番号、図形領域、表示範囲が規定されている。「島１」の配置位置、配置角度については島マスター１００の場合と同様である。すなわち、この場合、島マスター１００の相対原点が、x=2500,y=-735に配置されたこととなる。繰り返し個数は、島マスター１００が縦方向又は横方向に行列複製された数を表す。この場合は、配置されただけで複製されていないので、繰り返し個数は「縦=１, 横=１」となっている。グループ番号とは、同時に配置された場合に１のグループとして取り扱うためのＩＤである。この場合であれば、図９に示すように、パーツ１〜パーツ３が同じくグループ番号「１」である。グループ番号により、同時に配置されたパーツであることが分かる。グループ番号は、例えば、アンドゥなどの場合に用いられる。図形領域は、配置位置と島マスター１００のスパンから演算された値である。表示範囲は、島マスター１００の隙間（上下左右）の値を除いた領域である。本実施形態においては、いずれも画面の左下と右上の座標で図形領域を表示するようにした。
【００３５】
２番目の配置した図形情報は、「パーツ１」である。パーツ１のデータ構造は、島１００とほぼである（図９参照）。各パーツについては、図形領域はなく、表示領域のみである。これは、隙間がないからである。また、各パーツについては、さらに、島マスター上の何番目のパーツであるか、および繰り返し位置が記憶される。島マスター上の何番目のパーツであるかは、後述するように、複製する場合にパーツ毎の複製を順に行うためである。また、繰り返し位置とは、後述するように、相対的な位置関係を特定することができる。たとえば、この場合は、繰り返し位置（０，０）であるので、矩形配置する場合に、左上の図形であることがわかる。繰り返し位置（１，０）であれば、繰り返し位置（０，０）の右隣の図形であることが分かる。また、繰り返し位置が同じパーツが１つの島マスターを構成することもわかる。また、図形領域とは当該図形の図面上における配置領域である。
【００３６】
なお、実際の作業としては、島マスター１００をドラッグしただけであるが、内部データとして、各パーツについても配置したように記憶する。これは、後述するように、パーツ単位でも変形および位置変更があり得るからである。
【００３７】
他のパーツ２，３については、パーツ１と同様である。
【００３８】
なお、島１は、１番目に配置された島であることを示しており、他の島が続けて配置されると、その島は島２として配置される。
【００３９】
３．２  拡大処理
つぎに、拡大した場合の複製処理について説明する。操作者が、図６Ａに示す点６１（座標:3400,-1200)、を入力デバイスで点７１（座標:6400,-2910)（図６Ｂ参照）にドラッグする。かかるドラッグが開始されると、かかるドラッグ処理によって領域が拡大され、拡大された領域内に可能な数だけ島「セミナールーム」が複製される。
【００４０】
かかる処理フローについて図１０〜図１３を用いて説明する。図１０に概要フローチャートを示す。操作者が島の端をつかんで引っ張ると（図１０ステップＳ１）、ＣＰＵ２３は、パーツ数および配置位置を演算する（ステップＳ３）。この演算結果に基づき、配置を行い、図面データ記憶部２６dにデータを記憶する。
【００４１】
以下、ステップＳ３の詳細について、図１１を用いて説明する。まず、ＣＰＵ２３は、ドラッグされた箇所を判断する（ステップＳ１１〜ステップＳ２５）。左下の角（図６点６７）がドラッグされた場合（ステップＳ１１）には、（右端X座標−マウス位置X座標）を新エリアの幅Ｗ、（上端Y座標−マウス位置Y座標）を高さＨとする（ステップＳ１２）。右下の角（図６点６１）がドラッグされた場合（ステップＳ１３）には、（マウス位置X座標−左端X座標）を新エリアの幅Ｗと、（上端Y座標−マウス位置Y座標）を高さＨとする（ステップＳ１４）。右上の角（図６点６３）がドラッグされた場合（ステップＳ１５）には、（マウス位置X座標−左端X座標）を新エリアの幅Ｗと、（マウス位置Y座標−下端Y座標）を高さＨとする（ステップＳ１６）。左上の角（図６点６５）がドラッグされた場合（ステップＳ１７）には、（右端X座標−マウス位置X座標）を新エリアの幅Ｗと、（マウス位置Y座標−下端Y座標）を高さＨとする（ステップＳ１８）。左中央（図６点６６）がドラッグされた場合（ステップＳ１９）には、（右端X座標−マウス位置X座標）を新エリアの幅Ｗと、高さＨは現状のままとする（ステップＳ２０）。右中央（図６点６２）がドラッグされた場合（ステップＳ２１）には、（マウス位置X座標−左端X座標）を新エリアの幅Ｗと、高さＨは現状のままとする（ステップＳ２２）。上中央（図６点６４）がドラッグされた場合（ステップＳ２３）には、幅Ｗは現状のまま、（マウス位置Y座標−下端Y座標）を高さＨとする（ステップＳ２４）。下中央（図６点６８）がドラッグされた場合（ステップＳ２５）には、幅Ｗは現状のまま、（下端Y座標−マウス位置Y座標）を高さＨとする（ステップＳ１８）。
【００４２】
ステップＳ１３，ステップＳ２１，ステップＳ２５の場合には、領域について、左上角の座標が変更されないが、それ以外では変更されるので、ステップＳ１１，ステップＳ１５，ステップＳ１７、ステップＳ１９、ステップＳ２３では、変更後の左上角の座標を原点とする原点移動処理を行う（ステップＳ２８）。
【００４３】
この場合、右下角であるＰ６１（図６Ａ参照）がドラッグされた場合であるので、ステップＳ１３からステップＳ１４に進み、新エリアの幅Ｗ、高さＨが決定される。この場合、島１の図形領域は（1200,-2910)、(3800,-10)であるので、島１００の左端X座標=１２００、上端Y座標=−１０である。また、マウス位置X座標=６９００、マウス位置Y座標=−２９１０であるので、幅Ｗ=５２００、高さＨ=２９００となる。
【００４４】
つぎに、ＣＰＵ２３は、 (新エリアの幅Ｗ−はみ出し左−はみ出し右) をスパンXで除算した値の整数部分を繰り返し数横とし、(新エリアの高さＨ−はみ出し上−はみ出し下) をスパンYで除算した値の整数部分を繰り返し数縦として、演算する（図１１ステップＳ２９）。この場合、はみ出し上、下、左、右はそれぞれ０である（図３参照）ので、幅Ｗ／スパンX=５２００／２６００=２となり、繰り返し数横=２となる。同様に新エリアの高さＨ／スパンY=２９００／１４５０から、繰り返し数縦=２となる。なお、この例では除算した結果に小数点以下が存在しないが、存在する場合には、切り捨てる。
【００４５】
つぎにＣＰＵ２３は、各パーツの配置位置を演算する（図１１ステップＳ３０）。ステップＳ３０の詳細フローチャートについて図１２，図１３を用いて説明する。
【００４６】
まず、ＣＰＵ２３は、パーツ番号iを初期化する（図１２ステップＳ５１）。つぎに、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する（ステップＳ５３）。この場合、i=１であるので、ステップＳ５５に進み、図３に示す島マスタのデータを参照して、パーツ情報１の「テーブルＴ１」の繰り返し方法を決定する。このパーツの繰り返し方法は、繰り返し属性が「０」である。したがって、繰り返し数横を横Maxに、繰り返し数縦を縦Maxに代入する（ステップＳ５７）。この場合、繰り返し数横、繰り返し数縦はともに「２」であるので、横Max=2、縦Max=２となる。
【００４７】
なお、繰り返し属性が「１」、「３」、「６」、「８」のパーツについては、横Max=１、縦Max=１とする（ステップＳ５９）。これは、いずれの方向にも複製しないためである。また、繰り返し属性が「２」、「７」のパーツについては、繰り返し数横を横Maxに代入し、縦Max=１とする（ステップＳ６１）。繰り返し属性が「４」、「５」のパーツについては、繰り返し数縦を縦Maxに代入し、横Max=１とする（ステップＳ６３）。これらの繰り返し属性が異なる場合の処理について後述する。
【００４８】
ＣＰＵ２３は、横方向複製番号jを初期化し（ステップＳ６５）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。小さい場合には、縦方向複製番号kを初期化し（ステップＳ７１）、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する（図１３ステップＳ８０〜ステップＳ８９）。この場合、繰り返し属性は「０」であるので、スパンＸ＊jをオフセットＸとし、スパンＹ＊kをオフセットＹとする（ステップＳ８１）。この場合、j=0,k=0なので、オフセットはともに「０」となる。
【００４９】
ＣＰＵ２３は、当該島の配置原点＋i番目の島マスターの配置原点＋オフセットＸ, Ｙの位置へ当該パーツを配置する（図１３ステップＳ９０）。この場合、オフセットＸ，Ｙ方向とも「０」であるので、もともとの位置が配置とされる。すなわち、図１４の図形７２の位置が配置位置として決定される。
【００５０】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。この場合、k=１であるので、縦方向複製番号kが縦Maxより小さいので、ステップＳ８０、ステップＳ８１，ステップＳ９０の処理を行う。ステップＳ９０にて、縦方向にスパンＹ＊１だけオフセットさせた位置が、配置位置として決定される。すなわち、図１４の図形７３の位置が配置位置として決定される。
【００５１】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。この場合、k=２であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし（ステップＳ７３）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、j=1で、横Maxより小さいので、ステップＳ７１以下の処理を行う。これにより、図１４の図形７４、７５の位置が配置位置として決定される。
【００５２】
ステップＳ９１にて、縦方向複製番号kがインクリメントされk=2とされると、ステップＳ７２からステップＳ７３に進む。横方向複製番号jがインクリメントされ（ステップＳ７３）、横方向複製番号j=2とされる。したがって、横方向複製番号jが横Maxより小さくないので、ステップＳ６７にて、パーツ番号iをインクリメントする。
【００５３】
以下ステップＳ５３以降の処理が、パーツ番号２について行われる。パーツ番号２，３について処理が終了すると、ステップＳ５３にてパーツ番号iが島マスターに登録されているパーツの数より大きくなるので、処理を終了する。これにより、島マスター１のパーツ１〜３の配置位置が決定される。
【００５４】
ＣＰＵ２３は、パーツ数およびその配置情報が決定されると、図面情報に再登録する（図１０ステップＳ５）。本実施形態においては、図１５に示すように、一旦配置した図形情報１から４については、削除マーク（フラグ）を立て、これを削除し、新たに島１（セミナールーム）を２＊２個配置した図形情報５〜１７を記憶するようにした。また、各配置した図形情報のパーツマスタおよび島マスターの情報が記憶される。
【００５５】
図１６〜図２０に、新たに配置した図形情報５〜１７のデータを示す。図１５を参照すると、配置図形情報５も配置図形情報１と同様に、値が双方とも「島１」となっている。これは、操作者により上記のような拡大処理がなされても、操作者が配置した島としては１番目の島だからである。なお、本実施形態において、このように同じ島１について一方は、削除マークを付与し、同じ島番号でデータを保持しているのは、アンドゥ処理などで便宜だからであり、インデックス部から削除するようにしてもよい。
【００５６】
島１のデータについて、図１６Ａを用いて説明する。図８Ｂに示す配置図形情報１と比べると、繰り返し数、グループ番号、図形領域が異なる。繰り返し数は、縦=2,横=2である。グループ番号は同時に配置した図形であるか否かを判断するためのものである。なお、連番で付与されるので配置した図形情報１〜４はグループ番号１としたので、次のグループであるとしてグループ番号２とされている。図形領域は画面上の座標の２点（左上、右下の角）が記憶されている。図１６Ｂに示すパーツ１（テーブル）は、図９Ａに示すパーツ１と同じであるので、各項目の値は同じである。図１６Ｃに示すパーツ２は、パーツ１と同じパーツが異なる座標に配置されたものであり、したがって、配置位置が異なる。この場合、配置位置のＸ座標は同じであるが、Ｙ座標が異なる。また、繰り返し位置が（１，０）となっており、パーツ１の（０，０）に対して、Ｙ方向に１スパン分ズレた位置に配置されていることになる。また、図１７Ａに示すパーツ３についても同様で、繰り返し位置が（０，１）となっており、パーツ１の（０，０）に対して、Ｙ方向に１スパン分ズレた位置に配置されていることになる。また、図１７Ｂに示すパーツ４についても同様で、繰り返し位置が（１，１）となっており、パーツ１の（０，０）に対して、Ｘ方向に１スパン分、Ｙ方向に１スパン分ズレた位置に配置されていることになる。また、図１７Ｃに示すパーツ５は、図９Ｃに示すパーツ３と同じであるので、各項目の値は同じである。以下、図１８〜図２０についても同様である。
【００５７】
なお、繰り返し位置は、最初にドロップした状態では、（０，０）とし、図１３ステップＳ９０の処理がなされた場合には、その時点のj,kの値を記憶すればよい。
【００５８】
このようにして、島として配置された場合に、操作者によって領域が拡大されると、拡大領域にあわせて、同じものを複製配置することができる。
【００５９】
なお、この状態で、さらに拡大または縮小変形されると、変形後の領域似合わせて、縦、横の配置数を演算し、その配置位置を決定できる。
【００６０】
３．３  はみ出し領域および繰り返し属性が異なる場合の処理
つぎに、図２１Ａに示すような基本図形８１が島マスターに登録されている場合に、領域を横方向に拡大し、図２１Ｂに示す図形９１となる場合の処理について説明する。この例では、マスタデータ記憶部２６nに、図２２、図２３に示す島マスター１１０が記憶されているものとする。なお、島マスター１１０は、チェアに関する情報も同様に記憶されているが、テーブル、コーナーテーブルとほぼ同様であるので、記載は省略している。また、図２１Ａにおいて、点Ｐ８１ａは（−２３０５、−２４００）、点Ｐ８１ｂは（２５０５，２４００）であり、図２１Ｂにおいて、点Ｐ９１ａは（−２３０５、−２４００）、点Ｐ９１ｂは（４１０５，２４００）とする。
【００６１】
図２２、図２３を参照すると、島マスター１１０はコーナーテーブルＴ２、テーブルＴ３、チェアＣ２の３種類のパーツで構成されていることがわかる。パーツ情報１〜４は、パーツとしては同じコーナーテーブルＴ２であり、配置位置および配置角度がそれぞれ異なる。図２１Ａに示す図形８１のコーナーテーブル８２、８３，８４、８５がそれぞれ、図２２におけるパーツ情報１，２，３，４で特定されるパーツに該当する。同様に、テーブル８６，８７，８８，８９がそれぞれ、パーツ情報５，６，７，８で特定されるパーツに該当する。図２４に各パーツであるコーナーテーブルＴ２、テーブルＴ３、チェアＣ２のデータを示す。
【００６２】
島１１０を画面の所定領域に配置すると（この場合、（０，０）に配置した）、上記実施形態と同様にして、図２５Ａに示すようなインデックスデータ、図２５Ｂに示す島データ、図２６〜図２８に示すパーツデータが記憶される。なお、図２６〜２８では、パーツ９以降のパーツデータについては、記載を省略している。また、各パーツについての表示領域は記載を省略している。
【００６３】
図２１Ｂに示す矢印９２方向に表示領域が拡大されると、以下のようにして、各パーツの配置位置が決定される。
【００６４】
まず、図１１のステップＳ１１〜ステップＳ２９によって、繰り返し数横、繰り返し数縦が決定される。この場合、右がドラッグされた場合となるので、ステップＳ２１からステップＳ２２に進み、（マウス位置Ｘ座標−左端Ｘ座標）が、新エリアの幅とされる。新エリアの高さは元エリアのままである。この場合、マウス位置の座標およびＰ９１ｂのＸ座標から、新エリアの幅は、「６４１０」であることがわかる。なお、新エリアの高さは元エリアと同じく「４８００」である。ＣＰＵ２３は、新エリアの幅、高さから繰り返し数横、繰り返し数縦を決定する（図１１ステップＳ２９）。この場合、（６４１０−１７０５−１５０５）／１６００=２となり、繰り返し数横を「２」と、（４８００−１６００−１６００）／１６００=１となり、繰り返し数縦を「１」と決定する。
【００６５】
（コーナーテーブル１０２の作成処理）
つぎにＣＰＵ２３は、図１１ステップＳ３０にて各パーツの配置位置を決定する。ＣＰＵ２３は、パーツ番号iを初期化する（図１２ステップＳ５１）。つぎに、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する（ステップＳ５３）。この場合、i=１であるので、ステップＳ５５に進み、パーツ情報１で特定されるパーツ（この場合、「コーナーテーブルＴ２」）の繰り返し方法を決定する。この場合、図２２の島マスター１１０を参照すると、繰り返し属性が「８」であるので、横Max、縦Maxをそれぞれ「１」とする（図１２ステップＳ５９）。
【００６６】
ＣＰＵ２３は、横方向複製番号jを初期化し（ステップＳ６５）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、小さいので、縦方向複製番号kを初期化し（ステップＳ７１）、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する（図１３ステップＳ８０〜ステップＳ８９）。この場合、繰り返し属性は「８」であるので、オフセットＸをスパンＸ＊（繰り返し数横−１）とし、オフセットＹをスパンＹ＊（繰り返し数縦−１）とする（ステップＳ８９）。この場合、繰り返し数横は「２」、繰り返し数縦は「１」であるので、オフセットＸはスパンＸ，オフセットＹは「０」となる。
【００６７】
ＣＰＵ２３は、当該島の配置原点＋i番目の島マスターの配置原点＋オフセットＸ, Ｙの位置へ当該パーツを配置する（図１３ステップＳ９０）。この場合、オフセットＸはスパンＸ，オフセットＹは「０」であるので、もともとの位置からスパンＸ，すなわち、１６００右側に配置される。すなわち、図２１Ｂの図形１０２の位置が配置位置として決定される。
【００６８】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（図１３ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（図１２ステップＳ７２）。この場合、k=１であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし（ステップＳ７３）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップＳ６７にて、パーツ番号iをインクリメントする。
【００６９】
これにより、パーツ情報１のパーツについて、配置位置決定処理が終了する。
【００７０】
（コーナーテーブル１０３の処理）
つぎに、ＣＰＵ２３は、島マスター１１０を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する（ステップＳ５３）。この場合、i=２であるので、ステップＳ５５に進み、繰り返し方法を決定する（ステップＳ５５〜ステップＳ６３）。この場合、パーツ情報２のパーツの繰り返し属性は「３」であるので、横Max、縦Maxをそれぞれ「１」とする（図１２ステップＳ５９）。
【００７１】
ＣＰＵ２３は、横方向複製番号jを初期化し（ステップＳ６５）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、小さいので、縦方向複製番号kを初期化し（ステップＳ７１）、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する（図１３ステップＳ８０〜ステップＳ８９）。この場合、繰り返し属性は「３」であるので、スパンＸ＊（繰り返し数横−１）をオフセットＸとし、オフセットＹは「０」とする（ステップＳ８４）。この場合、繰り返し数横は「２」であるので、オフセットＸはスパンＸ，オフセットＹは「０」となる。
【００７２】
ＣＰＵ２３は、当該島の配置原点＋i番目の島マスターの配置原点＋オフセットＸ, Ｙの位置へ当該パーツを配置する（図１３ステップＳ９０）。この場合、オフセットＸはスパンＸ，オフセットＹは「０」であるので、もともとの位置からスパンＸ，すなわち、１６００右側に配置される。すなわち、図２１Ｂの図形１０３の位置が配置位置として決定される。
【００７３】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし（ステップＳ７３）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップＳ６７にて、パーツ番号iをインクリメントする。
【００７４】
これにより、パーツ情報２のパーツについて、配置位置決定処理が終了する。
【００７５】
（コーナーテーブル１０４の作成処理）
ＣＰＵ２３は、島マスター１１０を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する（ステップＳ５３）。この場合、i=３であるので、ステップＳ５５に進み、繰り返し方法を決定する（ステップＳ５５〜ステップＳ６３）。この場合、パーツ情報３のパーツの繰り返し属性は「１」であるので、横Max、縦Maxをそれぞれ「１」とする（図１２ステップＳ５９）。
【００７６】
ＣＰＵ２３は、横方向複製番号jを初期化し（ステップＳ６５）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、小さいので、縦方向複製番号kを初期化し（ステップＳ７１）、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する（図１３ステップＳ８０〜ステップＳ８９）。この場合、繰り返し属性は「１」であるので、オフセットＸ、オフセットＹはともに「０」とする（ステップＳ８２）。  ＣＰＵ２３は、当該島の配置原点＋i番目の島マスターの配置原点＋オフセットＸ, Ｙの位置へ当該パーツを配置する（図１３ステップＳ９０）。この場合、オフセットＸは「０」、オフセットＹは「０」であるので、もともとの位置に配置される。すなわち、図２１Ｂの図形１０４の位置が配置位置として決定される。
【００７７】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし（ステップＳ７３）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップＳ６７にて、パーツ番号iをインクリメントする。これにより、パーツ情報３のパーツについて配置位置決定処理が終了する。
【００７８】
（コーナーテーブル１０５の作成処理）
ＣＰＵ２３は、島マスター１１０を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する（ステップＳ５３）。この場合、i=４であるので、ステップＳ５５に進み、繰り返し方法を決定する（ステップＳ５５〜ステップＳ６３）。この場合、パーツ情報４のパーツの繰り返し属性は「６」であるので、横Max、縦Maxをそれぞれ「１」とする（図１２ステップＳ５９）。
【００７９】
ＣＰＵ２３は、横方向複製番号jを初期化し（ステップＳ６５）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、小さいので、縦方向複製番号kを初期化し（ステップＳ７１）、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する（図１３ステップＳ８０〜ステップＳ８９）。この場合、繰り返し属性は「６」であるオフセットＸを「０」とし、スパンＹ＊（繰り返し数縦−１）をオフセットＹとする（ステップＳ８７）。この場合、繰り返し数縦は「１」であるので、オフセットＸ，オフセットＹはともに「０」となる。
【００８０】
ＣＰＵ２３は、当該島の配置原点＋i番目の島マスターの配置原点＋オフセットＸ, Ｙの位置へ当該パーツを配置する（図１３ステップＳ９０）。この場合、オフセットＸ、オフセットＹはともに「０」であるので、もともとの位置に配置される。すなわち、図２１Ｂの図形１０５の位置が配置位置として決定される。
【００８１】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし（ステップＳ７３）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップＳ６７にて、パーツ番号iをインクリメントする。
【００８２】
これにより、パーツ情報４のパーツについて、配置位置決定処理が終了する。
【００８３】
（テーブル１０６の作成処理）
ＣＰＵ２３は、島マスター１１０を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する（ステップＳ５３）。この場合、i=５であるので、ステップＳ５５に進み、繰り返し方法を決定する（ステップＳ５５〜ステップＳ６３）。この場合、パーツ情報５のパーツの繰り返し属性は「５」であるので、横Maxを「１」に、縦Maxに繰り返し数縦を代入する（図１２ステップＳ６３）。この場合、繰り返し数縦は、「１」であるので、横Max、縦Maxはともに「１」となる。
【００８４】
ＣＰＵ２３は、横方向複製番号jを初期化し（ステップＳ６５）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、小さいので、縦方向複製番号kを初期化し（ステップＳ７１）、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する（図１３ステップＳ８０〜ステップＳ８９）。この場合、繰り返し属性は「５」であるので、オフセットＸにスパンＸ＊（繰り返し数横−１）を代入し、スパンＹ＊kをオフセットＹとする（ステップＳ８６）。この場合、繰り返し数横は「２」、k=0であるので、オフセットＸはスパンＸ，オフセットＹは「０」となる。
【００８５】
ＣＰＵ２３は、当該島の配置原点＋i番目の島マスターの配置原点＋オフセットＸ, Ｙの位置へ当該パーツを配置する（図１３ステップＳ９０）。この場合、オフセットＸはスパンＸ，オフセットＹは「０」であるので、もともとの位置からスパンＸ，すなわち、１６００右側に配置される。すなわち、図２１Ｂの図形１０６の位置が配置位置として決定される。
【００８６】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし（ステップＳ７３）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップＳ６７にて、パーツ番号iをインクリメントする。これにより、パーツ情報５のパーツについて配置位置決定処理が終了する。
【００８７】
（テーブル１０７の作成処理）
ＣＰＵ２３は、島マスター１１０を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する（ステップＳ５３）。この場合、i=６であるので、ステップＳ５５に進み、繰り返し方法を決定する（ステップＳ５５〜ステップＳ６３）。この場合、パーツ情報６のパーツの繰り返し属性は「２」であるので、横Maxを繰り返し数横に、縦Maxに「１」を代入する（図１２ステップＳ６１）。この場合、繰り返し数横は、「２」であるので、横Maxは「２」、縦Maxは「１」となる。
【００８８】
ＣＰＵ２３は、横方向複製番号jを初期化し（ステップＳ６５）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、小さいので、縦方向複製番号kを初期化し（ステップＳ７１）、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する（図１３ステップＳ８０〜ステップＳ８９）。この場合、繰り返し属性は「２」であるので、オフセットＸにスパンＸ＊jを代入し、オフセットＹを「０」とする（ステップＳ８３）。この場合、j=0であるので、オフセットＸ，オフセットＹはともに「０」となる。
【００８９】
ＣＰＵ２３は、当該島の配置原点＋i番目の島マスターの配置原点＋オフセットＸ, Ｙの位置へ当該パーツを配置する（図１３ステップＳ９０）。この場合、オフセットＸ、オフセットＹは「０」であるので、もともとの位置に配置される。すなわち、図２１Ｂの図形１０７ａの位置が配置位置として決定される。
【００９０】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし（ステップＳ７３）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、j=1で、横Max=2で、横方向複製番号jが横Maxより小さいので、縦方向複製番号kを初期化し（ステップＳ７１）、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する（図１３ステップＳ８０〜ステップＳ８９）。この場合、繰り返し属性は「２」であるので、オフセットＸにスパンＸ＊jを代入し、オフセットＹを「０」とする（ステップＳ８３）。この場合j=1であるので、オフセットＸは、スパンＸ、オフセットＹは「０」となる。
【００９１】
ＣＰＵ２３は、当該島の配置原点＋i番目の島マスターの配置原点＋オフセットＸ, Ｙの位置へ当該パーツを配置する（図１３ステップＳ９０）。この場合、オフセットＸはスパンＸ、オフセットＹは「０」であるので、もともとの位置からスパンＸ，すなわち、１６００右側に配置される。すなわち、図２１Ｂの図形１０７bの位置が配置位置として決定される。
【００９２】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。
【００９３】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし（ステップＳ７３）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップＳ６７にて、パーツ番号iをインクリメントする。これにより、パーツ情報６のパーツについて配置位置決定処理が終了する。
【００９４】
（テーブル１０８の作成処理）
ＣＰＵ２３は、島マスター１１０を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する（ステップＳ５３）。この場合、i=７であるので、ステップＳ５５に進み、繰り返し方法を決定する（ステップＳ５５〜ステップＳ６３）。この場合、パーツ情報７のパーツの繰り返し属性は「４」であるので、横Maxを「１」に、縦Maxに繰り返し数縦を代入する（図１２ステップＳ６３）。この場合、繰り返し数縦は、「１」であるので、横Max、縦Maxはともに「１」となる。
【００９５】
ＣＰＵ２３は、横方向複製番号jを初期化し（ステップＳ６５）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、小さいので、縦方向複製番号kを初期化し（ステップＳ７１）、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する（図１３ステップＳ８０〜ステップＳ８９）。この場合、繰り返し属性は「４」であるので、オフセットＸを「０」とし、スパンＹ＊kをオフセットＹとする（ステップＳ８５）。この場合、k=0であるので、オフセットＸ、オフセットＹはともに「０」となる。
【００９６】
ＣＰＵ２３は、当該島の配置原点＋i番目の島マスターの配置原点＋オフセットＸ, Ｙの位置へ当該パーツを配置する（図１３ステップＳ９０）。この場合、オフセットＸ、オフセットＹはともに「０」であるので、もともとの位置に配置される。すなわち、図２１Ｂの図形１０８の位置が配置位置として決定される。
【００９７】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし（ステップＳ７３）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップＳ６７にて、パーツ番号iをインクリメントする。これにより、パーツ情報７のパーツについて配置位置が終了する。
【００９８】
（テーブル１０９の作成処理）
ＣＰＵ２３は、島マスター１１０を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する（ステップＳ５３）。この場合、i=８であるので、ステップＳ５５に進み、繰り返し方法を決定する（ステップＳ５５〜ステップＳ６３）。この場合、パーツ情報８のパーツの繰り返し属性は「７」であるので、横Maxを繰り返し数横に、縦Maxに「１」を代入する（図１２ステップＳ６１）。この場合、繰り返し数横は、「２」であるので、横Maxは「２」、縦Maxは「１」となる。
【００９９】
ＣＰＵ２３は、横方向複製番号jを初期化し（ステップＳ６５）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、小さいので、縦方向複製番号kを初期化し（ステップＳ７１）、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する（図１３ステップＳ８０〜ステップＳ８９）。この場合、繰り返し属性は「７」であるので、オフセットＸにスパンＸ＊jを代入し、オフセットＹにスパンＹ＊（繰り返し数縦−１）を代入する（ステップＳ８８）。
【０１００】
ＣＰＵ２３は、当該島の配置原点＋i番目の島マスターの配置原点＋オフセットＸ, Ｙの位置へ当該パーツを配置する（図１３ステップＳ９０）。この場合、j=0、繰り返し数縦は「１」であるので、オフセットＸ、オフセットＹはともに「０」となる。したがって、もともとの位置に配置される。すなわち、図２１Ｂの図形１０９ａの位置が配置位置として決定される。
【０１０１】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし（ステップＳ７３）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、j=1で、横Max=2で、横方向複製番号jが横Maxより小さいので、縦方向複製番号kを初期化し（ステップＳ７１）、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する（図１３ステップＳ８０〜ステップＳ８９）。この場合、繰り返し属性は「７」であるので、オフセットＸにスパンＸ＊jを、オフセットＹにスパンＹ＊（繰り返し数縦−１）を代入する（ステップＳ８８）。この場合j=1、繰り返し数縦＝１であるので、オフセットＸはスパンＸ、オフセットＹは「０」となる。
【０１０２】
ＣＰＵ２３は、当該島の配置原点＋i番目の島マスターの配置原点＋オフセットＸ, Ｙの位置へ当該パーツを配置する（図１３ステップＳ９０）。この場合、オフセットＸはスパンＸ、オフセットＹは「０」であるので、もともとの位置からスパンＸ，すなわち、１６００右側に配置される。すなわち、図２１Ｂの図形１０９bの位置が配置位置として決定される。
【０１０３】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。
【０１０４】
つぎにＣＰＵ２３は、縦方向複製番号kをインクリメントし（ステップＳ９１）、縦方向複製番号kが縦Maxより小さいか否か判断する（ステップＳ７２）。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし（ステップＳ７３）、横方向複製番号jが横Maxより小さいか否か判断する（ステップＳ６６）。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップＳ６７にて、パーツ番号iをインクリメントする。これにより、パーツ情報８のパーツについて配置位置決定処理が終了する。
【０１０５】
以下同様にして、チェアＣ２についても配置位置を決定する。
【０１０６】
ＣＰＵ２３は、図１２ステップＳ５３にて、パーツ番号が島マスターに登録されているパーツ数を越えると処理を終了する。
【０１０７】
図２９〜図３３に、拡大後の図形情報５〜１７のデータを示す。図３２に示すようにパーツ６，７が、島マスター１１０上では同じパーツである。パーツ７の繰り返し位置から、スパンＸ分、離れて配置していることが分かる。図３３に示すように、また、パーツ９，１０についても同様である。
【０１０８】
このように、Ｘ方向またはＹ方向のいずれかまたは双方に、自動繰り返し複製をさせたくないパーツについては、はみ出し領域とするとともに、繰り返し属性を定義することにより、これを制約することができる。
【０１０９】
３．４  個々のパーツの移動・回転処理
上記第１実施形態にて、図３４Ａに示すように２＊２で島マスター１１０が配置され、島１８１〜１８４が配置されている場合に、島１８１を構成する一部のパーツ１８１ａを回転させると、残りの島１８２〜１８４についても対応するパーツを同調させることもできる。
【０１１０】
この場合のフローチャートについて、図３５を用いて説明する。まず、ＣＰＵ２３は、個々のパーツを独立して選択できるモードにする（ステップＳ２０１）。これは、画面上にそのような切換をするボタンを配置し、入力デバイスで選択するようにすればよい。操作者は、所望のパーツを入力デバイスで特定して、移動又は回転を行う（ステップＳ２０３）。かかる移動又は回転は、そのパーツの配置位置を中心に行われる。ＣＰＵ２３は、新たな島マスターを作成して繰り返し数だけ当該島１８１を登録する。島１８１が登録された後の配置場所演算（ステップＳ２０７），再登録手続き（ステップＳ２０９）は、第１実施形態と同じであるので、説明は省略する。
【０１１１】
このようにして、図３６Ｂに示すように、全ての島１８１〜１８４のパーツを回転させることができる。
【０１１２】
なお、この例では一部のパーツを回転させた場合について説明したが、一部のパーツを移動させることも同様に可能である。
【０１１３】
なお、本実施形態においては、一旦新しい島マスターを作成して、配置場所を演算するようにしたが、島マスターの何番目のパーツかを示す情報を用いて、かかる情報が同じパーツについて、上記操作された移動量または回転量をそのパーツの原点に対して操作するようにしてもよい。
【０１１４】
なお、新たなマスターを作成するには、どのパーツが１つの島を構成するのかを決定する必要がある。これは、「繰り返し位置」が（０，０）のパーツを抽出すればよい。また、当該島マスタの原点は、島１の配置位置を原点として各パーツの配置位置を特定すればよい。
【０１１５】
３．６  配置位置の移動
上記実施形態においては、予め決められた島マスターに登録されているスパンだけ離れた位置に、島図形が繰り返し複製配置される。かかるスパンについては、配置した後、これを変更することもできるようにしてもよい。例えば、図３６Ａに示すように、島１９０と島１９１、島１９２と島１９３がスパンrにて配置されている場合に、島１９０を矢印１９５方向にずらすことにより、図３６Ｂに示すように島１９３も同じく、スパンnだけ島１９２から離れて配置する。
【０１１６】
この場合のフローチャートについて、図３７を用いて説明する。まず、ＣＰＵ２３は、島一つ分を選択できるモードにする（ステップＳ２１１）。これは、画面上にそのような切換をするボタンを配置し、入力デバイスで選択するようにすればよい。
【０１１７】
操作者は、所望のパーツを入力デバイスで特定して、所望の島を所望の位置まで、移動させる（ステップＳ２１３）。ＣＰＵ２３は、新スパンを新たな島マスターとして、当該島１８１を登録する（ステップＳ２１５）。新スパンは、元のスパン＋移動量（移動方向を含む）で決定すればよい。たとえば、島マスター１００は、x方向のスパンが２６００であり、図３６Ａの移動量が右方向に４００である場合、新スパンは３０００となる。新しいスパンが登録された後の配置場所演算（ステップＳ２１７），再登録手続き（ステップＳ２１９）は、第１実施形態と同じであるので、説明は省略する。
【０１１８】
なお、本実施形態においては、一旦新しい島マスターを作成して、配置場所を演算するようにした。しかし、これに限定されず、個々のパーツについて、島マスターを構成するパーツがどれかを判断し、移動させるようにしてもよい。
【０１１９】
なお、入力デバイスによる移動については、マウス等でドラッグしてもよいし、キーボード等のカーソル移動キーでの移動、移動距離の数値入力など既存の指定方法を用いればよい。
【０１２０】
また、スパン変更により、図形領域をこれに合わせて変更するようにしてもよい。この場合、ステップＳ２１５とステップＳ２１７の間に、元のエリア+移動量を新エリアとするステップを追加すればよい。特に、隙間を広くする場合には、有効である。
【０１２１】
４．他の実施形態
上記実施形態においては、矩形形状の場合について説明したが、３角形や変形四角形、その他、５角形以上の多角形であってもよく、また、円形に配置することもできる。円形の場合は、たとえば、第１の方向が円周方向で、第２の方向が放射方向とすればよい。
【０１２２】
また、図形データの形式、データ構造、グループを示すデータなどは、どのようにでも構成するが可能である。たとえば、インデックス部を用いて参照するようにしたが、これに限定されない。また、各グループであることを示すデータについて各パーツ毎に記憶するようにしたが、インデックス部に記憶するようにしてもよい。
【０１２３】
また、パーツごとに、複数配置した結果としてデータを記憶するようにした。しかし、これに限定されず、パーツをまとめた島として、複数配置するようにしてもよい。
【０１２４】
また、一旦元の島データを削除し、複製数分だけ配置するようにしたが、元のデータはそのままとし、増えた分だけ追加するようにしてもよい。
【０１２５】
上記実施形態においては、図１に示す機能を実現する為に、ＣＰＵを用い、ソフトウェアによってこれを実現している。しかし、その一部もしくは全てを、ロジック回路等のハードウェアによって実現してもよい。
【０１２６】
なお、上記プログラムの一部の処理をオペレーティングシステム（ＯＳ）にさせるようにしてもよい。
【図面の簡単な説明】
【０１２７】
【図１】本発明にかかるレイアウトシミュレーション装置１の機能ブロック図である。
【図２】図１に示すレイアウトシミュレーション装置１をＣＰＵを用いて実現したハードウエア構成の一例を示す図である。
【図３】島マスター１００のデータ構造の一例を示す図である。
【図４】島マスターのスパン、隙間の関係を示す図である。
【図５】パーツ情報マスタのデータ構造の一例を示す図である。
【図６】拡大配置の変化を示す図である。
【図７】島を配置する場合の画面例を示す図である。
【図８】配置した図形情報のデータ構造を示す図である。
【図９】配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図１０】全体のフローチャートである。
【図１１】図１０ステップＳ３の詳細フローチャートである。
【図１２】図１１ステップＳ３０の詳細フローチャートである。
【図１３】図１１ステップＳ３０の詳細フローチャートである。
【図１４】テーブルＴ１を複数配置した状態を示す図である。
【図１５】複製後の配置した図形情報のデータ構造を示す図である。
【図１６】複製後の配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図１７】複製後の配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図１８】複製後の配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図１９】複製後の配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図２０】複製後の配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図２１】第２実施形態における拡大前後の変化を示す図である。
【図２２】島マスター１１０のデータ構造の一例を示す図である。
【図２３】パーツ情報マスタのデータ構造の一例を示す図である。
【図２４】パーツ情報マスタのデータ構造の一例を示す図である。
【図２５】配置した図形情報のデータ構造を示す図である。
【図２６】配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図２７】配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図２８】配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図２９】複製後の配置した図形情報のデータ構造を示す図である。
【図３０】複製後の配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図３１】複製後の配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図３２】複製後の配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図３３】複製後の配置した図形情報（パーツ情報）のデータ構造を示す図である。
【図３４】一部のパーツを回転させる場合の配置前後の変化を示す図である。
【図３５】一部のパーツを移動・回転させる場合のフローチャートである。
【図３６】スパンを後で変更させる場合の配置前後の変化を示す図である。
【図３７】スパンを後で変更させる場合のフローチャートである。
【符号の説明】
【０１２８】
１・・・・ レイアウトシミュレーション装置
２３・・・ＣＰＵ
２７・・・メモリ
【図１】
2006331288.tif 000003
【図２】
2006331288.tif 000004
【図３】
2006331288.tif 000005
【図４】
2006331288.tif 000006
【図５】
2006331288.tif 000007
【図６】
2006331288.tif 000008
【図７】
2006331288.tif 000009
【図８】
2006331288.tif 000010
【図９】
2006331288.tif 000011
【図１０】
2006331288.tif 000012
【図１１】
2006331288.tif 000013
【図１２】
2006331288.tif 000014
【図１３】
2006331288.tif 000015
【図１４】
2006331288.tif 000016
【図１５】
2006331288.tif 000017
【図１６】
2006331288.tif 000018
【図１７】
2006331288.tif 000019
【図１８】
2006331288.tif 000020
【図１９】
2006331288.tif 000021
【図２０】
2006331288.tif 000022
【図２１】
2006331288.tif 000023
【図２２】
2006331288.tif 000024
【図２３】
2006331288.tif 000025
【図２４】
2006331288.tif 000026
【図２５】
2006331288.tif 000027
【図２６】
2006331288.tif 000028
【図２７】
2006331288.tif 000029
【図２８】
2006331288.tif 000030
【図２９】
2006331288.tif 000031
【図３０】
2006331288.tif 000032
【図３１】
2006331288.tif 000033
【図３２】
2006331288.tif 000034
【図３３】
2006331288.tif 000035
【図３４】
2006331288.tif 000036
【図３５】
2006331288.tif 000037
【図３６】
2006331288.tif 000038
【図３７】
2006331288.tif 000039