==================================================発行部数737======
AutoCADカスタマイズ入門講座 No.3 1999/04/17
===================================================================
*** お詫び ****
 前回号をこちらの手違いにより2度発行してしまいました。申し訳御座い
ませんでした。
*** お詫び ****
 AutoCADカスタマイズ入門講座第3号をお送りします。
4月も中旬を過ぎ、暖かな日が多くなってきました。毎年の事ですが、この
時期は朝起きるのもつらいですし、どうも仕事に身が入らない日が多いです
。皆さんの中にもそのような方がおられるかも知れませんネ。特に新人さん
や新入生の方は今とても大変な時期だと思います。もう、かなりいやになっ
ている方もいるかと思いますが(私も新人さんの時はそうでした)、もう少し
でゴールデンウィークなので、とりあえずそこまでがんばってみて下さい(
そこまで行けばもう大丈夫です)。

--------------------------------------------------------------------
1.変数2
--------------------------------------------------------------------
 前回は変数について簡単に説明しました。変数とは箱の様なもので
AutoLISPで扱う事が可能な各種データを保存する事が出来る事を理解して頂
けたでしょうか?。さて、今回は変数に格納する事が可能なデータタイプに
ついて見ていきます。

(1)整数
 整数とは小数点を含まない数です。例えば、5、-123、98などが整数の一
例です。AutoLISPで扱える整数は-32768から32768の間の数です。上記の範
囲外の数を使用すると不正確な結果となる事があるので注意しなければなり
ません。

(2)実数
 実数とは小数点以下の数を含む数です。例えば、3.333、-60.1、32.6978
等が実数の一例です。また実数ではeまたはEを用いて指数形式で表す事が可
能です。例えば、1000.0は1E3または1.0E3、0.000091は9.1e-5等と表現する
事が出来ます。さて、ここで前回の宿題を思い出してください。

式 結果
(/ 5.0 2.0) 2.5
(/ 5.0 2) 2.5
(/ 5 2.0) 2.5
(/ 5 2) 2

すなわち、
実数を実数で割った答えは実数
実数を整数で割った答えは実数
整数を実数で割った答えは実数
整数を整数で割った答えは整数(小数点以下は切り捨て)
となります。数を扱う時には上記の特性を十分に意識する必要があります。
常に自分がどのような数を扱っているのか注意するようにしましょう。
また、次の式をコマンドラインか入力し結果を確かめてください。
(= a b)という関数は、aとbが等しいかどうかを調べる関数です。等しければ
T、異なっていればnilとコマンドラインへ表示します。

(= 1 1)
(= 1 1.0)
(= 1 1.000001)
(=1.000000 1.000001)

1及び1.000000と1.000001は殆ど同じ数ですが、当然同じ数ではありません
。「当たり前だよ!」と思われるかも知れませんが、実際にプログラム作る
とこの様な比較を行ってしまい思った通りにならない事が良くあります。こ
の辺の詳しい話は、また別の機会に説明できると思います。

(3)文字列
 ダブルクォーテーションで囲んだ文字を文字列と呼びます。例えば、
変数aに文字列を代入するには、
(setq a "AutoLISP")
とする事でaに文字列"AutoLISP"を格納する事が出来ます。漢字などの日本
語も一応使えますが、経験上あまり使わない事をお勧めします(もうずいぶ
ん前の話ですが、SunOSというOSで動くAutoCAD GX-5(R12以前のバージョン
です)でAutoLISPによるアプリケーション開発を行った時、ある漢字を使う
と起きる不思議な現象にずいぶん悩まされました。もっとも、最近のバージ
ョンでは問題無いのかも知れませんが)。

(4)リスト
 住所の一覧などを紙に出力し、「これが住所のリストだよ!」などと人に
渡す事があると思います。AutoLISPでのリストも感覚的にはこれと殆ど同じ
様なものと考える事が出来ます。簡単に言えば、今までの例では1つの変数
に整数にしろ、文字列にしろ1つのデータしか代入していませんでいたが、
リストを用いる事により1つの変数に複数のデータを格納する事が可能にな
ります。住所のリストには以下のように複数人の名前、住所、年齢が載って
いるとします。

