【AutoCAD LISP】スプラインの作成

2023年4月1日

【AutoCAD LISP】スプラインの作成

LISP でスプラインを作成するには、どうしたらいいですか?

以下がスプラインを作成するサンプルです。

;;; この LISP をロードして、DrawSpine コマンドを実行すると、スプラインが作成されます。
(defun C:DrawSpine ()
  (setq acadobj (vlax-get-acad-object))
  (setq document (vla-get-activedocument acadobj))
  (setq modelSpace (vla-get-modelspace document))

  ; 最初の点でのスプライン曲線の接線を指定する 3D ベクトルを指定
  (setq startTan (vlax-3d-point 0.5 0.5 0))

  ; 最後の点でのスプライン曲線の接線を指定する 3D ベクトルを指定
  (setq endTan (vlax-3d-point 0.5 -0.5 0))

  ; スプライン曲線を定義する 3D WCS 座標の配列を指定
  (setq pointsArray (vlax-make-safearray vlax-vbDouble '(0 . 14)))
  (vlax-safearray-fill pointsArray '(100 100 0
                                     150 150 0
                                     200 100 0
                                     250 150 0
                                     300 100 0))

  ; スプラインをモデル空間に作成
  (setq spline (vla-AddSpline modelSpace pointsArray startTan endTan))

  (princ)
)

作成されるスプライン

-API
-