JP4523873B2 - レイアウトシミュレーションプログラム - Google Patents

レイアウトシミュレーションプログラム Download PDF

Info

Publication number
JP4523873B2
JP4523873B2 JP2005157351A JP2005157351A JP4523873B2 JP 4523873 B2 JP4523873 B2 JP 4523873B2 JP 2005157351 A JP2005157351 A JP 2005157351A JP 2005157351 A JP2005157351 A JP 2005157351A JP 4523873 B2 JP4523873 B2 JP 4523873B2
Authority
JP
Japan
Prior art keywords
area
registered
replication
data
vertical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005157351A
Other languages
English (en)
Other versions
JP2006331288A (ja
Inventor
文子 平井
昇 前坂
格 津田
清教 大倉
Original Assignee
メガソフト株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by メガソフト株式会社 filed Critical メガソフト株式会社
Priority to JP2005157351A priority Critical patent/JP4523873B2/ja
Publication of JP2006331288A publication Critical patent/JP2006331288A/ja
Application granted granted Critical
Publication of JP4523873B2 publication Critical patent/JP4523873B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Description

この発明は、レイアウトシミュレーション方法に関し、特に、登録部品の複製レイアウトに関する。
出願人は、オフィスにおける机や椅子を部品登録しておき、これをコンピュータの画面上でシミュレーション配置するソフトウェア「3Dオフィスデザイナー」(商標)を開発して販売している。かかるソフトウェアの使用方法は、非特許文献1に開示されている。
「3Dオフィスデザイナー 快適オフィスの作り方 」株式会社アスキー、ISBNコード:ISBN4-7561-4362-8 かかるソフトウェアの使用方法を簡単に説明すると、オフィスにおける机や椅子などが部品として予め登録されており、これらを所定領域内にドラッグアンドドロップすることにより、任意の位置にシミュレーション配置させることができる。
しかしながら、オフィスにおける机や椅子などについては、同じものを所定数繰り返し配置する場合がある。このような場合には、部品登録したものを操作者が手入力で、所定数複製する必要があった。
かかる問題は、オフィスにおける机や椅子などだけでなく、部品登録した図形を所定領域内に配置する場合には同様に問題となる。
この発明は、部品登録した部品図形を複数配置する場合の煩雑性を防止できるレイアウトシミュレーションプログラムを提供することを目的とする。
1)本発明にかかるレイアウトシミュレーションプログラムは、A)矩形の基準領域を有する登録部品データを画面上に配置してレイアウト表示をコンピュータに実行させるレイアウトシミュレーションプログラムであって、B)前記コンピュータは、以下のb1)〜b5)ステップを実行する。b1)ユーザの指示に基づいて前記登録部品データが画面上に配置されると、前記矩形の基準領域を表示するステップ、b2)前記矩形の基準領域が画面の上下方向およびまたは左右方向にドラッグされると、前記ドラッグ後の矩形領域を拡大矩形領域として決定するステップ、b3)前記拡大矩形領域について、前記登録部品が重複することなく行列複製配置可能な最大配置状態を求め、前記登録部品を行列複製配置表示するステップ、b4)前記拡大矩形領域を特定する拡大矩形領域決定データ、および行列複製した登録部品の前記最大配置状態を特定する複製部品配置データを対応づけて記憶するステップ、b5)前記拡大矩形領域が画面の上下方向およびまたは左右方向にドラッグされると、前記ドラッグ後の矩形領域を拡大矩形領域として、前記b3),b4)ステップを実行するステップ
したがって、前記拡大矩形領域内に、前記登録部品を自動配置することができる。
2)本発明にかかるレイアウトシミュレーションプログラムにおいては、前記登録部品データは、1)前記基準領域の4隅に配置され、前記画面の上下方向および左右方向のいずれにも行列複製を行わない非複製部であって、前記最大配置状態を求める際に、はみ出し領域として扱われる非複製部と、2)前記4隅の非複製部のうちの2つに挟む込まれるように配置され、前記画面の上下方向または左右方向のいずれかのみに行列複製を行える複製方向制限部とを表す繰り返し属性が定義されており、前記コンピュータは、前記拡大矩形領域と前記基準領域との差分から、さらに前記はみ出し領域を減算し、減算された残りの領域に、前記複製方向制限部が重複することなく前記行列複製配置させることができる繰り返し数を求め、前記繰り返し数だけ、前記複製方向制限部を行列複製するとともに、行列複製した複製方向制限部分だけ、前記非複製部の配置位置を移動させる。
したがって、前記非複製部を除いた部分だけを所定の方向に複製することができる。
2)本発明にかかるレイアウトシミュレーションプログラムは、A)所定の基準領域を有する登録部品データを画面上に配置してレイアウト表示をコンピュータに実行させるレイアウトシミュレーションプログラムであって、B)前記コンピュータは、以下のb1)〜b4)ステップを実行する。b1)ユーザの指示に基づいて、前記登録部品データが画面上に配置されると、前記所定の基準領域を表示するステップ、b2)前記基準領域が拡縮変形されると、前記変形後の領域を拡縮領域として決定するステップ、b3)前記拡縮領域について、前記登録部品が重複することなく行列複製配置可能な最大配置状態を求めるステップ、b4)前記基準領域の配置位置、前記矩形領域を特定する拡縮領域決定データ、および行列複製した登録部品の前記最大配置状態を特定する複製部品配置データを対応づけて記憶するステップ。
したがって、前記拡縮矩形領域内に、前記登録部品を自動配置することができる。


4)本発明にかかるレイアウトシミュレーションプログラムにおいては、前記コンピュータは、前記拡縮領域がさらに拡縮変形されると、前記拡縮変形後の領域を拡縮領域として、前記b3),b4)ステップを実行する。したがって、繰り返し前記自動配置が可能となる。
5)本発明にかかるレイアウトシミュレーションプログラムにおいては、前記登録部品データには、表示状態を変更できない非変更部と、前記非変更部に対して、位置または回転関係を変更できる変更可能部で構成されており、前記コンピュータは、前記拡縮領域内のいずれかの登録部品データについて、その変更可能部の位置または回転関係が変更されると、他の登録部品データについても、同様に変更可能部の位置または回転関係を変更る。したがって、変更可能部について一部変更すると、自動複製した登録部品についても同様に変更される。
6)本発明にかかるレイアウトシミュレーションプログラムにおいては、前記登録部品データには、隣接する登録部品との間で所定間隔を設けて行列複製するための間隔が定義されており、前記コンピュータは、以下のステップを実行する。前記間隔を考慮して、前記登録部品が重複することなく行列複製配置可能な最大配置状態を求めるステップ、前記最大配置状態に応じて画面上に配置するステップ、操作者によって、一部の登録部品の配置位置が変更されると、前記間隔データが変更されたと判断して、前記最大配置状態を再演算するステップ。したがって、配置後の一部の登録部品を移動させるだけで、他の登録部品を連動移動させることができる。
7)本発明にかかるレイアウトシミュレーションプログラムにおいては前記コンピュータは、操作者によって、一部の登録部品の配置位置が変更されると、前記間隔データの変更された分だけ前記拡縮領域が変更されたと判断して、前記最大配置状態を再演算する。したがって、拡縮領域との不一致が無くなる。

