setfunhelp (AutoLISP)

ユーザ定義コマンドをヘルプ機能付きで登録し、ユーザからそのコマンドのヘルプが要求されたとき、該当するヘルプ ファイルとトピックを呼び出すようにします。

サポートされているプラットフォーム: Windows および Mac OS

構文と要素

(setfunhelp c:fname [helpfile [topic [command]]])
c:fname

タイプ: 文字列

ユーザ定義コマンド(C:XXX関数)。接頭の c: が必要です。

helpfile

タイプ: 文字列

ヘルプ ファイルの名前。helpfile 引数では、ファイル拡張子は必要ありません。ファイル拡張子を指定した場合、指定した名前のファイルのみが検索されます。

ファイル拡張子を指定しないと、AutoCAD は helpfile 引数に拡張子 .chm を付けてファイルを探します。その名前のファイルが見つからない場合、AutoCAD は拡張子 .hlp を付けてファイルを探します。

topic

タイプ: 文字列

ヘルプ トピック ID。拡張子を付けずに CHM ファイル内のトピックを呼び出すと、AutoCAD は拡張子 .htm を追加します。

command

タイプ: 文字列

[ヘルプ]ウィンドウの初期状態。command 引数を、Microsoft Windows SDK で定義されている HtmlHelp()関数および WinHelp()関数の uCommand(HTML ヘルプ)または fuCommand(Windows ヘルプ)引数で使用される文字列にすることもできます。

HTML ファイルでは、command 引数に、HH_ALINK_LOOKUP または HH_DISPLAY_TOPIC を指定することができます。Windows ヘルプ ファイルでは、HELP_CONTENTS、HELP_HELPONHELP、HELP_PARTIALKEY を指定することができます。

戻り値

タイプ: 文字列または nil

成功した場合は c:fname。そうでない場合は nil

この関数は、c:fname 引数に接頭語 c: が付いているかどうかのみをチェックします。c:fname 関数が存在するかどうかや、他の引数が指定されているかどうかはチェックされません。

setfunhelp 関数の使用法を示した次の例では、簡単な関数を定義し、次に setfunhelp 関数を実行して、その関数に AutoCAD のヘルプ ファイル(acad.chm)の Entget トピックを関連付けています。

(defun c:foo ()
  (getstring "Press F1 for help on the foo command:")
)
(setfunhelp "c:test" "acad.chm" "entget")

このコードをロードし、foo コマンドを起動して[F1]を押すと、circle トピックが表示されます。

この例は動作はしますが、実用的ではありません。実際には、独自のヘルプ ファイルを作成し、そのヘルプ ファイルおよびトピックを、独自に作成した関数に関連付けることになります。

次に、test という名前の関数を定義します。

(defun c:test()(getstring "\nTEST: " )(princ))
C:TEST

この関数を、文字列 "line" を使用してヘルプ呼び出しに関連付けます。

(setfunhelp "c:test" "acad_acr.chm" "line")
"c:test"

test コマンドを起動し、プロンプトに対して[F1]を押すと、AutoCAD の LINE[線分]コマンドのヘルプ トピックが表示されます。

注: defun 関数を使用して C:XXX 関数を定義すると、setfunhelp 関数で登録した関数名が除去されます(存在する場合)。このため、まず defun 関数を呼び出してユーザ定義コマンドを定義し、次に setfunhelp 関数を呼び出さなければなりません。