オブジェクトの単一の頂点の座標を指定します。
サポートされているプラットフォーム: Windows のみ
VBA:
object.Coordinate(index)
タイプ: 3DFace、3DPoly、Leader、LWPolyline、PolyfaceMesh、PolygonMesh、Polyline、Section、Solid、SubDMesh、Trace
このプロパティが適用されるオブジェクト。
タイプ: 整数型
設定または取得したい頂点に対する、頂点の配列でのインデックス。頂点の配列は 0 で始まります。
読み込み専用: いいえ
タイプ: バリアント型(倍精度実数の 3 要素または 2 要素配列)
指定された頂点に対する X、Y、Z 座標の配列。
LightweightPolyline オブジェクト: バリアントは 2 要素で、OCS の X および Y 座標を表します。
Polyline オブジェクト: バリアントは 3 要素で、OCS の X および Y 座標を表します。バリアントには Z 座標も含まれますが、無視されます。
他のすべてのオブジェクト: バリアントは、WCS の X および Y 座標を表す 3 要素を持ち、Z 座標はアクティブな UCS 上の既定の 0 となります。
このプロパティは、指定オブジェクトのどんな既存頂点をも置き換えます。このプロパティ内の値を処理するには、標準的な配列操作方法を使用してください。
3DPolyline、Polyline、PolygonMesh: 単純なポリライン(スプライン化またはカーブ フィットされていないポリライン)の場合、このプロパティは単純な頂点を指定します。スプライン化またはカーブ フィットしたポリラインの場合、制御点の頂点も含んでいます。
Polyline および LightweightPolyline オブジェクトの OCS 座標は、TranslateCoordinates メソッドにより他の座標システムとの間で相互変換可能です。
VBA:
Sub Example_Coordinate() ' This example creates a polyline in model space and ' queries and changes the coordinate in the first index position. Dim plineObj As AcadPolyline Dim points(0 To 14) As Double ' Define the 2D polyline points points(0) = 1: points(1) = 1: points(2) = 0 points(3) = 1: points(4) = 2: points(5) = 0 points(6) = 2: points(7) = 2: points(8) = 0 points(9) = 3: points(10) = 2: points(11) = 0 points(12) = 4: points(13) = 4: points(14) = 0 ' Create a lightweight Polyline object in model space Set plineObj = ThisDrawing.ModelSpace.AddPolyline(points) ZoomAll ' Find the coordinate in the first index position Dim coord As Variant coord = plineObj.Coordinate(0) MsgBox "The coordinate in the first index position of the polyline is: " & coord(0) & ", " _ & coord(1) & ", " & coord(2) ' Change the coordinate coord(0) = coord(0) + 1 plineObj.Coordinate(0) = coord plineObj.Update ' Query the new coordinate coord = plineObj.Coordinate(0) MsgBox "The coordinate in the first index position of the polyline is now: " & coord(0) & ", " _ & coord(1) & ", " & coord(2) End Sub
Visual LISP:
(vl-load-com) (defun c:Example_Coordinate() ;; This example creates a polyline in model space and ;; queries and changes the coordinate in the first index position. (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; Define the 2D polyline points (setq points (vlax-make-safearray vlax-vbDouble '(0 . 14))) (vlax-safearray-fill points '(1 1 0 1 2 0 2 2 0 3 2 0 4 4 0 ) ) ;; Create a lightweight Polyline object in model space (setq modelSpace (vla-get-ModelSpace doc)) (setq plineObj (vla-AddPolyline modelSpace points)) (vla-ZoomAll acadObj) ;; Find the coordinate in the first index position (setq coord (vlax-safearray->list (vlax-variant-value (vla-get-Coordinate plineObj 0)))) (alert (strcat "The coordinate in the first index position of the polyline is: " (rtos (nth 0 coord) 2) ", " (rtos (nth 1 coord) 2) ", " (rtos (nth 2 coord) 2))) ;; Change the coordinate (setq newCoord (vlax-make-safearray vlax-vbDouble '(0 . 2))) (vlax-safearray-fill newCoord (list (+ (nth 0 coord) 1) (nth 1 coord) (nth 2 coord))) (vla-put-Coordinate plineObj 0 newCoord) (vla-Update plineObj) ; Query the new coordinate (setq coord (vlax-safearray->list (vlax-variant-value (vla-get-Coordinate plineObj 0)))) (alert (strcat "The coordinate in the first index position of the polyline is now: " (rtos (nth 0 coord) 2) ", " (rtos (nth 1 coord) 2) ", " (rtos (nth 2 coord) 2))) )