「Load」の版間の差分
編集の要約なし |
(→MEMO) |
||
(同じ利用者による、間の7版が非表示) | |||
1行目: | 1行目: | ||
{{AutoLISP}} | |||
; 構文 | ; 構文 | ||
: (load ''filename'' [''onfailure'']) | : (load ''filename'' [''onfailure'']) | ||
; 機能 | ; 機能 | ||
: ファイル内の LISP 式を評価する。 | : ファイル内の LISP 式を評価する。 | ||
: load 関数は、他の LISP 関数内から呼び出すことができ、 (ロードしたファイル中から)再帰的に呼び出すこともできる。 | : load 関数は、他の LISP 関数内から呼び出すことができ、 (ロードしたファイル中から)再帰的に呼び出すこともできる。 | ||
; 引数 | ; 引数 | ||
15行目: | 19行目: | ||
; 戻り値 | ; 戻り値 | ||
: 成功した場合は不定。失敗した場合は、onfailure 引数の値。ただし、onfailure 引数を指定しなかった場合は、エラーメッセージが表示される。 | : 成功した場合は不定。失敗した場合は、onfailure 引数の値。ただし、onfailure 引数を指定しなかった場合は、エラーメッセージが表示される。 | ||
== MEMO == | |||
* AutoCAD 2014 以降、システム変数 SECURELOAD を 1 または 2 に設定している場合は、カスタム アプリケーションはセキュア モードでのみ機能することになった。セキュア モードで動作している場合、プログラムはコードを含むファイルを信頼する場所からロードおよび実行するように制限される。信頼する場所は、システム変数 TRUSTEDPATHS で指定する。(オプションダイアログにも項目がある。) | |||
* AutoCAD 2021 以降の初期値では、filename 引数は、Unicode 文字列を受け入れる形になった。(以前は ASCII 文字列。) | |||
システム変数 LISPSYS で、コントロールできる。 | |||
0 - ASCII (MBCS) 文字をサポート(従来の動作) | |||
1 または 2 - Unicode 文字をサポート | |||
注: システム変数 LISPSYS の値を変更した後、変更を反映するには AutoCAD を再起動する必要がある。 | |||
* BricsCAD はV20から BOMあり"リトルエンディアン"な UTF-8,16 のロードに対応した。 | |||
* BricsCAD でfilename を拡張子なしで指定した場合、次の順で読み込む。 | |||
*# name.des | |||
*# name.lsp | |||
* IntelliCAD系は、8.x 以降ユニコード(LISPSYS =1,2相当)のみの対応になっている。 | |||
; サンプル | ; サンプル | ||
: 前提として、ファイル /fred/test1.lsp があり、そのファイルでは次のような式が定義されているとする。 | <pre class="brush: autolisp;"> | ||
; 前提として、ファイル /fred/test1.lsp があり、そのファイルでは次のような式が定義されているとする。 | |||
; (defun MY-FUNC1 (x) | |||
; ...関数の本体... | |||
; ) | |||
; (defun MY-FUNC2 (x) | |||
; ...関数の本体... | |||
; ) | |||
; | |||
; さらにファイル名が test2 で、拡張子が .lsp、.fas、.vlx のファイルは存在しないとする。 | |||
; この条件で以下のように実行する。 | |||
(load "/fred/test1") | |||
MY-FUNC2 | |||
(load "¥¥fred¥¥test1") | |||
MY-FUNC2 | |||
(load "/fred/test1" "bad") | |||
MY-FUNC2 | |||
(load "test2" "bad") | |||
"bad" | |||
(load "test2") ; AutoLISP エラーが発生する。 | |||
エラー: ロードに失敗しました | |||
; AutoLISP エラーが発生する。 (onfailure でメッセージ指定) | |||
(load "test2" "\nエラー:test2 ファイルが読み込めませんでした。") | |||
エラー: test2 ファイルが読み込めませんでした。 | |||
; AutoLISP エラーが発生する。 (onfailure で atom 指定) | |||
(load "test2" nil) | |||
nil | |||
</pre> | |||
----- | ----- | ||
関連事項 | 関連事項 | ||
* [[autoload]] 関数 | |||
* [[autoarxload ]] 関数 | |||
* [[defun]] 関数 | * [[defun]] 関数 | ||
* [[vl-load-all]] 関数 | * [[vl-load-all]] 関数 |
2022年11月17日 (木) 07:01時点における最新版
- 構文
- (load filename [onfailure])
- 機能
- ファイル内の LISP 式を評価する。
- load 関数は、他の LISP 関数内から呼び出すことができ、 (ロードしたファイル中から)再帰的に呼び出すこともできる。
- 引数
-
- filename : ファイル名を示す文字列。
- この引数には、c:/function/test1のように、ディレクトリの指定を含めることができる。スラッシュ(/)または 2 つの円記号(\\)は、有効なディレクトリ区切り記号。filename 引数の文字列でディレクトリを指定しなかった場合、指定されたファイルを パスから検索する。パスのどこかにファイルが見つかると、そのファイルをロードする。
- onfailure : load が失敗したときに返される値。
- この引数が LISP の有効な関数である場合に、その関数を評価する。この引数には文字列かアトムを指定するのがほとんど。これによって、エラーが発生したとき、特別な動作を行うことができる。
- 戻り値
- 成功した場合は不定。失敗した場合は、onfailure 引数の値。ただし、onfailure 引数を指定しなかった場合は、エラーメッセージが表示される。
MEMO
- AutoCAD 2014 以降、システム変数 SECURELOAD を 1 または 2 に設定している場合は、カスタム アプリケーションはセキュア モードでのみ機能することになった。セキュア モードで動作している場合、プログラムはコードを含むファイルを信頼する場所からロードおよび実行するように制限される。信頼する場所は、システム変数 TRUSTEDPATHS で指定する。(オプションダイアログにも項目がある。)
- AutoCAD 2021 以降の初期値では、filename 引数は、Unicode 文字列を受け入れる形になった。(以前は ASCII 文字列。)
システム変数 LISPSYS で、コントロールできる。 0 - ASCII (MBCS) 文字をサポート(従来の動作) 1 または 2 - Unicode 文字をサポート 注: システム変数 LISPSYS の値を変更した後、変更を反映するには AutoCAD を再起動する必要がある。
- BricsCAD はV20から BOMあり"リトルエンディアン"な UTF-8,16 のロードに対応した。
- BricsCAD でfilename を拡張子なしで指定した場合、次の順で読み込む。
- name.des
- name.lsp
- IntelliCAD系は、8.x 以降ユニコード(LISPSYS =1,2相当)のみの対応になっている。
- サンプル
; 前提として、ファイル /fred/test1.lsp があり、そのファイルでは次のような式が定義されているとする。 ; (defun MY-FUNC1 (x) ; ...関数の本体... ; ) ; (defun MY-FUNC2 (x) ; ...関数の本体... ; ) ; ; さらにファイル名が test2 で、拡張子が .lsp、.fas、.vlx のファイルは存在しないとする。 ; この条件で以下のように実行する。 (load "/fred/test1") MY-FUNC2 (load "¥¥fred¥¥test1") MY-FUNC2 (load "/fred/test1" "bad") MY-FUNC2 (load "test2" "bad") "bad" (load "test2") ; AutoLISP エラーが発生する。 エラー: ロードに失敗しました ; AutoLISP エラーが発生する。 (onfailure でメッセージ指定) (load "test2" "\nエラー:test2 ファイルが読み込めませんでした。") エラー: test2 ファイルが読み込めませんでした。 ; AutoLISP エラーが発生する。 (onfailure で atom 指定) (load "test2" nil) nil
関連事項
- autoload 関数
- autoarxload 関数
- defun 関数
- vl-load-all 関数