AutoLISPはAutoCADの機能を拡張するための便利なプログラミング言語です。ここでは、初心者でも簡単に理解できるように、AutoLISPの基本を解説します。
AutoLISPの始め方
1. Visual LISPエディタの使用
AutoLISPプログラムはテキストエディタで作成できますが、AutoCAD自体に付属するVisual LISPエディタを使うと便利です。Visual LISPエディタは、エラー検出やコード補完機能が充実しており、複雑なプログラムを書く際に役立ちます。
- アクセス方法:AutoCADの[管理]タブ→[アプリケーション]パネルから「Visual LISPエディタ」を開きます。
2. AutoLISPプログラムの構造
AutoLISPプログラムは以下のような構造で始まります。
lisp(defun c:YourProgramCommand ()
; ここにAutoCADに実行させたい内容を記述
(princ)
)
- defunは関数を定義するためのコマンドで、
c:
はコマンドラインから実行可能な関数を示します。
最初のAutoLISPプログラム:原点にズーム
プログラムの作成
以下のコードをVisual LISPエディタで入力してみましょう。
lisp(defun c:ZO ()
(command "_ZOOM" "_C" "0,0" "2000")
(princ)
)
- commandはAutoCADの内部コマンドを実行します。
- _ZOOMコマンドでズーム機能を起動し、_Cで原点にズームします。
- **”0,0″はズームの中心点、“2000”**は拡大率です。
プログラムの実行
- Visual LISPエディタで「ロード」ボタンをクリックしてプログラムを読み込みます。
- AutoCADのコマンドラインで「ZO」と入力し、Enterキーを押します。
これで、図面が原点にズームされます。
変数の使用とユーザー入力
変数の定義
変数を使うことで、プログラムが柔軟になります。例えば、ズームの中心点や拡大率を変数に設定できます。
lisp(defun c:ZP (/ ZPT MRAT)
(setq ZPT '(0 0))
(setq MRAT 2000)
(command "_ZOOM" "_C" ZPT MRAT)
(princ)
)
ユーザー入力の取得
ユーザーがクリックでポイントを選択できるようにします。
lisp(defun c:ZP (/ ZPT MRAT)
(setq ZPT (getpoint "\nポイントを選択してください: "))
(setq MRAT 2000)
(command "_ZOOM" "_C" ZPT MRAT)
(princ)
)
- getpoint関数でユーザーにポイントの入力を求めます。
ローカル変数の使用
プログラム終了後に変数が残らないように、ローカル変数として定義します。
lisp(defun c:ZP (/ ZPT MRAT)
; ...
)
コメントの追加
プログラムにコメントを追加して、他の人が見た時に理解しやすくします。
lisp; 原点にズームするプログラム
; 作成者:エドウィン・プラコソ
(defun c:ZP (/ ZPT MRAT)
; ユーザーにポイントを選択させる
(setq ZPT (getpoint "\nポイントを選択してください: "))
(setq MRAT 2000)
(command "_ZOOM" "_C" ZPT MRAT)
(princ)
)
このようにして、AutoLISPを学ぶことで、AutoCADの作業効率を大幅に向上させることができます。
コメント