なお、本明細書において「行列複製配置」とは、拡縮領域に対して、第1の方向と、第2の方向のいずれか又は双方に、拡縮領域に可能な個数だけ配置することをいい、実施形態では矩形について縦横方向に複製することに該当するが、第1の方向と第2の方向の関係が決まっていれば、これらが直行する場合に限られず、所定の角度を構成する場合を含む。例えば、平行四辺形の拡縮領域であってもよい。また、円の円周方向と放射方向のような関係であってもよい。「拡縮」とは、下記の実施形態では拡大する場合について説明するが、縮小される場合も含む。縮小とは、1*1で構成されていた島を、3*3に拡大したあと、2*2に縮小する場合はもちろん、実施形態の図6Cに示すように2*2で島として登録した場合に、これを1*2や1*1に縮小する場合を含む。
本発明の一実施形態を図面に基づいて説明する。
図1に示すレイアウトシミュレーション装置1は、矩形の基準領域を有する登録部品データを画面上に配置してレイアウト表示を行うレイアウトシミュレーション装置であり、ユーザからの命令が入力される入力手段3、与えられた命令に基づいて、各種の演算処理を行う演算手段5,演算結果に基づいて画面の制御を行う画面制御手段7を備えている。
入力手段3には、ユーザから配置命令または、ドラッグ命令が与えられる。演算手段5は、前記配置命令を受けると、前記登録部品データの画面上の配置位置を決定する。画面制御手段7は、決定された配置位置に前記登録部品が表示されるように、表示手段9に表示命令を与える。表示手段9は、これを表示する。これにより、画面上の所望の位置に前記登録部品データが配置される。
入力手段3にドラッグ命令が与えられると、演算手段5は、前記配置した登録部品データの矩形基準領域を、画面の上下方向およびまたは左右方向にドラッグさせた前記ドラッグ後の矩形領域を拡縮矩形領域として決定する。さらに、決定した拡縮矩形領域に前記登録部品が重複することなく行列複製配置可能な最大配置状態を演算する。前記拡縮矩形領域を特定する拡縮矩形領域決定データ、および行列複製した登録部品の前記最大配置状態を特定する複製部品配置データは、記憶手段6に記憶される。画面制御手段7は、前記演算結果に基づき、前記行列複製した登録部品を前記表示手段9に表示させる。
なお、演算手段5は、入力手段3から、前記拡縮矩形領域について再度、画面の上下方向およびまたは左右方向に変形されると、前記変形後の矩形領域を拡縮矩形領域として、前記演算処理を実行する。
2.ハードウェア構成
図1に示すレイアウトシミュレーション装置1のハードウェア構成について、図2を用いて説明する。図2は、CPUを用いて構成したハードウェア構成の一例である。
レイアウトシミュレーション装置1は、CPU23、メモリ27、ハードディスク26、モニタ30、CDD(CD−ROMドライブ)25、入力デバイス28、およびバスライン29を備えている。CPU23は、ハードディスク26に記憶された各プログラムにしたがいバスライン29を介して、各部を制御する。
ハードディスク26は、オペレーティングシステムプログラム26o(以下OSと略す)、レイアウトプログラム26pを記憶しており、マスタデータ記憶部26n,図面データ記憶部26dを有する。
オペレーティングシステムプログラム(OS)26oとして、本実施形態においては、マイクロソフト社のWindowsXP(商標)を採用したが、これに限定されるものではない。
なお、上記プログラムは、CDD25を介して、プログラムが記憶されたCD−ROM25aから読み出されてハードディスク26にインストールされたものである。なお、CD−ROM以外に、フレキシブルディスク(FD)、ICカード等のプログラムをコンピュータ可読の記録媒体から、ハードディスクにインストールさせるようにしてもよい。さらに、通信回線を用いてダウンロードするようにしてもよい。
本実施形態においては、プログラムをCD−ROMからハードディスク26にインストールさせることにより、CD−ROMに記憶させたプログラムを間接的にコンピュータに実行させるようにしている。しかし、これに限定されることなく、CD−ROMに記憶させたプログラムをCDD25から直接的に実行するようにしてもよい。なお、コンピュータによって、実行可能なプログラムとしては、そのままインストールするだけで直接実行可能なものはもちろん、一旦他の形態等に変換が必要なもの(例えば、データ圧縮されているものを、解凍する等)、さらには、他のモジュール部分と組合して実行可能なものも含む。
マスタデータ記憶部26nには、1又は2以上の島マスタデータ、およびパーツ情報マスタデータが記憶されている。島マスター100のデータ構造について図3を用いて説明する。島マスター100は、表示領域データ41、名前42、サムネイル画像43,および当該島マスターを構成するパーツ情報45,47,49で構成されている。表示領域41には、スパン(X,Y)、境界線位置(上下左右)、隙間(上下左右)、およびはみ出し(上下左右)を記憶する。スパン(X,Y)、境界線位置(上下左右)、隙間(上下左右)、およびはみ出し(上下左右)について図4を用いて説明する。図3のスパン(X,Y)とは、当該島領域のX方向およびY方向における最大領域であり、図4におけるXsp,Yspが該当する。スパンは後述する拡大領域が指定された場合に、縦横方向の複製数を決定するのに用いられる。境界線位置(上下左右)は、島領域の中央を相対原点とした場合の境界線の座標である。これはスパンが指定されると自動的に演算することができる。隙間(上下左右)は、島マスターを後述する行列複製する場合に、隣接する島間の距離を決めるパラメータである。はみ出し(上下左右)は、後述する繰り返しを行わない部分を決定するパラメータである。図4においては、はみ出しが存在せず、図3では、はみ出し(上下左右)はそれぞれ0となっている。なお、はみ出しが存在する場合の処理については後述する。サムネイル画像とは、後述する一覧表示するときに使用する画像である。また、パーツ情報とは、当該島マスターを構成する部品の情報であり、各パーツについて、パーツ詳細データ(部品名、大きさ等)、配置情報(配置位置、尺度、配置角度)および繰り返し属性で構成されている。
パーツ詳細データのデータ構造を図5に示す。図5AはテーブルT1、図5BはチェアC1のパーツ詳細データである。パーツ「テーブルT1」は、品名「テーブルw1800*w600」、幅「1800」、奥行き「600」、高さ「700」が規定されている。パーツ「チェアC1」として、品名「肘なしチェア」、幅「505」、奥行き「590」、高さ「850」が規定されている。
図3に示す各パーツの配置情報45について説明する。配置位置とは、各パーツの島マスターの相対座標における配置位置である。テーブルT1(パーツ情報1)は図3では図形41が該当するが、図形41の配置位置は島マスタの原点に対してx=-900,Y=125,=0に配置されている。なお、各パーツの原点は当該パーツの図形の左下である。すなわち、パーツ1の左下角が、島マスターの相対原点においていずれに存在するかが記載されている。他のパーツについても同様である。配置角度とは配置原点を中心に回転させた場合について規定する。この場合、チェアC1は180度回転して配置されている。なお、この例では、パーツ1が図4の図形41、パーツ2が図形42,パーツ3が図形43に該当する。
つぎに、繰り返し属性について説明する。繰り返し属性としては、以下の9通りがある。0:当該パーツが縦横どちらも複製可能、1:当該パーツが左上だけに配置、2:当該パーツが上側で横方向にのみ複製可能、3:当該パーツが右上だけに配置、4:当該パーツが左側で縦方向にのみ複製可能、5:当該パーツが右側で縦方向に複製可能、6:当該パーツが左下だけに配置、7:当該パーツが下側で横方向に複製可能、8:当該パーツが右下だけに配置。かかる配置属性については後述する。
なお、パーツ2とパーツ3は同じパーツであるので、パーツ情報2、パーツ情報3は、ともにチェアとなっている。
本実施形態においては、予め島マスタデータが登録されている場合について説明したが、ユーザが所望の図形を島マスターとして登録する場合には、画面上に複数のパーツを呼び出して配置し、島マスター登録命令が与えられると、名前、スパン、隙間(上下左右)をユーザが指定し、これによって境界線位置などのデータを演算して記憶するようにすればよい。
3.フローチャート
レイアウトプログラム26pによる処理について説明する。以下では、第1の実施態様として、図6A に示す画像をx=2500,y=-735に配置した後、点61を入力デバイスで点71(図6B参照)にドラッグし、これにより、図6Cに示す領域65に、島「セミナールーム」が複製可能な個数、複製される場合について説明する。
3.1 配置処理
まず、操作者は、図7に示す一覧表示部51に表示された島「セミナールーム」のサムネイル画像を入力デバイスで配置部53にドラッグアンドドロップする。かかる配置により、図8、図9に示すデータが図面データ記憶部26dに記憶される。
以下、説明する。図8Aはインデックス部である。インデックス部には、「配置した図形情報番号」、「パーツ情報マスター」、「島マスター」が記憶される。この場合、配置した図形情報として、配置した図形情報1〜4が記憶されている。1番目の配置した図形情報の値は「島1」である。島1は、図8Bに示すようなデータ構造のデータである。項目「島マスター」は「島マスター100」である。島マスター100のデータは、図3に示すように、その配置位置、配置角度、繰り返し数、グループ番号、図形領域、表示範囲が規定されている。「島1」の配置位置、配置角度については島マスター100の場合と同様である。すなわち、この場合、島マスター100の相対原点が、x=2500,y=-735に配置されたこととなる。繰り返し個数は、島マスター100が縦方向又は横方向に行列複製された数を表す。この場合は、配置されただけで複製されていないので、繰り返し個数は「縦=1, 横=1」となっている。グループ番号とは、同時に配置された場合に1のグループとして取り扱うためのIDである。この場合であれば、図9に示すように、パーツ1〜パーツ3が同じくグループ番号「1」である。グループ番号により、同時に配置されたパーツであることが分かる。グループ番号は、例えば、アンドゥなどの場合に用いられる。図形領域は、配置位置と島マスター100のスパンから演算された値である。表示範囲は、島マスター100の隙間(上下左右)の値を除いた領域である。本実施形態においては、いずれも画面の左下と右上の座標で図形領域を表示するようにした。
2番目の配置した図形情報は、「パーツ1」である。パーツ1のデータ構造は、島100とほぼである(図9参照)。各パーツについては、図形領域はなく、表示領域のみである。これは、隙間がないからである。また、各パーツについては、さらに、島マスター上の何番目のパーツであるか、および繰り返し位置が記憶される。島マスター上の何番目のパーツであるかは、後述するように、複製する場合にパーツ毎の複製を順に行うためである。また、繰り返し位置とは、後述するように、相対的な位置関係を特定することができる。たとえば、この場合は、繰り返し位置(0,0)であるので、矩形配置する場合に、左上の図形であることがわかる。繰り返し位置(1,0)であれば、繰り返し位置(0,0)の右隣の図形であることが分かる。また、繰り返し位置が同じパーツが1つの島マスターを構成することもわかる。また、図形領域とは当該図形の図面上における配置領域である。
なお、実際の作業としては、島マスター100をドラッグしただけであるが、内部データとして、各パーツについても配置したように記憶する。これは、後述するように、パーツ単位でも変形および位置変更があり得るからである。
他のパーツ2,3については、パーツ1と同様である。
なお、島1は、1番目に配置された島であることを示しており、他の島が続けて配置されると、その島は島2として配置される。
3.2 拡大処理
つぎに、拡大した場合の複製処理について説明する。操作者が、図6Aに示す点61(座標:3400,-1200)、を入力デバイスで点71(座標:6400,-2910)(図6B参照)にドラッグする。かかるドラッグが開始されると、かかるドラッグ処理によって領域が拡大され、拡大された領域内に可能な数だけ島「セミナールーム」が複製される。
かかる処理フローについて図10〜図13を用いて説明する。図10に概要フローチャートを示す。操作者が島の端をつかんで引っ張ると(図10ステップS1)、CPU23は、パーツ数および配置位置を演算する(ステップS3)。この演算結果に基づき、配置を行い、図面データ記憶部26dにデータを記憶する。
以下、ステップS3の詳細について、図11を用いて説明する。まず、CPU23は、ドラッグされた箇所を判断する(ステップS11〜ステップS25)。左下の角(図6点67)がドラッグされた場合(ステップS11)には、(右端X座標−マウス位置X座標)を新エリアの幅W、(上端Y座標−マウス位置Y座標)を高さHとする(ステップS12)。右下の角(図6点61)がドラッグされた場合(ステップS13)には、(マウス位置X座標−左端X座標)を新エリアの幅Wと、(上端Y座標−マウス位置Y座標)を高さHとする(ステップS14)。右上の角(図6点63)がドラッグされた場合(ステップS15)には、(マウス位置X座標−左端X座標)を新エリアの幅Wと、(マウス位置Y座標−下端Y座標)を高さHとする(ステップS16)。左上の角(図6点65)がドラッグされた場合(ステップS17)には、(右端X座標−マウス位置X座標)を新エリアの幅Wと、(マウス位置Y座標−下端Y座標)を高さHとする(ステップS18)。左中央(図6点66)がドラッグされた場合(ステップS19)には、(右端X座標−マウス位置X座標)を新エリアの幅Wと、高さHは現状のままとする(ステップS20)。右中央(図6点62)がドラッグされた場合(ステップS21)には、(マウス位置X座標−左端X座標)を新エリアの幅Wと、高さHは現状のままとする(ステップS22)。上中央(図6点64)がドラッグされた場合(ステップS23)には、幅Wは現状のまま、(マウス位置Y座標−下端Y座標)を高さHとする(ステップS24)。下中央(図6点68)がドラッグされた場合(ステップS25)には、幅Wは現状のまま、(下端Y座標−マウス位置Y座標)を高さHとする(ステップS18)。
ステップS13,ステップS21,ステップS25の場合には、領域について、左上角の座標が変更されないが、それ以外では変更されるので、ステップS11,ステップS15,ステップS17、ステップS19、ステップS23では、変更後の左上角の座標を原点とする原点移動処理を行う(ステップS28)。
この場合、右下角であるP61(図6A参照)がドラッグされた場合であるので、ステップS13からステップS14に進み、新エリアの幅W、高さHが決定される。この場合、島1の図形領域は(1200,-2910)、(3800,-10)であるので、島100の左端X座標=1200、上端Y座標=−10である。また、マウス位置X座標=6900、マウス位置Y座標=−2910であるので、幅W=5200、高さH=2900となる。
つぎに、CPU23は、 (新エリアの幅W−はみ出し左−はみ出し右) をスパンXで除算した値の整数部分を繰り返し数横とし、(新エリアの高さH−はみ出し上−はみ出し下) をスパンYで除算した値の整数部分を繰り返し数縦として、演算する(図11ステップS29)。この場合、はみ出し上、下、左、右はそれぞれ0である(図3参照)ので、幅W/スパンX=5200/2600=2となり、繰り返し数横=2となる。同様に新エリアの高さH/スパンY=2900/1450から、繰り返し数縦=2となる。なお、この例では除算した結果に小数点以下が存在しないが、存在する場合には、切り捨てる。
つぎにCPU23は、各パーツの配置位置を演算する(図11ステップS30)。ステップS30の詳細フローチャートについて図12,図13を用いて説明する。
まず、CPU23は、パーツ番号iを初期化する(図12ステップS51)。つぎに、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する(ステップS53)。この場合、i=1であるので、ステップS55に進み、図3に示す島マスタのデータを参照して、パーツ情報1の「テーブルT1」の繰り返し方法を決定する。このパーツの繰り返し方法は、繰り返し属性が「0」である。したがって、繰り返し数横を横Maxに、繰り返し数縦を縦Maxに代入する(ステップS57)。この場合、繰り返し数横、繰り返し数縦はともに「2」であるので、横Max=2、縦Max=2となる。
なお、繰り返し属性が「1」、「3」、「6」、「8」のパーツについては、横Max=1、縦Max=1とする(ステップS59)。これは、いずれの方向にも複製しないためである。また、繰り返し属性が「2」、「7」のパーツについては、繰り返し数横を横Maxに代入し、縦Max=1とする(ステップS61)。繰り返し属性が「4」、「5」のパーツについては、繰り返し数縦を縦Maxに代入し、横Max=1とする(ステップS63)。これらの繰り返し属性が異なる場合の処理について後述する。
CPU23は、横方向複製番号jを初期化し(ステップS65)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。小さい場合には、縦方向複製番号kを初期化し(ステップS71)、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する(図13ステップS80〜ステップS89)。この場合、繰り返し属性は「0」であるので、スパンX*jをオフセットXとし、スパンY*kをオフセットYとする(ステップS81)。この場合、j=0,k=0なので、オフセットはともに「0」となる。
CPU23は、当該島の配置原点+i番目の島マスターの配置原点+オフセットX, Yの位置へ当該パーツを配置する(図13ステップS90)。この場合、オフセットX,Y方向とも「0」であるので、もともとの位置が配置とされる。すなわち、図14の図形72の位置が配置位置として決定される。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さいので、ステップS80、ステップS81,ステップS90の処理を行う。ステップS90にて、縦方向にスパンY*1だけオフセットさせた位置が、配置位置として決定される。すなわち、図14の図形73の位置が配置位置として決定される。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。この場合、k=2であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし(ステップS73)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、j=1で、横Maxより小さいので、ステップS71以下の処理を行う。これにより、図14の図形74、75の位置が配置位置として決定される。
ステップS91にて、縦方向複製番号kがインクリメントされk=2とされると、ステップS72からステップS73に進む。横方向複製番号jがインクリメントされ(ステップS73)、横方向複製番号j=2とされる。したがって、横方向複製番号jが横Maxより小さくないので、ステップS67にて、パーツ番号iをインクリメントする。
以下ステップS53以降の処理が、パーツ番号2について行われる。パーツ番号2,3について処理が終了すると、ステップS53にてパーツ番号iが島マスターに登録されているパーツの数より大きくなるので、処理を終了する。これにより、島マスター1のパーツ1〜3の配置位置が決定される。
CPU23は、パーツ数およびその配置情報が決定されると、図面情報に再登録する(図10ステップS5)。本実施形態においては、図15に示すように、一旦配置した図形情報1から4については、削除マーク(フラグ)を立て、これを削除し、新たに島1(セミナールーム)を2*2個配置した図形情報5〜17を記憶するようにした。また、各配置した図形情報のパーツマスタおよび島マスターの情報が記憶される。
図16〜図20に、新たに配置した図形情報5〜17のデータを示す。図15を参照すると、配置図形情報5も配置図形情報1と同様に、値が双方とも「島1」となっている。これは、操作者により上記のような拡大処理がなされても、操作者が配置した島としては1番目の島だからである。なお、本実施形態において、このように同じ島1について一方は、削除マークを付与し、同じ島番号でデータを保持しているのは、アンドゥ処理などで便宜だからであり、インデックス部から削除するようにしてもよい。
島1のデータについて、図16Aを用いて説明する。図8Bに示す配置図形情報1と比べると、繰り返し数、グループ番号、図形領域が異なる。繰り返し数は、縦=2,横=2である。グループ番号は同時に配置した図形であるか否かを判断するためのものである。なお、連番で付与されるので配置した図形情報1〜4はグループ番号1としたので、次のグループであるとしてグループ番号2とされている。図形領域は画面上の座標の2点(左上、右下の角)が記憶されている。図16Bに示すパーツ1(テーブル)は、図9Aに示すパーツ1と同じであるので、各項目の値は同じである。図16Cに示すパーツ2は、パーツ1と同じパーツが異なる座標に配置されたものであり、したがって、配置位置が異なる。この場合、配置位置のX座標は同じであるが、Y座標が異なる。また、繰り返し位置が(1,0)となっており、パーツ1の(0,0)に対して、Y方向に1スパン分ズレた位置に配置されていることになる。また、図17Aに示すパーツ3についても同様で、繰り返し位置が(0,1)となっており、パーツ1の(0,0)に対して、Y方向に1スパン分ズレた位置に配置されていることになる。また、図17Bに示すパーツ4についても同様で、繰り返し位置が(1,1)となっており、パーツ1の(0,0)に対して、X方向に1スパン分、Y方向に1スパン分ズレた位置に配置されていることになる。また、図17Cに示すパーツ5は、図9Cに示すパーツ3と同じであるので、各項目の値は同じである。以下、図18〜図20についても同様である。
なお、繰り返し位置は、最初にドロップした状態では、(0,0)とし、図13ステップS90の処理がなされた場合には、その時点のj,kの値を記憶すればよい。
このようにして、島として配置された場合に、操作者によって領域が拡大されると、拡大領域にあわせて、同じものを複製配置することができる。
なお、この状態で、さらに拡大または縮小変形されると、変形後の領域似合わせて、縦、横の配置数を演算し、その配置位置を決定できる。
3.3 はみ出し領域および繰り返し属性が異なる場合の処理
つぎに、図21Aに示すような基本図形81が島マスターに登録されている場合に、領域を横方向に拡大し、図21Bに示す図形91となる場合の処理について説明する。この例では、マスタデータ記憶部26nに、図22、図23に示す島マスター110が記憶されているものとする。なお、島マスター110は、チェアに関する情報も同様に記憶されているが、テーブル、コーナーテーブルとほぼ同様であるので、記載は省略している。また、図21Aにおいて、点P81aは(−2305、−2400)、点P81bは(2505,2400)であり、図21Bにおいて、点P91aは(−2305、−2400)、点P91bは(4105,2400)とする。
図22、図23を参照すると、島マスター110はコーナーテーブルT2、テーブルT3、チェアC2の3種類のパーツで構成されていることがわかる。パーツ情報1〜4は、パーツとしては同じコーナーテーブルT2であり、配置位置および配置角度がそれぞれ異なる。図21Aに示す図形81のコーナーテーブル82、83,84、85がそれぞれ、図22におけるパーツ情報1,2,3,4で特定されるパーツに該当する。同様に、テーブル86,87,88,89がそれぞれ、パーツ情報5,6,7,8で特定されるパーツに該当する。図24に各パーツであるコーナーテーブルT2、テーブルT3、チェアC2のデータを示す。
島110を画面の所定領域に配置すると(この場合、(0,0)に配置した)、上記実施形態と同様にして、図25Aに示すようなインデックスデータ、図25Bに示す島データ、図26〜図28に示すパーツデータが記憶される。なお、図26〜28では、パーツ9以降のパーツデータについては、記載を省略している。また、各パーツについての表示領域は記載を省略している。
図21Bに示す矢印92方向に表示領域が拡大されると、以下のようにして、各パーツの配置位置が決定される。
まず、図11のステップS11〜ステップS29によって、繰り返し数横、繰り返し数縦が決定される。この場合、右がドラッグされた場合となるので、ステップS21からステップS22に進み、(マウス位置X座標−左端X座標)が、新エリアの幅とされる。新エリアの高さは元エリアのままである。この場合、マウス位置の座標およびP91bのX座標から、新エリアの幅は、「6410」であることがわかる。なお、新エリアの高さは元エリアと同じく「4800」である。CPU23は、新エリアの幅、高さから繰り返し数横、繰り返し数縦を決定する(図11ステップS29)。この場合、(6410−1705−1505)/1600=2となり、繰り返し数横を「2」と、(4800−1600−1600)/1600=1となり、繰り返し数縦を「1」と決定する。
(コーナーテーブル102の作成処理)
つぎにCPU23は、図11ステップS30にて各パーツの配置位置を決定する。CPU23は、パーツ番号iを初期化する(図12ステップS51)。つぎに、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する(ステップS53)。この場合、i=1であるので、ステップS55に進み、パーツ情報1で特定されるパーツ(この場合、「コーナーテーブルT2」)の繰り返し方法を決定する。この場合、図22の島マスター110を参照すると、繰り返し属性が「8」であるので、横Max、縦Maxをそれぞれ「1」とする(図12ステップS59)。
CPU23は、横方向複製番号jを初期化し(ステップS65)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、小さいので、縦方向複製番号kを初期化し(ステップS71)、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する(図13ステップS80〜ステップS89)。この場合、繰り返し属性は「8」であるので、オフセットXをスパンX*(繰り返し数横−1)とし、オフセットYをスパンY*(繰り返し数縦−1)とする(ステップS89)。この場合、繰り返し数横は「2」、繰り返し数縦は「1」であるので、オフセットXはスパンX,オフセットYは「0」となる。
CPU23は、当該島の配置原点+i番目の島マスターの配置原点+オフセットX, Yの位置へ当該パーツを配置する(図13ステップS90)。この場合、オフセットXはスパンX,オフセットYは「0」であるので、もともとの位置からスパンX,すなわち、1600右側に配置される。すなわち、図21Bの図形102の位置が配置位置として決定される。
つぎにCPU23は、縦方向複製番号kをインクリメントし(図13ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(図12ステップS72)。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし(ステップS73)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップS67にて、パーツ番号iをインクリメントする。
これにより、パーツ情報1のパーツについて、配置位置決定処理が終了する。
(コーナーテーブル103の処理)
つぎに、CPU23は、島マスター110を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する(ステップS53)。この場合、i=2であるので、ステップS55に進み、繰り返し方法を決定する(ステップS55〜ステップS63)。この場合、パーツ情報2のパーツの繰り返し属性は「3」であるので、横Max、縦Maxをそれぞれ「1」とする(図12ステップS59)。
CPU23は、横方向複製番号jを初期化し(ステップS65)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、小さいので、縦方向複製番号kを初期化し(ステップS71)、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する(図13ステップS80〜ステップS89)。この場合、繰り返し属性は「3」であるので、スパンX*(繰り返し数横−1)をオフセットXとし、オフセットYは「0」とする(ステップS84)。この場合、繰り返し数横は「2」であるので、オフセットXはスパンX,オフセットYは「0」となる。
CPU23は、当該島の配置原点+i番目の島マスターの配置原点+オフセットX, Yの位置へ当該パーツを配置する(図13ステップS90)。この場合、オフセットXはスパンX,オフセットYは「0」であるので、もともとの位置からスパンX,すなわち、1600右側に配置される。すなわち、図21Bの図形103の位置が配置位置として決定される。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし(ステップS73)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップS67にて、パーツ番号iをインクリメントする。
これにより、パーツ情報2のパーツについて、配置位置決定処理が終了する。
(コーナーテーブル104の作成処理)
CPU23は、島マスター110を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する(ステップS53)。この場合、i=3であるので、ステップS55に進み、繰り返し方法を決定する(ステップS55〜ステップS63)。この場合、パーツ情報3のパーツの繰り返し属性は「1」であるので、横Max、縦Maxをそれぞれ「1」とする(図12ステップS59)。
CPU23は、横方向複製番号jを初期化し(ステップS65)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、小さいので、縦方向複製番号kを初期化し(ステップS71)、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する(図13ステップS80〜ステップS89)。この場合、繰り返し属性は「1」であるので、オフセットX、オフセットYはともに「0」とする(ステップS82)。 CPU23は、当該島の配置原点+i番目の島マスターの配置原点+オフセットX, Yの位置へ当該パーツを配置する(図13ステップS90)。この場合、オフセットXは「0」、オフセットYは「0」であるので、もともとの位置に配置される。すなわち、図21Bの図形104の位置が配置位置として決定される。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし(ステップS73)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップS67にて、パーツ番号iをインクリメントする。これにより、パーツ情報3のパーツについて配置位置決定処理が終了する。
(コーナーテーブル105の作成処理)
CPU23は、島マスター110を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する(ステップS53)。この場合、i=4であるので、ステップS55に進み、繰り返し方法を決定する(ステップS55〜ステップS63)。この場合、パーツ情報4のパーツの繰り返し属性は「6」であるので、横Max、縦Maxをそれぞれ「1」とする(図12ステップS59)。
CPU23は、横方向複製番号jを初期化し(ステップS65)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、小さいので、縦方向複製番号kを初期化し(ステップS71)、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する(図13ステップS80〜ステップS89)。この場合、繰り返し属性は「6」であるオフセットXを「0」とし、スパンY*(繰り返し数縦−1)をオフセットYとする(ステップS87)。この場合、繰り返し数縦は「1」であるので、オフセットX,オフセットYはともに「0」となる。
CPU23は、当該島の配置原点+i番目の島マスターの配置原点+オフセットX, Yの位置へ当該パーツを配置する(図13ステップS90)。この場合、オフセットX、オフセットYはともに「0」であるので、もともとの位置に配置される。すなわち、図21Bの図形105の位置が配置位置として決定される。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし(ステップS73)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップS67にて、パーツ番号iをインクリメントする。
これにより、パーツ情報4のパーツについて、配置位置決定処理が終了する。
(テーブル106の作成処理)
CPU23は、島マスター110を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する(ステップS53)。この場合、i=5であるので、ステップS55に進み、繰り返し方法を決定する(ステップS55〜ステップS63)。この場合、パーツ情報5のパーツの繰り返し属性は「5」であるので、横Maxを「1」に、縦Maxに繰り返し数縦を代入する(図12ステップS63)。この場合、繰り返し数縦は、「1」であるので、横Max、縦Maxはともに「1」となる。
CPU23は、横方向複製番号jを初期化し(ステップS65)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、小さいので、縦方向複製番号kを初期化し(ステップS71)、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する(図13ステップS80〜ステップS89)。この場合、繰り返し属性は「5」であるので、オフセットXにスパンX*(繰り返し数横−1)を代入し、スパンY*kをオフセットYとする(ステップS86)。この場合、繰り返し数横は「2」、k=0であるので、オフセットXはスパンX,オフセットYは「0」となる。
CPU23は、当該島の配置原点+i番目の島マスターの配置原点+オフセットX, Yの位置へ当該パーツを配置する(図13ステップS90)。この場合、オフセットXはスパンX,オフセットYは「0」であるので、もともとの位置からスパンX,すなわち、1600右側に配置される。すなわち、図21Bの図形106の位置が配置位置として決定される。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし(ステップS73)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップS67にて、パーツ番号iをインクリメントする。これにより、パーツ情報5のパーツについて配置位置決定処理が終了する。
(テーブル107の作成処理)
CPU23は、島マスター110を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する(ステップS53)。この場合、i=6であるので、ステップS55に進み、繰り返し方法を決定する(ステップS55〜ステップS63)。この場合、パーツ情報6のパーツの繰り返し属性は「2」であるので、横Maxを繰り返し数横に、縦Maxに「1」を代入する(図12ステップS61)。この場合、繰り返し数横は、「2」であるので、横Maxは「2」、縦Maxは「1」となる。
CPU23は、横方向複製番号jを初期化し(ステップS65)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、小さいので、縦方向複製番号kを初期化し(ステップS71)、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する(図13ステップS80〜ステップS89)。この場合、繰り返し属性は「2」であるので、オフセットXにスパンX*jを代入し、オフセットYを「0」とする(ステップS83)。この場合、j=0であるので、オフセットX,オフセットYはともに「0」となる。
CPU23は、当該島の配置原点+i番目の島マスターの配置原点+オフセットX, Yの位置へ当該パーツを配置する(図13ステップS90)。この場合、オフセットX、オフセットYは「0」であるので、もともとの位置に配置される。すなわち、図21Bの図形107aの位置が配置位置として決定される。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし(ステップS73)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、j=1で、横Max=2で、横方向複製番号jが横Maxより小さいので、縦方向複製番号kを初期化し(ステップS71)、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する(図13ステップS80〜ステップS89)。この場合、繰り返し属性は「2」であるので、オフセットXにスパンX*jを代入し、オフセットYを「0」とする(ステップS83)。この場合j=1であるので、オフセットXは、スパンX、オフセットYは「0」となる。
CPU23は、当該島の配置原点+i番目の島マスターの配置原点+オフセットX, Yの位置へ当該パーツを配置する(図13ステップS90)。この場合、オフセットXはスパンX、オフセットYは「0」であるので、もともとの位置からスパンX,すなわち、1600右側に配置される。すなわち、図21Bの図形107bの位置が配置位置として決定される。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし(ステップS73)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップS67にて、パーツ番号iをインクリメントする。これにより、パーツ情報6のパーツについて配置位置決定処理が終了する。
(テーブル108の作成処理)
CPU23は、島マスター110を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する(ステップS53)。この場合、i=7であるので、ステップS55に進み、繰り返し方法を決定する(ステップS55〜ステップS63)。この場合、パーツ情報7のパーツの繰り返し属性は「4」であるので、横Maxを「1」に、縦Maxに繰り返し数縦を代入する(図12ステップS63)。この場合、繰り返し数縦は、「1」であるので、横Max、縦Maxはともに「1」となる。
CPU23は、横方向複製番号jを初期化し(ステップS65)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、小さいので、縦方向複製番号kを初期化し(ステップS71)、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する(図13ステップS80〜ステップS89)。この場合、繰り返し属性は「4」であるので、オフセットXを「0」とし、スパンY*kをオフセットYとする(ステップS85)。この場合、k=0であるので、オフセットX、オフセットYはともに「0」となる。
CPU23は、当該島の配置原点+i番目の島マスターの配置原点+オフセットX, Yの位置へ当該パーツを配置する(図13ステップS90)。この場合、オフセットX、オフセットYはともに「0」であるので、もともとの位置に配置される。すなわち、図21Bの図形108の位置が配置位置として決定される。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし(ステップS73)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップS67にて、パーツ番号iをインクリメントする。これにより、パーツ情報7のパーツについて配置位置が終了する。
(テーブル109の作成処理)
CPU23は、島マスター110を参照し、パーツ番号iが島マスターに登録されているパーツの数を超えていないかを判断する(ステップS53)。この場合、i=8であるので、ステップS55に進み、繰り返し方法を決定する(ステップS55〜ステップS63)。この場合、パーツ情報8のパーツの繰り返し属性は「7」であるので、横Maxを繰り返し数横に、縦Maxに「1」を代入する(図12ステップS61)。この場合、繰り返し数横は、「2」であるので、横Maxは「2」、縦Maxは「1」となる。
CPU23は、横方向複製番号jを初期化し(ステップS65)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、小さいので、縦方向複製番号kを初期化し(ステップS71)、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する(図13ステップS80〜ステップS89)。この場合、繰り返し属性は「7」であるので、オフセットXにスパンX*jを代入し、オフセットYにスパンY*(繰り返し数縦−1)を代入する(ステップS88)。
CPU23は、当該島の配置原点+i番目の島マスターの配置原点+オフセットX, Yの位置へ当該パーツを配置する(図13ステップS90)。この場合、j=0、繰り返し数縦は「1」であるので、オフセットX、オフセットYはともに「0」となる。したがって、もともとの位置に配置される。すなわち、図21Bの図形109aの位置が配置位置として決定される。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし(ステップS73)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、j=1で、横Max=2で、横方向複製番号jが横Maxより小さいので、縦方向複製番号kを初期化し(ステップS71)、縦方向複製番号kが縦Maxより小さい場合には、繰り返し属性に応じた配置位置を決定する(図13ステップS80〜ステップS89)。この場合、繰り返し属性は「7」であるので、オフセットXにスパンX*jを、オフセットYにスパンY*(繰り返し数縦−1)を代入する(ステップS88)。この場合j=1、繰り返し数縦=1であるので、オフセットXはスパンX、オフセットYは「0」となる。
CPU23は、当該島の配置原点+i番目の島マスターの配置原点+オフセットX, Yの位置へ当該パーツを配置する(図13ステップS90)。この場合、オフセットXはスパンX、オフセットYは「0」であるので、もともとの位置からスパンX,すなわち、1600右側に配置される。すなわち、図21Bの図形109bの位置が配置位置として決定される。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。
つぎにCPU23は、縦方向複製番号kをインクリメントし(ステップS91)、縦方向複製番号kが縦Maxより小さいか否か判断する(ステップS72)。この場合、k=1であるので、縦方向複製番号kが縦Maxより小さくないので、横方向複製番号jをインクリメントし(ステップS73)、横方向複製番号jが横Maxより小さいか否か判断する(ステップS66)。この場合、j=1であり、横方向複製番号jが横Maxより小さくないので、ステップS67にて、パーツ番号iをインクリメントする。これにより、パーツ情報8のパーツについて配置位置決定処理が終了する。
以下同様にして、チェアC2についても配置位置を決定する。
CPU23は、図12ステップS53にて、パーツ番号が島マスターに登録されているパーツ数を越えると処理を終了する。
図29〜図33に、拡大後の図形情報5〜17のデータを示す。図32に示すようにパーツ6,7が、島マスター110上では同じパーツである。パーツ7の繰り返し位置から、スパンX分、離れて配置していることが分かる。図33に示すように、また、パーツ9,10についても同様である。
このように、X方向またはY方向のいずれかまたは双方に、自動繰り返し複製をさせたくないパーツについては、はみ出し領域とするとともに、繰り返し属性を定義することにより、これを制約することができる。
3.4 個々のパーツの移動・回転処理
上記第1実施形態にて、図34Aに示すように2*2で島マスター110が配置され、島181〜184が配置されている場合に、島181を構成する一部のパーツ181aを回転させると、残りの島182〜184についても対応するパーツを同調させることもできる。
この場合のフローチャートについて、図35を用いて説明する。まず、CPU23は、個々のパーツを独立して選択できるモードにする(ステップS201)。これは、画面上にそのような切換をするボタンを配置し、入力デバイスで選択するようにすればよい。操作者は、所望のパーツを入力デバイスで特定して、移動又は回転を行う(ステップS203)。かかる移動又は回転は、そのパーツの配置位置を中心に行われる。CPU23は、新たな島マスターを作成して繰り返し数だけ当該島181を登録する。島181が登録された後の配置場所演算(ステップS207),再登録手続き(ステップS209)は、第1実施形態と同じであるので、説明は省略する。
このようにして、図36Bに示すように、全ての島181〜184のパーツを回転させることができる。
なお、この例では一部のパーツを回転させた場合について説明したが、一部のパーツを移動させることも同様に可能である。
なお、本実施形態においては、一旦新しい島マスターを作成して、配置場所を演算するようにしたが、島マスターの何番目のパーツかを示す情報を用いて、かかる情報が同じパーツについて、上記操作された移動量または回転量をそのパーツの原点に対して操作するようにしてもよい。
なお、新たなマスターを作成するには、どのパーツが1つの島を構成するのかを決定する必要がある。これは、「繰り返し位置」が(0,0)のパーツを抽出すればよい。また、当該島マスタの原点は、島1の配置位置を原点として各パーツの配置位置を特定すればよい。
3.6 配置位置の移動
上記実施形態においては、予め決められた島マスターに登録されているスパンだけ離れた位置に、島図形が繰り返し複製配置される。かかるスパンについては、配置した後、これを変更することもできるようにしてもよい。例えば、図36Aに示すように、島190と島191、島192と島193がスパンrにて配置されている場合に、島190を矢印195方向にずらすことにより、図36Bに示すように島193も同じく、スパンnだけ島192から離れて配置する。
この場合のフローチャートについて、図37を用いて説明する。まず、CPU23は、島一つ分を選択できるモードにする(ステップS211)。これは、画面上にそのような切換をするボタンを配置し、入力デバイスで選択するようにすればよい。
操作者は、所望のパーツを入力デバイスで特定して、所望の島を所望の位置まで、移動させる(ステップS213)。CPU23は、新スパンを新たな島マスターとして、当該島181を登録する(ステップS215)。新スパンは、元のスパン+移動量(移動方向を含む)で決定すればよい。たとえば、島マスター100は、x方向のスパンが2600であり、図36Aの移動量が右方向に400である場合、新スパンは3000となる。新しいスパンが登録された後の配置場所演算(ステップS217),再登録手続き(ステップS219)は、第1実施形態と同じであるので、説明は省略する。
なお、本実施形態においては、一旦新しい島マスターを作成して、配置場所を演算するようにした。しかし、これに限定されず、個々のパーツについて、島マスターを構成するパーツがどれかを判断し、移動させるようにしてもよい。
なお、入力デバイスによる移動については、マウス等でドラッグしてもよいし、キーボード等のカーソル移動キーでの移動、移動距離の数値入力など既存の指定方法を用いればよい。
また、スパン変更により、図形領域をこれに合わせて変更するようにしてもよい。この場合、ステップS215とステップS217の間に、元のエリア+移動量を新エリアとするステップを追加すればよい。特に、隙間を広くする場合には、有効である。
4.他の実施形態
上記実施形態においては、矩形形状の場合について説明したが、3角形や変形四角形、その他、5角形以上の多角形であってもよく、また、円形に配置することもできる。円形の場合は、たとえば、第1の方向が円周方向で、第2の方向が放射方向とすればよい。
また、図形データの形式、データ構造、グループを示すデータなどは、どのようにでも構成するが可能である。たとえば、インデックス部を用いて参照するようにしたが、これに限定されない。また、各グループであることを示すデータについて各パーツ毎に記憶するようにしたが、インデックス部に記憶するようにしてもよい。
また、パーツごとに、複数配置した結果としてデータを記憶するようにした。しかし、これに限定されず、パーツをまとめた島として、複数配置するようにしてもよい。
また、一旦元の島データを削除し、複製数分だけ配置するようにしたが、元のデータはそのままとし、増えた分だけ追加するようにしてもよい。
上記実施形態においては、図1に示す機能を実現する為に、CPUを用い、ソフトウェアによってこれを実現している。しかし、その一部もしくは全てを、ロジック回路等のハードウェアによって実現してもよい。
なお、上記プログラムの一部の処理をオペレーティングシステム(OS)にさせるようにしてもよい。
本発明にかかるレイアウトシミュレーション装置1の機能ブロック図である。 図1に示すレイアウトシミュレーション装置1をCPUを用いて実現したハードウエア構成の一例を示す図である。 島マスター100のデータ構造の一例を示す図である。 島マスターのスパン、隙間の関係を示す図である。 パーツ情報マスタのデータ構造の一例を示す図である。 拡大配置の変化を示す図である。 島を配置する場合の画面例を示す図である。 配置した図形情報のデータ構造を示す図である。 配置した図形情報(パーツ情報)のデータ構造を示す図である。 全体のフローチャートである。 図10ステップS3の詳細フローチャートである。 図11ステップS30の詳細フローチャートである。 図11ステップS30の詳細フローチャートである。 テーブルT1を複数配置した状態を示す図である。 複製後の配置した図形情報のデータ構造を示す図である。 複製後の配置した図形情報(パーツ情報)のデータ構造を示す図である。 複製後の配置した図形情報(パーツ情報)のデータ構造を示す図である。 複製後の配置した図形情報(パーツ情報)のデータ構造を示す図である。 複製後の配置した図形情報(パーツ情報)のデータ構造を示す図である。 複製後の配置した図形情報(パーツ情報)のデータ構造を示す図である。 第2実施形態における拡大前後の変化を示す図である。 島マスター110のデータ構造の一例を示す図である。 パーツ情報マスタのデータ構造の一例を示す図である。 パーツ情報マスタのデータ構造の一例を示す図である。 配置した図形情報のデータ構造を示す図である。 配置した図形情報(パーツ情報)のデータ構造を示す図である。 配置した図形情報(パーツ情報)のデータ構造を示す図である。 配置した図形情報(パーツ情報)のデータ構造を示す図である。 複製後の配置した図形情報のデータ構造を示す図である。 複製後の配置した図形情報(パーツ情報)のデータ構造を示す図である。 複製後の配置した図形情報(パーツ情報)のデータ構造を示す図である。 複製後の配置した図形情報(パーツ情報)のデータ構造を示す図である。 複製後の配置した図形情報(パーツ情報)のデータ構造を示す図である。 一部のパーツを回転させる場合の配置前後の変化を示す図である。 一部のパーツを移動・回転させる場合のフローチャートである。 スパンを後で変更させる場合の配置前後の変化を示す図である。 スパンを後で変更させる場合のフローチャートである。
符号の説明
1・・・・ レイアウトシミュレーション装置
23・・・CPU
27・・・メモリ

Claims (9)

  1. A)矩形の基準領域を有する登録部品データを画面上に配置してレイアウト表示をコンピュータに実行させるレイアウトシミュレーションプログラムであって、
    )前記コンピュータは、以下のb1)〜b5)ステップを実行すること、
    b1)ユーザの指示に基づいて前記登録部品データが画面上に配置されると、前記矩形の基準領域を表示するステップ
    b2)前記矩形の基準領域が画面の上下方向およびまたは左右方向にドラッグされると、前記ドラッグ後の矩形領域を拡大矩形領域として決定するステップ
    b3)前記拡大矩形領域について、前記登録部品が重複することなく行列複製配置可能な最大配置状態を求め、前記登録部品を行列複製配置表示するステップ
    b4)前記拡大矩形領域を特定する拡大矩形領域決定データ、および行列複製した登録部品の前記最大配置状態を特定する複製部品配置データを対応づけて記憶するステップ、
    b5)前記拡大矩形領域が画面の上下方向およびまたは左右方向にドラッグされると、前記ドラッグ後の矩形領域を拡大矩形領域として、前記b3),b4)ステップを実行するステップ
    を特徴とするレイアウトシミュレーションプログラム。
  2. 請求項1のレイアウトシミュレーションプログラムにおいて、
    前記登録部品データは、1)前記基準領域の4隅に配置され、前記画面の上下方向および左右方向のいずれにも行列複製を行わない非複製部であって、前記最大配置状態を求める際に、はみ出し領域として扱われる非複製部と、2)前記4隅の非複製部のうちの2つに挟む込まれるように配置され、前記画面の上下方向または左右方向のいずれかのみに行列複製を行える複製方向制限部とを表す繰り返し属性が定義されており、
    前記コンピュータは、前記拡大矩形領域と前記基準領域との差分から、さらに前記はみ出し領域を減算し、減算された残りの領域に、前記複製方向制限部が重複することなく前記行列複製配置させることができる繰り返し数を求め、前記繰り返し数だけ、前記複製方向制限部を行列複製するとともに、行列複製した複製方向制限部分だけ、前記非複製部の配置位置を移動させること、
    を特徴とするもの。
  3. A)所定の基準領域を有する登録部品データを画面上に配置してレイアウト表示をコンピュータに実行させるレイアウトシミュレーションプログラムであって、
    B)前記コンピュータは、以下のb1)〜b4)ステップを実行すること、
    b1)ユーザの指示に基づいて、前記登録部品データが画面上に配置されると、前記所定の基準領域を表示するステップ、
    b2)前記基準領域が拡縮変形されると、前記変形後の領域を拡縮領域として決定するステップ
    b3)前記拡縮領域について、前記登録部品が重複することなく行列複製配置可能な最大配置状態を求めるステップ、
    b4)前記基準領域の配置位置、前記矩形領域を特定する拡縮領域決定データ、および行列複製した登録部品の前記最大配置状態を特定する複製部品配置データを対応づけて記憶するステップ、
    を特徴とするレイアウトシミュレーションプログラム。
  4. 請求項3のレイアウトシミュレーションプログラムにおいて、
    前記コンピュータは、前記拡縮領域がさらに拡縮変形されると、前記拡縮変形後の領域を拡縮領域として、前記b3),b4)ステップを実行すること、
    を特徴とするもの。
  5. 請求項3のレイアウトシミュレーションプログラムにおいて、
    前記登録部品データには、表示状態を変更できない非変更部と、前記非変更部に対して、位置または回転関係を変更できる変更可能部で構成されており、
    前記コンピュータは、前記拡縮領域内のいずれかの登録部品データについて、その変更可能部の位置または回転関係が変更されると、他の登録部品データについても、同様に変更可能部の位置または回転関係を変更すること、
    を特徴とするもの。
  6. 請求項3のレイアウトシミュレーションプログラムにおいて、
    前記登録部品データには、隣接する登録部品との間で所定間隔を設けて行列複製するための間隔データが定義されており、
    前記コンピュータは、以下のステップを実行すること、
    前記間隔を考慮して、前記登録部品が重複することなく行列複製配置可能な最大配置状態を求めるステップ
    前記最大配置状態に応じて画面上に配置するステップ
    操作者によって、一部の登録部品の配置位置が変更されると、前記間隔データが変更されたと判断して、前記最大配置状態を再演算するステップ
    を特徴とするもの。
  7. 請求項6のレイアウトシミュレーションプログラムにおいて、
    前記コンピュータは、操作者によって、一部の登録部品の配置位置が変更されると、前記間隔データの変更された分だけ前記拡縮領域が変更されたと判断して、前記最大配置状態を再演算すること、
    を特徴とするもの。
  8. 請求項1〜請求項7のいずれかのレイアウトシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体。
  9. 請求項1〜請求項7のいずれかのレイアウトシミュレーションプログラムが記録されたコンピュータ。
