使用する連想リストを作成する(AutoLISP)

連想リストを使用するとき、どのようなキー値を使用するかを決める必要があります。庭園の歩道では、キー値 10、11、40、41、50 は次のような意味です。

次に、gp:getPointInput 関数の更新されたバージョンを示します。この中で、AutoLISP の cons (construct a list[リストを構築]の省略形)関数を使用して、連想リスト内の、キー付きのサブリストを作成しています。[コンソール]ウィンドウにこのバージョンをコピーし、[Enter]を押してもう一度 (gp:getPointInput) を実行してください。

(defun gp:getPointInput	(/ StartPt EndPt HalfWidth)
  (if (setq StartPt (getpoint "\nStart point of path: "))
    (if	(setq EndPt (getpoint StartPt "\nEndpoint of path: "))
      (if (setq HalfWidth (getdist EndPt "\nhalf-width of path: "))
            ;; if you've made it this far, build the association list
            ;; as documented above.  This will be the return value
            ;; from the function.
            (list
              (cons 10 StartPt)
              (cons 11 EndPt)
              (cons 40 (* HalfWidth 2.0))
              (cons 50 (angle StartPt EndPt))
              (cons 41 (distance StartPt EndPt))
            )
      )
    )
  )
)

リストを作成するときに、ユーザが指定した幅の 1/2 の値に 2 を掛けて、幅全体の値に変換している点に注意してください。

コンソール ウィンドウに、次のような出力が表示されます。

(gp:getPointInput)
((10 2.16098 1.60116 0.0) (11 12.7126 7.11963 0.0) (40 . 0.592604) (50 . 0.481876) (41 . 11.9076))