UCS 座標系のデータで構成される変換マトリックスを取得します。
サポートされているプラットフォーム: Windows のみ
タイプ: バリアント型(4 x 4 要素の倍精度浮動小数点数型配列)
UCS マトリックス
指定された UCS で図形を変換するには、このメソッドから返されるマトリックスを入力として使用し、TransformBy メソッドを使用します。
VBA:
Sub Example_GetUCSMatrix() ' This example creates a new UCS and finds the UCS matrix for it. ' It then creates a circle using WCS coordinates and ' transforms the circle for the UCS. ' Define a new UCS and turn on the UCS icon at the origin. Dim ucsObj As AcadUCS Dim origin(0 To 2) As Double Dim xAxisPoint(0 To 2) As Double Dim yAxisPoint(0 To 2) As Double origin(0) = 2: origin(1) = 2: origin(2) = 0 xAxisPoint(0) = 3: xAxisPoint(1) = 2: xAxisPoint(2) = 0 yAxisPoint(0) = 2: yAxisPoint(1) = 3: yAxisPoint(2) = 0 Set ucsObj = ThisDrawing.UserCoordinateSystems.Add(origin, xAxisPoint, yAxisPoint, "UCS1") ThisDrawing.ActiveUCS = ucsObj ThisDrawing.ActiveViewport.UCSIconOn = True ThisDrawing.ActiveViewport.UCSIconAtOrigin = True ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport ' Create a circle using WCS coordinates Dim circleObj As AcadCircle Dim center(0 To 2) As Double Dim radius As Double center(0) = 1: center(1) = 1: center(2) = 0 radius = 0.5 Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius) ZoomAll ' Get the UCS transformation matrix Dim TransMatrix As Variant TransMatrix = ucsObj.GetUCSMatrix() ' Transform the circle to the UCS coordinates MsgBox "Transform the circle.", , "GetUCSMatrix Example" circleObj.TransformBy (TransMatrix) circleObj.Update MsgBox "The circle is transformed.", , "GetUCSMatrix Example" End Sub
Visual LISP:
(vl-load-com) (defun c:Example_GetUCSMatrix() ;; This example creates a new UCS and finds the UCS matrix for it. ;; It then creates a circle using WCS coordinates and ;; transforms the circle for the UCS. (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; Define a new UCS and turn on the UCS icon at the origin. (setq origin (vlax-3d-point 2 2 0) xAxisPoint (vlax-3d-point 3 2 0) yAxisPoint (vlax-3d-point 2 3 0)) (setq ucsObj (vla-Add (vla-get-UserCoordinateSystems doc) origin xAxisPoint yAxisPoint "UCS1")) (vla-put-ActiveUCS doc ucsObj) (vla-put-UCSIconOn (vla-get-ActiveViewport doc) :vlax-true) (vla-put-UCSIconAtOrigin (vla-get-ActiveViewport doc) :vlax-true) (vla-put-ActiveViewport doc (vla-get-ActiveViewport doc)) ;; Create a circle using WCS coordinates (setq center (vlax-3d-point 1 1 0) radius 0.5) (setq modelSpace (vla-get-ModelSpace doc)) (setq circleObj (vla-AddCircle modelSpace center radius)) (vla-ZoomAll acadObj) ;; Get the UCS transformation matrix (setq TransMatrix (vla-GetUCSMatrix ucsObj)) ;; Transform the circle to the UCS coordinates (alert "Transform the circle.") (vla-TransformBy circleObj TransMatrix) (vla-Update circleObj) (alert "The circle is transformed.") )