「Load」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
編集の要約なし
 
 
(同じ利用者による、間の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;">
: (defun MY-FUNC1 (x)   
; 前提として、ファイル /fred/test1.lsp があり、そのファイルでは次のような式が定義されているとする。
: ...関数の本体...  
; (defun MY-FUNC1 (x)   
: )   
; ...関数の本体...  
: (defun MY-FUNC2 (x)   
; )   
: ...関数の本体...
; (defun MY-FUNC2 (x)   
: )
; ...関数の本体...
:
; )
: さらにファイル名が test2 で、拡張子が .lsp、.fas、.vlx のファイルは存在しないとする。
;
: この条件で以下のように実行する。
; さらにファイル名が test2 で、拡張子が .lsp、.fas、.vlx のファイルは存在しないとする。
: (load "/fred/test1")  
; この条件で以下のように実行する。
: '''MY-FUNC2'''
(load "/fred/test1")  
: (load "¥¥fred¥¥test1")  
MY-FUNC2
: '''MY-FUNC2'''
 
: (load "/fred/test1" "bad")  
(load "¥¥fred¥¥test1")  
: '''MY-FUNC2'''
MY-FUNC2
: (load "test2" "bad")  
 
: '''"bad"'''
(load "/fred/test1" "bad")  
: (load "test2") ; AutoLISP エラーが発生する。  
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 を拡張子なしで指定した場合、次の順で読み込む。
    1. name.des
    2. 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


関連事項