|
前頁と話はがらっと変わり、CADソフトウェアとデータベースの話を少し考えてみます。
CADとは「Computer Aided Design」の略で『コンピュータによる設計支援システム』のことですが、ドローソフトやペイントソフトでもコンピュータで作図する事は可能です。ペイントソフトは主にラスターデータ(イメージデータ)を対象とし、点(ドット、ピクセル)単位での扱いを行う画像ソフトです。これに対し、ドローソフトはベクトルデータ(ベクターデータ)を対象とし、点も勿論ありますが、線、円、円弧、曲線、四角、のような図形単位での扱いを行うソフトです。画面上に目盛などが表示され、mm単位での長さで扱う事が出来るものも多く、計測機能や寸法線作図機能のようなCADっぽい機能を含む場合もあります。そこまで行くと一般的な2D-CADとの違いは何か?という話にもなってくるかもしれません。
ドローソフトやCADソフトでは、画面上に表示される絵そのものとは別に、メモリ空間に図形データを格納し、参照する事が出来るようになっています。絵そのものしか扱わない場合、ペイントソフトと同じく、画面の拡大縮小移動などが制約されてしまいます。拡大したらカクカク表示で拡大倍率も余り無い等。そのため、メモリ内の図形データ(mm単位)を参照し、画面の位置・倍率に対して逐次計算を行い、画面に表示するようになっています。そのメモリ内の図形データ群はすなわち、CADデータベースであると言えます。尤も、通常はメモリと直接アクセスを行っており、一般的なデータベースソフトを使っている訳ではありません。もしそのようにすると、明らかに遅くなってしまうでしょう。PC自体の速度が遅い・Windowsが遅いという環境ではとても無理な話でした。しかし現在ではPC自体が高速動作出来ますし、また、速度が多少遅くとも運用面でのメリットから、Web上で動作するCADソフトも出てきています。おそらくサーバー上のデータベースに図形データが格納され参照されるのであろうと推測出来ます。
そのようなCADソフト内部の話とは別に、CADソフトとデータベースソフトを効果的に相互運用しましょう、という試みが以前からあります。最初に登場したのは、図面管理システムでしょう。通常は、フォルダ(ディレクトリ)により分類された図面ファイル群、をCADでのファイル選択画面から探して利用する事になりますが、図面管理システムによって、例えば、図面のプレビュー画面とファイル名、設計者名や表題などの図面情報を1画面上で扱い、検索が出来るという仕組みです。当初はデータベースソフトは利用されていなかったかもしれませんが、徐々に、「Microsoft ACCESS」や「Oracle」「SQL Server」といったデータベースソフトを利用するシステムが登場してきました。特に、C/S型データベースの場合、自分だけではなく他の人の図面ファイル等も参照・検索出来るようになります。それによって複数人数による図面等のプロジェクト管理も出来るようになります。
ここではまず、Jw_cad の起動履歴をデータベースに格納するプログラムについて考えます。当方では既に「JwWatch」や「JwwHistory」のようなソフトを公開していますが、それと多少似ているかもしれません。しかし明らかに違うのは、ここではデータベースソフト(Firebird)を利用し、起動履歴をデータベースとして作成する事です。
プロジェクト「d015」の準備を行います。「C:\DelphiProgram\jww」フォルダの中に「d015」というフォルダを作成し、Delphi6を起動します。メニュー「プロジェクト」→「オプション」を実行し、下記の設定を行います。
[アプリケーション]頁
タイトル | d015−Jw_cad起動履歴 |
[ディレクトリ/条件]頁
パス及びディレクトリ | C:\DelphiProgram\db\d015 |
トップメニューから、いつものデータベース設定の画面、そこで、PC利用者名の登録も出来るようにしておきます。データベース名は「JWWDB.FDB」とし、テーブル「BOOTJWW」を作成します。
テーブル「BOOTJWW」
名前 | 変数名 | 内容 |
登録番号 | N | 整数 1,2,3,… 他と重複しない |
PC利用者名 | PNAME | 文字(最大半角16文字) |
フォルダ名 | L_FOLDER | 文字(最大半角255文字) |
展開フォルダ名 | N_FOLDER | 文字(最大半角255文字) |
ファイル名 | FILE_NAME | 文字(最大半角255文字) |
起動日付 | BOOT_DATE | 文字(最大半角10文字) |
起動時刻 | BOOT_TIME | 文字(最大半角 8文字) |
ファイル日付 | FILE_DATE | 文字(最大半角10文字) |
ファイル時刻 | FILE_TIME | 文字(最大半角 8文字) |
ファイルサイズ | FILE_SIZE | 整数 |
展開フォルダ名というのは、フォルダ名にネットワークドライブを利用している場合、ネットワークドライブ名をその割当元の内容に展開した内容を示します。
これまでのようなデータ入力画面というものはありません。Jw_cadで図面を開くたびにデータを手入力する、というのは、かなりの負担でしょう。面倒であれば誰もソフトウェアなんて使いません。このソフトではこれまであった「データ入力」の変わりに、「Jw_cad起動チェック」画面があります。Jw_cadを起動する前に実行し、割込時間を指定して[起動チェック開始]をクリックしておいて下さい。
「JwWatch」や「JwwHistory」と同じような画面が表示されます。新規の「無題」状態や、ファイル選択画面を表示してファイル選択中の場合には表示されません。
Jw_cad のタイトル画面(キャプション)はファイル名だけを表示しフォルダ名がカットされています。そのため、ファイルの存在するフォルダがどこなのか分かりません。本プログラムでは、「JwWatch」や「JwwHistory」同様、Jw_cad のレジストリを参照し、「開く」を行った際に変更されるレジストリのフォルダ値を、その図面ファイルのフォルダであると推測しています。そのため、タイミングによっては異なるフォルダになるかもしれませんし、別フォルダにある同じファイル名の図面を開いた場合には内容が更新されないという案件もあります(ファイル名で判断しているため)。しかし「これ」という確証のあるものが取得出来ない以上、どうしようもありませんからこれは仕様であるとして仕方がないものとします。
(※外部変形では図面ファイル名を書き出す機能がありますので、外部変形プログラムを作成する場合には多少状況は異なってくると思います)
Jw_cadにてファイルを開いた際に、この画面内容を更新し、データベースにデータ登録を行います。
登録した内容は、[データ一覧表示]で見る事が出来ます。
これまでのプログラムと同様、並び替え、絞り込みでの表示が可能です。1画面は100件までとしていますが、プログラムを変更する事で色々可能ですが、あまりに多すぎると遅くなりますので御注意下さい。[更新]をクリックすると内容を最新状態にします。
プログラム内容を見て頂ければ分かると思いますが、データベースとのアクセスはメイン画面の Form1(Unit1.pas)に集約しています。ありがちな手続きや関数はこの中に用意しています。
今回はソースプログラムと実行プログラムを一緒に圧縮しています。プログラムの内容についてはソースプログラムを参照して下さい。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
シェアウェア
Script!World
データベース
A B C D
E F G H
I J K L
M N O P
Q R S T
U V W X
Y Z
|