コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
GizmoLab 関連
オンラインショップ
CAD&CGブログ
YouTube
GitHub
CAD 系
GizmoTools
AutoLISP
Visual LISP
BricsCADのLISP
GzLib
DCL
OpenDCL
DWG
DXF
CADのコマンド一覧
システム変数
図形の種類
Ver別サポートAPI
CAD用語集
メモ
newLISP
CommonLISP
Script-Fu
Inno setup
JavaScript
ANDROID
Windowsでのファイルハッシュ確認
Prolog
Python
Clojure
Electron
フォント
数学メモ
イメージサイズとメモリ量
blender
Processwire
Win10,11メモ
IIJmio
mediawiki資料
ヘルプ
検索
検索
表示
ログイン
個人用ツール
ログイン
AutoLISPのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
AutoLISP
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
== 概要 == AutoLisp は、AutoCAD や IJCAD など一部のAutoCAD互換ソフトで利用できるインタープリタ型プログラミング言語。 AutoCAD や IJCAD でコマンドやシステム変数、ダイアログ ボックス([[DCL]])を呼び出すことができる。 AutoCAD LT においては利用できない。(AutoCAD LT で AutoLisp の機能を利用可能にするソフトウェアも存在したが、現在はなくなっている。) IJCAD における AutoLisp は、AutoCAD の互換機能として存在し、一部の関数や外部定義関数を除けば、ほぼ同様に利用することが出来る。 (利用可能な関数などの情報については、[[AutoLisp関数互換表]] を参照。) 一番長くサポートされている API ([[バージョン履歴とサポートAPI]]参照) であり、他のAPIに比べバージョンアップに伴う影響を受けにくい API といえるかもしれない。 開発環境として AutoCAD には、Visual LISP という 対話型の開発環境が搭載されているが、IJCAD では特定の開発環境はないため、一般的なテキストエディタによる開発となる。 LISP に最適なエディタとしては括弧の補完機能や字下げ機能があると便利で、以下のようなものがある。 * [http://notepad-plus-plus.org/ Notepad ++] * [http://www.jsdlab.co.jp/~kamei/ xyzzy] や [http://ja.wikipedia.org/wiki/Emacs emacs] など 以下は、市販エディタ。 * [http://hide.maruo.co.jp/software/hidemaru.html 秀丸] ・・・ [[ファイル:acad_hilights.zip]] * [http://jp.emeditor.com/ EmEditor] * [http://www.megasoft.co.jp/mifes/ MIFES] など == AutoLisp 関数の構文 == AutoLisp の構文は非常にシンプルである。以下に例を示す。 [[ファイル:Function_const.png]] '''解説'''<br /> 上の例では、foo 関数には 1 つの必須引数 string と、1 つの省略可能な引数 number があり、引数 number は追加で指定することができる。一般に、引数の名前は予期されるデータ タイプを表している。 この foo 関数で有効な呼び出しと無効な呼び出しの例をを示す。 * '''有効な呼び出し例''' ** (foo "catch") ** (foo "catch" 22) ** (foo "catch" 22 31) * '''無効な呼び出し例''' ** (foo 44 13) ; <- 引数 string が無い ** (foo "fi" "foe" 44 13) ; <-引数 number に文字が指定されている ** (foo) ; <- 引数が無い。 無効な呼び出しを行うとエラーになり、処理が中断される。 == 関数の機能別一覧 == 以下は関数を分類分けしたもの。他に、[[:Category:AutoLISP|目次からのアクセス]]も便利です。 <div class="mcol3"> * '''基本関数:''' **[[アプリケーション処理]] **[[算術演算]] **[[比較演算と条件]] **[[エラー処理]] **[[関数処理]] **[[リスト操作]] **[[文字列処理]] **[[シンボル処理の各関数]] * '''ユーティリティ関数:''' **[[変換]] **[[デバイス アクセス]] **[[表示コントロール]] **[[ファイル処理]] **[[ジオメトリック]] **[[照会とコマンド]] **[[ユーザ入力の各関数]] *'''選択セット **オブジェクト **シンボル テーブル関数:''' **[[拡張データ処理]] **[[オブジェクト処理]] **[[選択セット操作]] **[[シンボル テーブル処理の各関数]] * '''[[メモリ管理関数]]''' * '''Visual LISP の拡張関数:(ActiveX)''' **[[ActiveX コレクション操作|コレクション操作]] **[[ActiveX データ変換|データ変換]] **[[ActiveX 曲線計測|曲線計測]] **[[ActiveX ディクショナリ処理|ディクショナリ処理]] **[[ActiveX オブジェクト処理|オブジェクト処理]] **[[ActiveX プロパティ処理関数|プロパティ処理関数]] * '''[[リアクタ関数]]''' * '''[[VLX 名前空間関数]]''' * '''[[名前空間対話関数]]''' * '''[[Windows レジストリ処理関数]]''' * '''[[画層状態関数]]''' * '''[[ダイアログ ボックス関数]]''' </div> == AutoLISP プログラムの作成 == AutoLISP のプログラムは、以下の 3つのファイル形式のうちのいずれかで作成する。 * LSP ファイル(.lsp) ・・・ AutoLISP プログラム コードが記述された ASCII テキスト ファイル。 * FAS ファイル(.fas) ・・・ 1 つの LSP プログラム ファイルのコンパイル済みバイナリ ファイル。 * VLX ファイル(.vlx) ・・・ 1 つ以上の LSP ファイルとダイアログ コントロール言語(DCL)ファイルの両方または一方をコンパイルしたファイル。 ::* IJCAD では、LSPのみ対応。FASファイルとVLXファイルは利用できない。(2009年10月. IJCAD7 現在) ::* IJCAD において、LISPプログラムを秘匿化したい場合は、AutoCAD に搭載されている、PROTECT.EXE か ebatch社(IntelliJAPANの前身)からでていた IJPROLSP.EXE を利用して暗号化する。 AutoCAD では、AutoCAD 2000 以降 Visual LISP (VLISP) 環境が備わりコンパイラ、デバッガ、などを備えた統合開発環境(IDE)を備えているため、その上で AutoLISP プログラムを記述していくことが出来る。 IJCAD では、IDEは備わっていないため、テキストエディタにより記述していく。 また、AutoCAD・IJCAD どちらの環境でも、短い構文は次のようにコマンドプロンプトに直接記述して実行することが出来る。 コマンド: (+ 1 2 3 4 5 ) 15 <- 実行結果 == AutoLISP プログラムの使用 == AutoLISP のプログラム(.lsp のファイル)は、まずそのプログラムをCADへロードする必要がある。 ロードは、コマンド プロンプトに対して load 関数を使用して AutoLISP コードを入力する。 load 関数が正常に終了すると、ファイル内の最後の式の値がコマンド プロンプト領域に表示される。これは通常そのファイルで定義されている最後の関数の名前か、新しくロードされた関数の使用説明となる。 load 関数が失敗すると、AutoLISP のエラー メッセージが表示される。 load 関数の失敗は、AutoLISPファイルのコーディング間違いや、コマンド プロンプトに対して間違ったファイル名を入力した場合に起こる。 load 関数の構文は、次のとおり。 (load filename [onfailure]) この構文は、load 関数に 2 つの引数があることを示している。 1つ目の filename は、読み込むAutoLISPファイル名(とパス)で必須。 2つ目の onfailure は省略可能で、失敗した場合のメッセージを入力する。 コマンドラインからの入力で AutoLISP ファイルをロードする場合は通常、filename 引数のみを指定する。 次の例は、AutoLisp ファイル newfile.lsp をロードしている。 コマンド: (load "newfile") 拡張子 .lsp は省略可能。この形式は、現在のライブラリ パス上のどの LSP ファイルに対しても動作する。 ライブラリ パス上にない AutoLisp ファイルをロードする場合は、filename 引数として、ファイル名を絶対パスで指定する必要がある。 コマンド: (load "d:/files/morelisp/newfile") または コマンド: (load "d:\\files\\morelisp\\newfile") '''注 :''' フォルダ パスを指定する場合、スラッシュ(/)または 2つの円記号(¥¥)を区切り記号として使用する必要がある。通常Windowsで利用される単一の円記号(¥)での指定は、2つの円記号(¥¥)となる。これは、AutoLisp では単一の円記号(¥)には特別な意味があるため。 * 尚、AutoCADとIJCAD共に LISPファイルを CAD のウィンドウに ドラッグ&ドロップしても読み込まれる。 ; 自動ロード :* AutoCAD では、パスの通っているフォルダにある acad.lsp があると起動時に読み込み・実行される。また、acaddoc.lsp ファイル があるとファイルを開始するたびに読み込み・実行される。 :* IJCAD では、パスの通っているフォルダにある icad.lsp があると、ファイルを開始するたびに読み込み・実行される。 : 自動ロードファイルはファイルの初期化前に実行されるため、command 関数は使ってはいけない。 AutoCAD の場合は、S::STARTUP 関数に記述する事になっている。 == IJCAD で自動ロードする場合の注意点 == IJCAD は図面毎に名前空間が分かれていないため、自動ロードで何か初期化を行う処理がある場合、別の図面を開いたときにすでに開いている変数値などが上書きされてしまう可能性があるため、特に複数のファイルにまたがる処理をする場合は注意が必要である。 == AutoLISP が使えるCADソフト == {| class="wikitable" ! 製品名 !! LSP対応 !! DCL対応 !! FAS/VLX対応 |- | Ares CAD *1 || - || △ || - |- | Ares CAD COMed *1 || ○ || △ || - |- | AutoCAD || ○ || ○ || ○ |- | AutoCAD LT || - || - || - |- | BricsCAD || ○ || ○ || - |- | IJCAD || ○ || ○ || - |- | IntelliCAD系CAD || ○ || △*2 || - |} * *1…ファイル名8文字+拡張子だけ。パス指定フルパスのみ。 * *2…日本語の扱いが良くないものが多い。 == 特殊フォーム == 特殊フォームは一般的な AutoLISP 関数呼び出しとは異なる方法で引数を評価する。一般的な関数は、関数に渡されたすべての引数を評価してからそれらの引数に基づいて実行するが、特殊フォームは、すべての引数を評価しないか、または特定の条件の下でのみいくつかの引数を評価する。 以下は特殊フォームとみなされる AutoLISP 関数。 * and * command * cond * defun * defun-q * foreach * function * if * lambda * or * progn * quote * repeat * setq * trace * untrace * vlax-for * while == 関連書籍 == * AutoCAD AutoLISP 実践ガイド 著者: T.ボスフィールド / 出版: (株)星雲社 * AutoLISP 徹底活用ガイド 著者: 落合重紀 / 出版: (株)翔泳社 * AutoLispの初歩 著者: 岡島正夫 / 出版: 東海大学出版会 * [http://www.amazon.co.jp/gp/search?ie=UTF8&keywords=AutoLISP&tag=gz026-22&index=books&linkCode=ur2&camp=247&creative=1211 AmazonでAutoLISP書籍を見る] [[Category:AutoLISP]]
このページで参照読み込みされているページ:
テンプレート:AutoLISP
(
ソースを閲覧
)
AutoLISP
に戻る。
検索
検索
AutoLISPのソースを表示
話題を追加