使另一个平铺视口成为当前视口

AutoCAD ActiveX/VBA

 
使另一个平铺视口成为当前视口
 
 
 

输入点和选择对象操作是在当前视口中进行的。要将某个视口置为当前视口,请使用 ActiveViewport 特性。

可以遍历现有视口以查找特定视口。要执行此任务,首先使用 Name 特性标识所需视口所在的视口配置的名称。此外,如果视口配置已被拆分,则可以通过 LowerLeftCorner 和 UpperRightCorner 特性来标识配置中的每个单独视口。

LowerLeftCorner 和 UpperRightCorner 特性用于表示显示器上视口的图形位置,可以通过如下方式定义这些特性(以四向拆分为例):

在本样例中:

  • Viewport 1-LowerLeftCorner = (0, .5), UpperRightCorner = (.5, 1)
  • Viewport 2-LowerLeftCorner = (.5, .5), UpperRightCorner = (1, 1)
  • Viewport 3-LowerLeftCorner = (0, 0), UpperRightCorner = (.5, .5)
  • Viewport 4-LowerLeftCorner = (.5, 0), UpperRightCorner = (1, .5)

拆分视口,然后遍历各个窗口

本例将视口拆分为四个窗口,然后遍历图形中的所有视口并显示视口名称以及每个视口的左下角点和右上角点。

Sub Ch3_IteratingViewportWindows()
    ' 创建新视口并将其置为活动视口
    Dim vportObj As AcadViewport
    Set vportObj = ThisDrawing.Viewports.Add("TEST_VIEWPORT")
    ThisDrawing.ActiveViewport = vportObj
      
    ' 将 vport 拆分为 4 个窗口
    vportObj.Split acViewport4
      
    ' 遍历视口,
    ' 亮显每个视口并显示
    ' 每个视口的右上角点和
    ' 左下角点。
    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