AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
CAD作ろ! 図面の保存と呼び出し
一般的なファイルについての話は、ファイルに記載しましたが、ここではサンプルプログラムで作成した図の保存機能と呼び出し機能を入れてみます。
メニューに、よくあるパターンと同じように、「ファイル(F)」の中に、「開く (O)...」、「上書き保存 (S)」、「名前を付けて保存 (A)...」を追加し、それぞれのNameを、MnuFileOpen、MnuFileSave、MnuFileSaveAs、とします。なお、メニューの横に「...」とあるのは、このメニューを選んだら画面が表示されますよ、という意味を示しています。
 
次に、「開く」「保存」のダイアログ画面を使うので、Delphi6に標準で搭載されている [Dialogs]内の OpenDialog と SaveDialog を使います。これを実行して画面を出すには、Executeメソッドを実行します。Executeメソッドは、[OK]をクリックしたら True、[キャンセル]をクリックしたら False を返します。必要なプロパティを指定しておきます。特に、Optionsプロパティで見た目や動作等が変わります。OpenDialogでは、Optionsの ofPathMustExist、及び、 ofFileMustExist を、SaveDialogでは、ofPathMustExist、及び、 ofOverwritePrompt を True にしておきます。
DefaultExt プロパティは、拡張子を省略入力した時に自動的に付加する拡張子を指定します。FileName プロパティは、実行する前に指定しておけばデフォルトのファイル名となります。その場合、パスを除去しておく必要があります。実行後、これにフルパスファイル名が返されます。InitialDir プロパティは、デフォルトのパス名、実行した時に開かれる現在のフォルダ、を示します。つまり、直前に開いたフルパスファイル名は、パス名部とファイル名部に分け、それを InitialDir と FileName に入れて実行すれば良い、という事になります。保存するフォルダは固定したい場合には、InitialDirに入れる内容を固定の名前にすれば良いでしょう。これらは、オブジェクトインスペクタで指定するのではなく、実行時に入れるようにします。
 
さて、それでは、以外と重要、かもしれない、図面ファイルの拡張子を何にするか?を決めます。
単純に、CADソフトだから「.CAD」、絵のデータだから「.DRW」「.PIC」、図面データだから「.ZUM」「.ZMN」、単純に「.DAT」、のようなパターンと、このCADソフトの名前(省略名)を使うパターンがあります。また、既に他のソフトで使っているような名前はなるべく避けます。一般的な中間ファイル「.DXF」「.BMI」「.IGS」「.PCS」「.SFC」「.P21」「.STP」等や、その他のファイル「.BMP」「.WMF」「.EMF」「.WAV」「.AIF」「.JPG」「.PNG」「.PS」「.EPS」「.PDF」等々、も避けます。長さは1文字〜3文字ではなく、4文字以上でも構いませんが、余り長すぎるものは推奨出来ません。いろいろ制限はあるかもしれませんが、自由に決めて下さい。
ここでは、サンプルCADデータ、という事で、「.SCD」とでもしておく事にします。
 
次に、データファイルを、テキスト形式にするのか、バイナリ形式にするのか、を決めます。ここでは、後でのデータの可読性を高め、データの扱いを容易にするために、テキスト形式で読み書きする事にします。テキスト形式だとデータのサイズが大きくなるのではないか?という点についてですが、現在では、フロッピーディスクを使うよりは、MO、CD-R、DVD、USBメモリ、のような大容量メディアがよく利用されています。最近はFDDを搭載していないPCもある位です。また、.zipや.ZIPのような圧縮形式もよく利用されていますので、ファイルサイズを小さくしたい場合には、圧縮ツールを使う事も出来ます。バイナリ形式では圧縮ツールを使っても余り小さくなりません。ですので、ファイルサイズがどうこうというよりも、バイナリ形式は、データを直接操作出来ないようにしたり、暗号化したい場合、等のような目的で利用される事が多いようです。
 
ファイルを開く・名前を付けて保存をする、というのは良いとして、「上書き保存」というのは、以前指定したファイル名に対して保存を行う、という事ですが、ファイルを開く時のファイル名、名前を付けて保存する時のファイル名、になります。そのファイル名を変数に入れて保持する必要があります。新規状態で「上書き保存」をした時には、名前を付けて保存を行うようにします。
 
 
実際に、ファイルに保存するデータとして、どんなものがあるのか?についてですが、一般的には、
 @各種設定内容
 A図面要素データ
があります。@の内容を「ヘッダー」と呼ぶ場合があります。これは、図面要素データよりも前にある、冒頭にある、という意味合いです。例えば、レイヤの設定、色の設定、線種の設定、文字や寸法の設定、各オプション設定、等が入ります。
 
データの作り方としては、
 @データ数 & データ
 Aデータ & データの終わりを示すコード
があります。
数が分かっているのであれば、for文でデータ数を指定して読み書きしますので@が分かりやすいでしょう。
数が分からない場合には、最後に ENDコードを付けて、そのENDコードを読み取ったらデータを読むのも終了、つまり、while文で読み書きをする事になります。例えば、DXFファイルの「ENDSEC」「EOF」等がこれに当たります。どちらでも良いですが、どちらもしないというやり方は避けましょう。ここでは、@のパターンを使います。
 
データの可読性を高めるためには、データにコメント(注釈文)を付ける、というのも良い方法ですが、その分、データのファイルサイズが大きくなってしまうので注意が必要です。コメントは、行末に付けるか、1行そのままコメントとするか(コメント行)、がありますが、上記の@のパターンだと、コメント行を数に含むのかどうか、を決める必要があります。また、コメントの最初には通常、コメントを意味する記号を付けるのがお約束です。例:「;」「'」「/」「//」「#」 コメントは読み飛ばしをするようにプログラミングします。
ここでは、行末にコメントを入れないようにします。各データ区分の最初に「;」を付けたコメント行を入れます。データ途中のコメント行は作りません。
 
1行で複数の値を並べる場合には、値と値の区切り記号を決める必要があります。例:「,」、空白、TABコード、「;」 読み込み部が多少複雑になります。
ここでは、1行=1値、とします。
 
 
 
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
 ▲PREV
 ▼NEXT
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015 By AFsoft All Rights Reserved.