M.Iijima Ibaraki 37
M.Morikawa Fukuoka 31
S.Inoue ehime 30

何らかの理由でこれらの住所録をAutoLISPのプログラムに組み込まなければ
ならない場合、

(setq name1 "M.Iijima")
(setq adr1 "Ibaraki")
(setq age 30)
(setq name2 "M.Morikawa")
...

などとしていたらプログラム上に大変多くの変数が表れる事になり、非常
に見苦しく間違いも犯しやすくなります。
まず、これらを個人ごとのリストとしてみましょう。

(setq adr1 (list "M.Iijima" "Ibaraki" 30))
(setq adr2 (list "M.Morikawa" "Fukuoka" 31))
(setq adr3 (list "S.Inoue" "ehime" 30))

とすると個人ごとの住所が1つの変数にそれぞれ格納出来ます。実際にこれ
らの式をコマンドラインから入力してみてください。それぞれ、!adr1、
!adr2、!adr3とするとデータの内容が表示されます。最後に全員の住所を1
つの変数に格納してみます。大体想像できましたか?。以下のようにすると
1つの変数に格納できます。

(setq adr (list adr1 adr2 adr3))

これで、!adrとすると全員の住所が表示されます。
この様にすると紙の上に印刷された住所録のように、1つの変数に住所録が
格納された事になります。この例の様にリストの中にはリストを入れる事が
出来ます。何となくリストの雰囲気をつかんでもらえたでしょうか?
 実際のプログラムでリストは直線の始点、終点などの座標を保持するため
にもっとも多く使用されます。(list 1.0 5.0 3.0)とする事でAutoLISPでは
x,y,z座標を表します。
コマンドラインから以下のように、LINEコマンドを実行してもらうともっと
解りやすいでしょうか?(始点0,0 終点10,10 の直線を引く場合です)。

コマンド:line
どこから:(list 0 0)
どこへ:(list 10 10)
どこへ:
コマンド:

※2次元で図形を描画する場合はz座標は省略可能です。

その他のデータタイプには以下の様なものがあります
(5)選択セット
(6)エンティティ(図形)名
(7)ファイル識別子
(8)シンボル
上記のデータタイプについては単独での説明がし難いため、追々例題の中な
どで説明していきたいと思います。

--------------------------------------------------------------------
2.まとめ
--------------------------------------------------------------------
 今回私たちは以下の事を学習しました。
1.AutoLISPで使用できる基本的なデータタイプについて理解した。

 今回はデータタイプの説明だけで終わってしまいましたがいかがだったで
しょうか?。ちょっと面倒なところですが前回、今回の所は重要な部分なの
でコマンドラインから試すなどして理解を深めてください。

ご意見、ご希望、疑問点などがありましたら下記のメールアドレスへお願い
いたします。

お待たせしました。次回は簡単な図形を作図してみます。
お楽しみに。

====================================================================
●バックナンバーは下記のURLで参照する事が出来ます。
http://www2u.biglobe.ne.jp/~Saturn5/alisp.htm
また、『まぐまぐ』さんでもバックナンバーを見る事が出来るようになりま
した(パチパチ!!)。詳しくは『まぐまぐ』さんのWebをご覧ください。URLは
http://www.mag2.com/   
です。
====================================================================
■登録/解除の方法
http://www2u.biglobe.ne.jp/~Saturn5/alisp.htm
「AutoCADカスタマイズ入門講座」は、上記URLよりいつでも
登録/解除可能です。
====================================================================
●広告の問い合わせ
広告のお問い合わせは以下のメールアドレスへお願いします。
wankichi@mba.nifty.ne.jp
====================================================================
■「AutoCADカスタマイズ入門講座」No.3
発行責任者 :わんきち(wankichi@mba.nifty.ne.jp)
発行システム:インターネットの本屋さん『まぐまぐ』
http://www.mag2.com/
マガジンID:0000011579
====================================================================
戻る