概要 - 他のタイル ビューポートを現在のビューポートにする(ActiveX)

現在のビューポート内で点を入力したり、オブジェクトを選択できます。ビューポートを現在のビューポートにするには、ActiveViewport プロパティを使用します。

既存のビューポートの中から、1 つビューポートを選択することができます。それにはまず、Name プロパティを使って、希望のビューポートがある環境設定の名前を確認します。さらに、ビューポート環境設定が分割されている場合、その設定上の各ビューポートは LowerLeftCorner プロパティと UpperRightCorner プロパティで識別できます。

LowerLeftCorner プロパティと UpperRightCorner プロパティは、画面上でビューポートのグラフィックスの位置を示します。これらのプロパティを、次のように定義します(例として 4 分割を示します)。



この例では

ビューポートを分割し、次にウィンドウを繰り返す

この例では、ビューポートを 4 つのウィンドウに分割します。次に図面内のすべてのビューポートで繰り返しビューポート名と各ビューポートの左下と右上のコーナーを表示します。

AutoLISP
(vl-load-com)
(defun c:Ch3_IteratingViewportWindows()
    (setq acadObj (vlax-get-acad-object)
          doc (vla-get-ActiveDocument acadObj))
  
    ;; Create a new viewport and make it active
    (setq viewportsCollection (vla-get-Viewports doc)
          vportObj (vla-Add viewportsCollection "TEST_VIEWPORT"))
    (vla-put-ActiveViewport doc vportObj)

    ;; Split vport into 4 windows
    (vla-Split vportObj acViewport4)

    ;; Iterate through the viewports,
    ;; highlighting each viewport and displaying
    ;; the upper right and lower left corners
    ;; for each.
    (vlax-for vport viewportsCollection
        (vla-put-ActiveViewport doc vport)
      
        (setq LLCorner (vlax-safearray->list (vlax-variant-value (vla-get-LowerLeftCorner vport)))
              URCorner (vlax-safearray->list (vlax-variant-value (vla-get-UpperRightCorner vport))))
      
        (alert (strcat "Viewport: " (vla-get-Name vport) " is now active."
                       "\nLower left corner: "
                       (rtos (nth 0 LLCorner) 2) ", " (rtos (nth 1 LLCorner) 2)
                       "\nUpper right corner: "
                       (rtos (nth 0 URCorner) 2) ", " (rtos (nth 1 URCorner) 2)))
    )
)
(AutoCAD のみ)
Sub Ch3_IteratingViewportWindows()
  ' Create a new viewport and make it active
  Dim vportObj As AcadViewport
  Set vportObj = ThisDrawing.Viewports.Add("TEST_VIEWPORT")
  ThisDrawing.ActiveViewport = vportObj

  ' Split vport into 4 windows
  vportObj.Split acViewport4

  ' Iterate through the viewports,
  ' highlighting each viewport and displaying
  ' the upper right and lower left corners
  ' for each.
  Dim vport As AcadViewport
  Dim LLCorner As Variant
  Dim URCorner As Variant
  For Each vport In ThisDrawing.Viewports
    ThisDrawing.ActiveViewport = vport
    LLCorner = vport.LowerLeftCorner
    URCorner = vport.UpperRightCorner
    MsgBox "Viewport: " & vport.Name & " is now active." & _
    vbCrLf & "Lower left corner: " & _
    LLCorner(0) & ", " & LLCorner(1) & vbCrLf & _
    "Upper right corner: " & _
    URCorner(0) & ", " & URCorner(1)
  Next vport
End Sub