JP2005157351A 2005-05-30 2005-05-30 レイアウトシミュレーションプログラム Active JP4523873B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005157351A JP4523873B2 (ja) 2005-05-30 2005-05-30 レイアウトシミュレーションプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005157351A JP4523873B2 (ja) 2005-05-30 2005-05-30 レイアウトシミュレーションプログラム

Publications (2)

Publication Number Publication Date
JP2006331288A JP2006331288A (ja) 2006-12-07
JP4523873B2 true JP4523873B2 (ja) 2010-08-11

Family

ID=37552890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005157351A Active JP4523873B2 (ja) 2005-05-30 2005-05-30 レイアウトシミュレーションプログラム

Country Status (1)

Country Link
JP (1) JP4523873B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4350564A1 (en) * 2021-06-04 2024-04-10 Kurita Water Industries Ltd. Automatic layout design method, automatic layout design device, and automatic layout design system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0812674B2 (ja) * 1987-01-31 1996-02-07 コクヨ株式会社 オフィスのレイアウト方法
JP2798365B2 (ja) * 1995-05-30 1998-09-17 テクノビジョン株式会社 部品図形の入力装置

Also Published As

Publication number Publication date
JP2006331288A (ja) 2006-12-07

Similar Documents

Publication Publication Date Title
US20200089387A1 (en) Design tool for arranging objects and adjusting spacing in a layout
US20060066610A1 (en) Method, device, and computer program product for displaying 3D grid in designing configuration model
KR101428365B1 (ko) 모바일 기기의 홈 스크린에서 위젯을 제공하는 방법 및 시스템
JP2012238311A (ja) 三次元シーンにおけるオブジェクトの三次元モデル化アセンブリの設計
JP3598069B2 (ja) レイアウト編集システム、方法及びレイアウト編集プログラム及びそれを記録した記録媒体
JP4523873B2 (ja) レイアウトシミュレーションプログラム
JP2012008884A (ja) 編集装置、編集装置におけるレイアウト編集方法およびプログラム
JP2013114619A (ja) 表示装置、表示方法、プログラム
US7451048B2 (en) Method and apparatus for analyzing electromagnetic wave, and computer product
JP6758551B1 (ja) 画面データ編集プログラム、画面データ編集装置、および画面データ編集方法
JP5013918B2 (ja) 情報処理装置および情報処理方法
JP2023159907A (ja) 情報処理方法、情報処理装置、及び情報処理プログラム
JPH0548876A (ja) グリツド機能を有する画像処理装置
JP6848170B1 (ja) 情報処理装置,コンピュータの制御方法及び制御プログラム
JP3591892B2 (ja) 文字列表示方法および文字列表示装置
JP3866810B2 (ja) 図形処理装置
JPH1166129A (ja) 家屋内設備設計図面作成システム
JP2825111B2 (ja) レイアウトデータ編集装置
JP2003296373A (ja) 防災設備用cadプログラム
JP3706844B2 (ja) 図面情報処理方法および図面情報処理装置
JP2004094466A (ja) 簡略化モデル作成支援装置
Бочаров et al. Editing the AutoCAD entities: constructing a summer theater and circus plan Guidance for laboratory works for “Informatics and computer modeling basics” course/for foreign students of 2nd year studying by orientation 6.060102 «Architecture»(№ 37).
Yarwood Introduction to AutoCAD 2013: 2D and 3D Design
JPH02204871A (ja) オフィス設計支援システム
Yarwood Introduction to AutoCAD 2005: 2D and 3D design

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070220

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100524

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100528

R150 Certificate of patent or registration of utility model

Ref document number: 4523873

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250