AutoLISP入門 関数紹介

【AutoLISP】変数にデータを格納する関数「setq」

setq-1
はこ
はこ

こんにちは!はこです。

業務で5年以上AutoLISPを使用しています。

AutoLISPってなに?という方はまずこちらの記事をご覧ください。
AutoCADユーザーがAutoLISPを覚えるべきメリット3選

AutoLISPではsetqという関数を使用することで変数にデータを格納することができます。今回の記事では変数の使い方とsetqの使用例について解説してきますのでぜひご覧ください。

【AutoLISP】変数にデータを格納する関数「setq」

setq-2

変数ってなに?

プログラミングでは変数と呼ばれるものにデータを格納することができます。変数は格納するデータの代わりとして様々な処理に使用できるので非常に便利です。例えば、次の計算で数値の10を15に書き換える必要があったとします。

(+ 10 1)
(- 10 2)
(* 10 3)

3つくらいなら大した手間はかかりませんが、100や1000あるときは非常に骨が折れる作業となってしまいます。この場合は変数を使用することで修正を1回で済ますことが可能です。

(setq a 10)
(+ a 1)
(- a 2)
(* a 3)

上記の例で登場したsetqは変数にデータを格納する関数です。アルファベットのaが変数を表しており、隣に記述したデータ(数値の10)が変数aに格納されます。変数aの中身を変更すると、変数aを使用した計算すべてに反映させることが可能です。

また、他のプログラミング言語では使用する変数とデータ型(格納するデータの種類)をあらかじめ宣言する必要があります。しかし、AutoLISPではデータ型の宣言が不要です。数値や文字列などあらゆるデータを格納することができます。

変数名の命名ルール

変数名は英数字を組み合わせて自由に記述できます。ただし、使用できない文字もあるので注意してください。ちなみに大文字と小文字は区別されません。

変数名に使用できない文字
  • ( 左括弧
  • ) 右括弧
  • . ピリオド
  • ' クォーテーション
  • " ダブルクォーテーション
  • ; セミコロン

setqの動作

setqには変数名と格納するデータを並べて記述するという決まりがあります。ちなみに、他のプログラミング言語では「=」で変数にデータを格納しますがAutoLISPでは「同じ」という意味で使用されます。

使用例① 文字列を格納する

文字列を変数に格納するときは文字列の両側に「"」を付ける必要があります。例えば、「りんご」の場合は「"りんご"」と記述します。「"」がないと文字列ではなく変数として認識されてしまうので注意してください。

(setq a "りんご")

使用例② 複数の変数にデータを格納する

setqは複数の変数にデータを格納することが可能です。例えば、3つの変数それぞれにデータを格納する場合は次のように記述します。

(setq a 1 b 2 c "りんご")

変数aに数値の1、変数bに数値の2、変数cに文字列のりんごが格納されます。

setqの書式

setqの構文と引数および返り値は次のとおりです。

構文
(setq sym expr [sym expr] ...)
引数
sym
データを格納する変数。
expr
変数に格納するデータ。
返り値
expr評価結果
一番最後に評価されたexprの評価結果が返る。

まとめ

今回のまとめ

  • 変数は格納しているデータの代わりとして扱える
  • AutoLISPではsetqで変数にデータを格納ができる
  • 文字列を格納するときは両側に「"」を付ける
  • setqは複数の変数にデータを格納できる

-AutoLISP入門, 関数紹介

独学おすすめ書籍はコチラ
独学おすすめ書籍はコチラ