Vla-arraypolar

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年10月25日 (日) 03:43時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-arraypolar ''vla-object'' ''NumberOfObjects'' ''AngleToFill'' ''CenterPoint '') ; 機能 : NumberOfObjects、AngleToFill、CenterPoint...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-arraypolar vla-object NumberOfObjects AngleToFill CenterPoint )


機能
NumberOfObjects、AngleToFill、CenterPoint を指定して、オブジェクトの円形状配列複写を作成する。


引数
  • vla-object … VLAオブジェクト
  • NumberOfObjects … 円形状配列複写で作成されるオブジェクトの数。これは、2 以上の正数でなければならない。
  • AngleToFill … 複写角度(ラジアン)。正の値を入力すると、反時計回りに回転する。負の値を入力すると、時計回りに回転する。角度を 0 にするとエラーが返される。
  • CenterPoint … 円形状配列複写の中心点を指定する 3D WCS 座標。


戻り値
新しいオブジェクトの配列。


注意

  • CAD によって、配列の中心点から最後に選択されたオブジェクトの参照点までの距離が決定される。使用される参照点は、最後に選択されたオブジェクトの種類によって異なる。円または円弧の場合は中心点、ブロックまたはシェイプの場合は挿入点、文字の場合は開始位置、線分または太線の場合は端点の 1 つが使用される。
  • このメソッドは、CAD の ARRAY[配列複写]コマンド/[円形状(P)] における [複写するオブジェクトを回転させますか?]のオプションはサポートしないので注意。
  • コレクション内で何度も繰り返しながら、このメソッドを実行できない。このメソッドは読み書きの操作を行うが、繰り返し処理を実行すると読み出し専用の作業領域が開いてしまうので、このメソッドを呼び出す前に、繰り返し処理を完了させる必要がある。
  • AttributeReference オブジェクトにこのメソッドを使用するべきではない。AttributeReference オブジェクトがこのメソッドを継承しているのは、図面オブジェクトの 1 つだからですが、属性参照でこの処理を実行することはできない。


サンプル
(vl-load-com)
(defun c:Example_ArrayPolar()
    ;; 円弧と円弧上配列を作成するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; 円の作成
    (setq center (vlax-3d-point 2 2 0)  
          radius 1)
  
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq circleObj (vla-AddCircle modelSpace center radius))
    (vla-ZoomAll acadObj)
  
    (alert "円弧上配列を作成します。")
    
    ;; 円弧上配列の設定
    (setq basePnt (vlax-3d-point 3 3 0) 
          noOfObjects 4
          angleToFill 3.14)          ;; 180度
    
    ;;  (3,3,0)を基点に 4つの複写で実行
    (setq retObj (vla-ArrayPolar circleObj noOfObjects angleToFill basePnt))
    
    (vla-ZoomAll acadObj)
    (alert "円弧上配列 しますた")
)


関連事項