コードをモジュール化する(AutoLISP)

レッスン 3 で行った作業の結果、gpmain.lsp ファイルは少し大きくなり過ぎました。Visual LISP にとっては問題ありませんが、関連する関数を含むいくつかのファイルにコードを分割したほうが、コードの管理が容易になります。また、コードのデバッグも容易になります。たとえば、150 の関数を含んだ単一のファイルでは、1 つの括弧の抜けを見つけるのは大変です。

このチュートリアルでは、次のようなファイル構成にします。

チュートリアルのファイル構成

ファイル名

目次

gp-io.lsp

ユーザ入力の取得など、すべての入出力(I/O)関数。これから追加するダイアログ ボックス インタフェースに必要な AutoLISP コードも含みます。

utils.lsp

他のプロジェクトでも使用可能なすべての汎用関数を含みます。ロード時の初期化も含みます。

gpdraw.lsp

すべての作図ルーチン - 実際に AutoCAD 図形を作成するコード。

gpmain.lsp

基本的な C:GPath 関数。

gpmain.lsp を 4 つのファイルに分割するには

  1. 新しいファイルを作成し、次に gpmain.lsp から新しいファイルに、次の関数を切り取って貼り付けます。
    • gp:getPointInput
    • gp:getDialogInput

    新しいファイルを、作業フォルダに gp-io.lsp という名前で保存します。

  2. 新しいファイルを作成し、次に gpmain.lsp から新しいファイルに、次の関数を切り取って貼り付けます。
    • Degrees->Radians
    • 3Dpoint->2Dpoint
    • gp:list->variantArray

    さらにファイルの先頭に、ActiveX 機能を有効にするためのコード(vl-load-com)と、グローバル変数(*ModelSpace*)を設定するためのコードを挿入します。

    ファイルを、utils.lsp という名前で保存します。

  3. 新しいファイルを作成し、次に gpmain.lsp から新しいファイルに、次の関数を切り取って貼り付けます。
    • gp:drawOutline

    ファイルを、gpdraw.lsp という名前で保存します。

  4. コードを切り取った後の gpmain.lsp を保存し、それを調べます。ファイルには、元の関数 C:GPath のみが残っているはずです。

Visual LISP デスクトップが込み合ってきました。Visual LISP 内のウィンドウを最小化して、いつでもアクセス可能な状態にしておくことができます。ツールバーの[ウィンドウを選択]ボタンをクリックし、リストからウィンドウを選択するか、Visual LISP のメニューから[ウィンドウ]をクリックし、表示するウィンドウを選択します。