AutoLISP入門

AutoCADユーザー必見!【AutoLISPを覚えるべきメリット5選】デメリットも解説

  • 面倒な手動の作業を自動化したい
  • 誰でも同じ作業をできるツールがほしい
  • AutoLISPとは何か知りたい

手間のかかる面倒な作業や同じことの繰り返しに苦痛を感じていないでしょうか。そんな方にとってAutoCAD専用のプログラミング言語「AutoLISP」は救世主になります。

私はAutoLISPを独学し、5年以上業務で活用しています。当記事ではAutoLISPとはなにか紹介したのち、AutoCADユーザーがAutoLISPを覚えるべきメリットを解説します。

無償で使えるツールなので誰でもAutoCADの自動化が可能です。AutoLISPを覚えて面倒な作業から解放されましょう!

そもそもAutoLISPってなに?

2716-h2-image1

AutoLISPとはAutoCAD専用のプログラミング言語です。LISPという言語をベースに開発されたため、AutoCADの「Auto」と「LISP」をつなげて「AutoLISP」と呼びます。

LISPとは

LISPとは今から60年以上前に開発されたプログラミング言語です。とても古い言語ですが最近の人工知能研究などに採用されています。LISPという名前は「List Processor」が由来です。

LISPについてもっと知りたい方はこちらの記事をご覧ください。
>>人工知能で大活躍!今熱い「LISP」の成り立ちとこれから
>>Lispの車窓から見た人工知能

AutoLISPがAutoCADに実装されたのは1986年ごろなので40年近くの歴史があります。LISPと同様に古い言語ですが今でも現役で活躍しているプログラミング言語です。

今後もAutoCADに実装され続ける可能性が高いのでAutoLISPで作成したプログラムは資産となるでしょう。

AutoLISPを覚えるべきメリット5選

2716-h2-image2

それではAutoCADユーザーがAutoLISPを覚えるべきメリットを解説します。メリットは次の5つです。

  • 作図を自動化できる
  • 誰でも無償で使える
  • Windows版とMac版の両方で使える
  • 互換CADでも使用できる
  • CADデータとの相性が良い

作図を自動化できる

AutoLISPを活用すれば作図を自動化できます。理由は作成したプログラムが命令どおり動いてくれるからです。

円を作図したり、テキストを入力したり手間のかかる作業をプログラムが代わりに実行します。一度作成したプログラムは何度でも使えて人間のようにミスをしません。

仕組みを作成することで同じ作業を誰でも正確にこなすことができます。

誰でも無償で使える

AutoCADに標準搭載されているため誰でも無償で利用できます。

プログラムはメモ帳やTextEditなどOSに標準搭載されているエディタで作成可能です。Windows版のAutoCADのみ「Visual LISP エディタ」という専用のエディタが用意されています。

Microsoftが提供する「Visual Stdio Code」という無償エディタならWindows版とMac版のどちらでも使用可能です。

ちなみに、次の記事で紹介している書籍ではVisual LISP エディタの使い方が分かります。AutoLISPの初歩も解説しているので書籍でAutoLISPを学習したい方におすすめです。

せっかく誰でも無償で使えて便利なツールがあるのに活用しないのはもったいない。

Windows版とMac版の両方で使える

AutoLISPはAutoCADのWindows版とMac版の両方で使えます。Windows版とMac版の両方でサポートしているAPIはAutoLISPとObjectARXだけです。

API
Application Programming Interfaceの略称。ソフトウェアやプログラム、Webサービスの間をつなぐインターフェースを指す。
>>APIとは何か?API連携ってどういうこと?図解で仕組みをやさしく解説
ObjectARX
C++というプログラミング言語を使用するAutoCADの開発環境。
>>ObjectARXとはどういった開発環境なのですか?

たとえば、Mac版からWindows版へ移行する際にMac版で作成したプログラムもそのままWindows版で使うことができます。OSが変わっても使用できる柔軟性の高いプログラミング言語です。

互換CADでも使用できる

AutoCADから互換CADに移行しても使用できます。理由はAutoLISPが独自のプログラミング言語で移植性が高いからです。
>>最適な AutoCAD API の選択と移植性

互換CADとはAutoCADと同等の機能を持ちながら安価でコスパの高いCADを指します。以下の互換CADでは一部の機能を除いてAutoLISPが使用可能です。

互換CAD名概要公式ページ
IJCAD開発元はインテリジャパン株式会社(本社:名古屋)
国内導入実績88,000本以上
詳細を見る
BricsCAD国内代表代理店は図研アルファテック株式会社
「Oneプラットフォーム、Oneファイル形式」がコンセプト
詳細を見る
ARES株式会社コンピュータシステム研究所が提供する2次元用CAD詳細を見る
DraftSight提供元はフランスのダッソー・システムズ
以前は無償版が提供されていた
詳細を見る
ZWCAD開発元は中国のZWCAD Software
互換CADの世界シェアNo1(2021年時点)
詳細を見る

苦労して作成したプログラムが無駄になりません。

CADデータとの相性が良い

AutoLISPはCADデータと相性が良いです。

すべての図形の要素を1つの「リスト」で表現することができます。リストとは図形の要素と対応するパラメータを一組にしたものです。

たとえば、円のデータを簡単にリストで表現すると次のようになります。

((図形種 円) (半径 数値) (中心 座標))

