プログラムの隙間を埋める

正常に動作したこの新しいファイルのコードには、さらに 3 つの関数定義を記述する必要があります。庭園の歩道のメイン コードには、次の 3 つのカスタム関数の呼び出しがあります。

これから、骨格となる関数の定義を記述します。骨格となる関数は、後述の完成した関数の骨格になります。これにより、アプリケーションの完成に必要な詳細のすべてを記述する前に、コードを部分的に試験することができます。

アプリケーションの骨格となる関数を定義するには

  1. テキスト エディタ ウィンドウ内のプログラム コードの先頭にカーソルを置き、[Enter]を 2 回押して空白行を追加します。
  2. 挿入した空白行の先頭から、次のコードを入力します。
    ;;; Function gp:getPointInput will get path location and size
    (defun gp:getPointInput	()
      (alert
        "Function gp:getPointInput will get user drawing input"
      )
      ;; For now, return T, as if the function worked correctly.
      T
    )
    ;;; Function gp:getDialogInput will get path parameters
    (defun gp:getDialogInput ()
      (alert
        "Function gp:getDialogInput will get user choices through a dialog"
      )
      ;;For now, return T, as if the function worked correctly.
      T
    )
    ;;; Function gp:drawOutline will draw the path boundary
    (defun gp:drawOutline ()
      (alert
        (strcat "This function will draw the outline of the polyline" 
    	    "\nand return a polyline entity name/pointer."
        )
      )
      ;; For now, simply return a quoted symbol. Eventually, this
      ;; function will return an entity name or pointer.
      'SomeEname
    )

それぞれの入力関数の最後は、T のみが記述されたコード行です。これは、呼び出した関数への戻り値になります。すべての AutoLISP 関数は、それを呼び出した関数に値を返します。文字 T は、AutoLISP では「真」を表すシンボルで、T の記入により、関数は真の値を返します。gpmain.lsp は、呼び出した各入力関数が nil(「値なし」を表す)以外の値を返さない限り、次のステップを処理しないように作成されています。

既定では、AutoLISP 関数は最後に評価された式の値を返します。骨格となる関数には、alert 関数を呼び出す式があるだけです。しかし alert は常に nil を返します。gp:getPointInput の最後の式をそのままにしておくと常に nil が返され、if の後ろにある gp:getDialogInput 関数を決して通過しなくなります。

同様の理由により、gp:DrawOutline 関数の最後は、仮の戻り値としてクォーテーション付きのシンボル('SomeEname)を返します。クォーテーション付きのシンボルは、評価されない LISP 定数です(LISP 言語の詳細については、このチュートリアルの末尾に紹介されている書籍を参照してください)。