Vla-add3dpoly

提供:GizmoLabs - だいたい CAD LISP なサイト
2013年10月30日 (水) 10:02時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-add3dpoly ''vla-object'' ''PointsArray'') ; 機能 : 3Dポリラインを作図する。 ; 引数 :* vla-object … 生成する空間の...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-add3dpoly vla-object PointsArray)


機能
3Dポリラインを作図する。


引数
  • vla-object … 生成する空間のVLAオブジェクト
  • PointsArray … 3D WCS座標の配列。 ポリラインは、array の座標順に従って作成される。配列の要素数は3の倍数である必要がある。(三要素でXYZの座標を定義する。)


戻り値
作成し3DポリラインのVLAオブジェクト


サンプル
 ; コマンドでポリライン追加
(command "._3dpoly" pause pause "")

; コマンドでポリライン追加(VLコマンド版)
(vl-cmdf "._3dpoly" (getpoint "始点:") (getpoint "終点:") "")

; VLA で線分追加(適当にactivex版)
(defun c:ax-add3dpoly ( / mspace pt ptlist tmp myobj)
  (vl-load-com)
  (setq mspace (vla-get-modelspace
                   (vla-get-activedocument
                             (vlax-get-acad-object))))
  (setq pt (getpoint "\n始点: "))
  (setq ptlist (cons pt ptlist))
  (while (setq pt (getpoint "\n次の点: " pt))
    (setq ptlist (cons pt ptlist))
  );while

  (setq ptlist (apply 'append ptlist))
  (if (= (rem (length ptlist) 3) 0)
    (progn
      (setq tmp (vlax-make-safearray 
                  vlax-vbDouble
                  (cons 0 (- (length ptlist) 1))))
      (vlax-safearray-fill tmp ptlist)
      (setq myobj (vla-add3dpoly mspace tmp))
    ) ;_progn
    (princ "\nError: 3Dポリラインはかけませんでした。")
  )
  (princ)
);defun


関連事項