実際にはもっと多くの要素があり、要素の名前はグループコードと呼ばれる数値になっています。パラメータを書きかえることでサイズの変更や図形の移動が可能です。

図形データの書き換え方についてはこちらの記事をご覧ください。
>>図形編集を自動化しよう!AutoLISPの図形名関数を解説

また、図形を処理する独自関数により複雑な作業も単純化できます。例を挙げるとssgetなどがAutoLISPの独自関数です。
>>【ssget】選択作業を効率化!AutoLISPの選択セットを解説

複雑な図形のデータをシンプルに扱えるのでCADデータとの相性はバツグン。

AutoLISPの2つのデメリット

2716-h2-image3

ネット上に情報が少ない

AutoLISPはネット上に情報が少ないという弱点があります。理由はAutoCAD専用のマイナーなプログラミング言語だからです。

Office製品で使用するVBAのようなメジャーな言語は検索すると大量の情報が見つかります。問題が起きても調べれば自己解決できる点はメジャーなプログラミング言語の強み。

マイナーな言語は何か問題が発生しても解決が難しいです。

カッコ()が多い

カッコ()を必ず記述するプログラミング言語です。構文の基本形は全体をカッコ()でくくります。

たとえば次のような形です。

(関数名 引数1 引数2・・・)

最初の左カッコから最後の右カッコまでが1つの構文です。左カッコの次に関数名、関数名の後ろに引数を並べます。関数や引数は半角スペースまたはタブ、改行でつなぐことが可能です。

実際には複数の文を記述するので以下のような形になります。

(関数a
  (関数b
    (関数c 引数1 引数2)
    (関数d (関数e 引数3 引数4))
  )
)

カッコ()の数が合わないとエラーになるので注意が必要です。より複雑なプログラムになるとカッコの数が合わない箇所を探すのは一苦労。慣れない間は記述ミスに気を付ける必要があります。

AutoLISPを試してみる

2716-h2-image4

サンプルプログラムで実際にAutoLISPを体験してみましょう。プログラムの実行手順は以下のとおりです。

  1. サンプルプログラムをコピペしてlspファイルを作成
  2. AutoCADの図面上にlspファイルをドラッグしてロード
  3. 関数名を入力してプログラムを実行

①サンプルプログラムをコピペしてlspファイルを作成

まず、次のサンプルプログラムをメモ帳などのテキストファイルにコピペしてください。

動作の詳細はこちらの記事で解説しています。
>>【サンプルコード】200個の円を一瞬で作成する!【AutoLISP】

プログラムの使用に関しては自己責任でお願いします。不具合の発生を防ぐため新規ファイルでの実行がおすすめです。

(defun c:test
  (
    / 
  ;ローカル変数定義
    row column xpitch ypitch n xpt ypt center ent
  )

 ;初期値
  (setq row 10)
  (setq column 20)
  (setq xpitch 2)
  (setq ypitch 2)
  (setq n 0)

 ;ループ
  (repeat (* row column)

  ;中心座標の算出
    (setq xpt (* (rem n column) xpitch))
    (setq ypt (* (fix (/ n column)) ypitch))
    (setq center (list xpt ypt))

  ;円と画層の作成
    (setq ent (list (cons 0 "circle") (cons 10 center) (cons 40 0.5) 
                    (cons 8 (itoa (1+ n))) (cons 62 n)))
    (entmake ent)

  ;ループカウントをカウントアップ
    (setq n (1+ n))
  )
)

拡張子を「.lsp」にするとlspファイルとして認識されます。lspファイルとはAutoLISPのプログラムが記述されたファイルのことです。

ファイル名は「test.lsp」として保存してください。メモ帳の場合、保存するときは「ファイルの種類」を「すべてのファイル」にしておかないと拡張子を「.txt」から変更できません。

image1

②AutoCADの図面上にlspファイルをドラッグしてロード

作成したlspファイルを図面上にドラッグすると 「セキュリティ-未署名の実行ファイル」の警告が出てきます。

警告が出るのは「test.lsp」の信頼できる電子署名が無いためです。作成元が明らかなファイルなので警告が出ても問題ありません。「1回ロードする」をクリックするとlspファイルがロードされます。

作成元が不明なファイルで「常にロードする」をクリックしてはいけません。「常にロード」は安全が確保されたファイルのみで行ってください。

③関数名を入力してプログラムを実行

lspファイルのロードが完了したらコマンドラインに「test」と入力してください。次のように200個の円と画層が一瞬で作成されます。

test-colorfulcircle

rowとcolumnの数値を変更すると作成される円と画層の数が変わります。ぜひ、いろいろ試してみてください。

AutoLISPでワンランク上のCADオペレーターを目指そう!

2716-h2-image5
  • 作図を自動化できる
  • 誰でも無償で使える
  • Windows版とMac版の両方で使える
  • 互換CADでも使用できる
  • CADデータとの相性が良い

AutoLISPを書籍で学びたい方には「AutoCAD 自動化攻略読本」がおすすめ。初心者向けに解説されており、AutoLISP以外の自動化方法も学べるお得な一冊。とにかくAutoCADで楽をしたい方はぜひご覧ください。

だれでも簡単にAutoCADを自動化

-AutoLISP入門

AutoLISPのおすすめ書籍はコチラ
AutoLISPのおすすめ書籍はコチラ