

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
autolispとは?
AutoLISPは、AutoCADなどのCADソフトで使われる Lisp系 のプログラミング言語です。図面の自動化・カスタマイズ・反復作業の効率化を目的として設計されています。プログラムを書いておくと、繰り返しの作業を自動で実行してくれます。
なぜ学ぶのか
CADの作業では、同じ操作を何度も繰り返す場面が多くあります。自動化できれば時間を節約でき、ミスを減らせます。さらに、複雑な操作を設計しておくと、同じ図形を複数の図面に素早く適用できます。
基本の考え方
AutoLISP は「先頭に ( を置く式の集まり」です。関数の名前と引数を前置して書くのが基本形です。例として defun を使って新しい関数を定義します。もう少し専門的な話になりますが、引数の扱い方、グローバルかローカルか、CAD コマンドの呼び出し などが出てきます。
初めての例
以下は、2点間を結ぶ直線を描く超簡単な例です。実際には CAD の画面上で実行され、点を取得して LINE コマンドを呼ぶ形になります。
(defun c:drawLine ( / p1 p2)\ (setq p1 (getpoint))\ (setq p2 (getpoint))\ (command \"LINE\" p1 p2 \"\")\)
基本的な構文の見方
AutoLISP の基本は次の3つです。
よく使われるコマンドの一覧
| コマンド | 意味 |
|---|---|
| defun | 新しい関数を定義する |
| getpoint | 画面上の点を取得する |
| command | CAD 内部のコマンドを実行する |
| setq | 変数に値を代入する |
実務シナリオ1: 部品リストの自動作成
部品の図面を多く作る際、同じ属性のブロックを並べて配置する作業は時間がかかります。AutoLISP でブロックの挿入と属性の設定を自動化すれば、図面の一括作成が可能です。例として、図形を自動配置する関数を作り、部品番号を引数として受け取り、配置位置を計算してくれます。
実務シナリオ2: 寸法線の自動配置
図面上の複数の線分に対して、同じ間隔で寸法線を追加する作業は、熟練者でも手間がかかります。AutoLISP で座標計算と LINE/DIMENSION コマンドの連携を組むと、寸法ラインの自動配置が可能です。
まとめ
autolisp は CAD の作業を楽にする強力なツールです。初心者でも、基本の考え方と簡単な例を通じて徐々に学習を進められます。焦らず、手を動かして学習を続けましょう。
autolispの同意語
- AutoLISP
- AutoCADの自動化とカスタマイズを目的としたLISP系言語の正式名称。AutoCADで動作する拡張的なLisp。
- Auto Lisp
- AutoLISPの別表記。意味は同じだが、スペース入りの表現。
- AutoLISP言語
- AutoCAD向けのLISP系プログラミング言語そのもの。図面自動化のための記述が中心。
- AutoCAD Lisp
- AutoCADアプリケーション上で用いられるLISPのこと。AutoLISPを指す日常表現。
- AutoCAD用LISP
- AutoCAD向けに作られたLISPコードやライブラリのこと。
- CAD Lisp
- CADソフト全般で使われるLISP系言語を指すことがある表現。文脈によりAutoLISPを指す場合も。
- AutoLISPプログラミング
- AutoLISPを使って機能を自動化・拡張するプログラミング作業のこと。
- AutoLISPスクリプト
- AutoLISPで書かれたスクリプトファイルやコードの総称。
- Lisp for AutoCAD
- 英語表現。AutoCADで使われるLISP言語を意味する。
- AutoLISP開発
- AutoLISPを用いたカスタムツール・アプリケーションの開発活動のこと。
autolispの対義語・反対語
- 手動プログラミング
- AutoLISPではなく、手作業でコードを書くこと。自動化を使わず、1件ずつ人が処理する状態の対義語です。
- 手動操作
- CADの作業をスクリプトや自動化ツールなしで人の手により行うこと。
- 自動化なし
- 自動化の機能を全く使わず、作業を人の手で繰り返す状態。
- 非自動化
- 自動化を適用していない、手動の作業フロー。
- Lisp以外の言語
- AutoLISPではなく、他のプログラミング言語を使うことを意味する広義の対義語。
- 非Lisp言語
- AutoLISP以外の言語を指す表現。
- VBAによる自動化
- AutoLISP以外の自動化手段として用いられる VBA でのスクリプティング・自動化。
- .NET/C#による自動化
- AutoCADの.NET APIを使った自動化。AutoLISPの対比として挙げられることが多い。
- Pythonによる自動化
- Python での AutoCAD 自動化。AutoLISPとは異なる言語での自動化手段。
- No-code/ローコード自動化
- コードを書かずに自動化を実現する手法。AutoLISPの“コードを書く Lisp”に対する対比。
- 画面操作中心
- プログラムによる自動化を使わず、画面操作を中心とした作業スタイル。
- GUI操作のみ
- グラフィカルユーザーインターフェース(GUI)のみで完結する作業。スクリプトやコードを使わない状態。
autolispの共起語
- AutoCAD
- CADソフトの代表。AutoLISPはこの環境を自動化するための Lisp 方言です。
- Visual LISP
- AutoLISPを拡張した統合開発環境。VLispとも呼ばれ、デバッグやエディタ機能を提供します。
- VLIDE
- Visual LISP Integrated Development Environment。コード作成とデバッグができるツール。
- Lisp
- Lisp系言語の総称。AutoLISPはその一種で、リスト処理が得意です。
- API
- AutoCADの機能を拡張・自動化するためのプログラムインターフェース。
- ActiveX
- COMベースの技術。AutoLISPからAutoCADオブジェクトを操作する際に使われます。
- COM
- Component Object Model。オブジェクトの操作や外部連携の土台となる技術。
- vlax
- Visual LISPのActiveX/COM連携API群のプレフィックス。
- DXF
- データ交換用フォーマット。DXFデータを読み書きする場面で使われます。
- defun
- 関数定義の基本構文。新しい機能を作るときの核となる要素です。
- setq
- 変数へ値を代入する基本関数。
- if
- 条件分岐の基本構文。
- cond
- 複数条件を扱う分岐構文。
- while
- 条件が成立する間、ループを回します。
- repeat
- 一定回数だけループする構文。
- car
- リストの先頭要素を取り出す関数。
- cdr
- リストの残りの要素を取り出す関数。
- cons
- 新しい要素を先頭に追加して新しいリストを作成。
- list
- 新しいリストを作成する関数。
- mapcar
- リストの各要素に対して関数を適用する高階関数。
- foreach
- VLispでよく使われる、リストの要素を順に処理する構文。
- command
- AutoCADのコマンドをLISPから実行する関数。
- load
- 外部のLISPファイルを読み込んで実行します。
- princ
- 出力を抑制・表示するための基本出力関数。
- read
- 文字列をLISPオブジェクトに変換して読み込みます。
- getvar
- システム変数の値を取得する関数。
- setvar
- システム変数に値を設定する関数。
- getpoint
- 画面上の点を取得する関数。
- entget
- エンティティのDXFデータを取得します。
- entmake
- 新しいエンティティを作成します。
- entmod
- 既存エンティティの変更を適用します。
- entsel
- エンティティを選択する関数。
- nth
- リストのn番目の要素を取得します。
autolispの関連用語
- AutoLISP
- AutoCAD用のLisp方言で、図面の自動化やカスタマイズを実現できるプログラミング言語です。
- VLisp (Visual LISP)
- AutoCADに組み込まれたVisual LISPの開発環境で、拡張機能やActiveX連携が容易です。
- DCL (Dialog Control Language)
- ダイアログを定義してUIを作成する言語。LISPと組み合わせて対話式ツールを作れます。
- defun
- Lisp関数を定義する基本構文。AutoCADコマンドを定義する際は先頭を C: にしてコマンド化します。
- C:コマンド定義
- AutoCADで直接実行できるカスタムコマンドを作る命名規約の一例です。
- setq
- 変数に値を代入する基本的な手続き。リストや数値、文字列を保存できます。
- car
- リストの先頭要素を取り出します。
- cdr
- リストの先頭要素を除いた残りを取り出します。
- cons
- 新しい要素をリストの前に追加して新しいリストを作ります。
- list
- 複数の値を1つのリストにまとめます。
- append
- 2つ以上のリストを結合して新しいリストを作ります。
- mapcar
- リストの各要素に対して同じ関数を適用します。
- nth
- リストの指定位置の要素を取り出します。
- assoc
- アソシエーションリストからキーに対応する値を探します。
- cond
- 複数の条件分岐を順番に評価して処理を分岐します。
- if
- 1つの条件に対して真偽で分岐します。
- while
- 条件が真の間繰り返します。
- repeat
- 指定回数だけ繰り返します。
- load
- 外部のLISPファイルを現在のセッションに読み込みます。
- compile
- LISPを事前にコンパイルして実行速度を高め、.FASファイルを作ります。
- FAS
- コンパイル後に作成される実行ファイルの拡張子。自動読み込みに使われます。
- entget
- エンティティ(図面の要素)のデータリストを取得します。
- entmod
- エンティティのデータを更新します。
- entdel
- エンティティを削除します。
- entsel
- ユーザーに図形のエンティティを選択させる入力関数です。
- getpoint
- 画面上で点の座標を取得します。
- getreal
- 実数値を取得します。
- getint
- 整数値を取得します。
- getstring
- 文字列を取得します。
- ssget
- 図面内のエンティティを選択する選択セットを作成します。
- acad.lsp
- 起動時に読み込まれる初期化LISPファイルの俗称です。
- acaddoc.lsp
- 各ドキュメントの読み込み時に実行される初期化ファイルです。
- DXF
- AutoCADのデータ交換フォーマット。図面情報を他ソフトとやり取りできます。
- ActiveX / vlax
- VLispからAutoCADのActiveX/COMオブジェクトを操作する機能です。
- VLIDE
- Visual LISP用の統合開発環境。デバッグや補完機能を提供します。
- AutoCAD API
- AutoCADを外部から操作する公式API群。LISPからも活用できます。



















