Creación de ventanas gráficas de espacio papel.

AutoCAD ActiveX

 
Creación de ventanas gráficas de espacio papel.
 
 
 

Las ventanas gráficas de espacio papel se crean con el método AddPViewport. Este método requiere un punto central y la anchura y altura de la nueva ventana gráfica. Antes de crear la ventana gráfica, utilice la propiedad ActiveSpace para especificar el espacio papel como espacio actual (normalmente se hace estableciendo TILEMODE en 0).

Después de crear el objeto PViewport se pueden configurar las propiedades de la vista, como la dirección de la vista (propiedad Direction), la longitud de la lente para vistas en perspectiva (propiedad LensLength) y la presentación de la rejilla (propiedad GridOn). También se pueden controlar propiedades de la ventana gráfica, como la capa (propiedad Layer), el tipo de línea (propiedad Linetype) y la escala del tipo de línea (propiedad LinetypeScale).

Creación y activación de una ventana gráfica flotante

En este ejemplo se conmuta AutoCAD a espacio papel, se crea una ventana flotante, se configura la vista y se activa la ventana.

Sub Ch9_SwitchToPaperSpace()
   ' Set the active space to paper space
    ThisDrawing.ActiveSpace = acPaperSpace
      
   ' Create the paperspace viewport
    Dim newVport As AcadPViewport
    Dim center(0 To 2) As Double
    center(0) = 3,25
    center(1) = 3
    center(2) = 0
    Set newVport = ThisDrawing.PaperSpace. _
                              AddPViewport(center, 6, 5)
      
   ' Change the view direction for the viewport
    Dim viewDir(0 To 2) As Double
    viewDir(0) = 1
    viewDir(1) = 1
    viewDir(2) = 1
    newVport.direction = viewDir
      
   ' Enable the viewport
    newVport.Display True
      
   ' Switch to model space
    ThisDrawing.MSpace = True
      
   ' Set newVport current
   ' (not always necessary but a good idea)
    ThisDrawing.ActivePViewport = newVport
      
   ' Zoom Extents in model space
    ZoomExtents
      
   ' Turn model space editing off
    ThisDrawing.MSpace = False
      
    ' ZoomExtents in paperspace
    ZoomExtents
End Sub

El orden de los pasos del código de este ejemplo es muy importante. Como norma, las sentencias deben establecerse en el mismo orden en el que se haría desde la línea de comando de AutoCAD. Las únicas acciones inesperadas son la definición de la vista y la activación de la ventana gráfica.

NotaPara configurar o modificar aspectos de la vista (dirección, distancia focal, etc.), el método Display del objeto Viewport debe estar desactivado (FALSE); para establecer una ventana gráfica como actual, el método Display debe estar activado (TRUE).

Creación de cuatro ventanas flotantes

En este ejemplo se amplía el ejemplo de "Crear y activar una ventana gráfica flotante" para crear cuatro ventanas flotantes y establecer sus vistas en superior, frontal, derecha e isométrica, respectivamente. La escala de las vistas se ajusta a la mitad de la escala del espacio papel. Para asegurarse de que estas ventanas tienen algo que mostrar, puede crear una esfera sólida 3D antes de probar el ejemplo.

Sub Ch9_FourPViewports()
    Dim topVport, frontVport As AcadPViewport
    Dim rightVport, isoVport As AcadPViewport
    Dim pt(0 To 2) As Double
    Dim viewDir(0 To 2) As Double
    ThisDrawing.ActiveSpace = acPaperSpace
    ThisDrawing.MSpace = True
' Take the existing PViewport and make it the topVport
    pt(0) = 2.5: pt(1) = 5.5: pt(2) = 0
    Set topVport = ThisDrawing.ActivePViewport
    'No need to set Direction for top view
    topVport.center = pt
    topVport.width = 2.5
    topVport.height = 2.5
    topVport.Display True
    ThisDrawing.MSpace = True
    ThisDrawing.ActivePViewport = topVport
    ZoomExtents
    ZoomScaled 0.5, acZoomScaledRelativePSpace
'Create and setup frontVport
    pt(0) = 2.5: pt(1) = 2.5: pt(2) = 0
    Set frontVport = ThisDrawing.PaperSpace. _
            AddPViewport(pt, 2.5, 2.5)
    viewDir(0) = 0: viewDir(1) = 1: viewDir(2) = 0
    frontVport.direction = viewDir
    frontVport.Display acOn
    ThisDrawing.MSpace = True
    ThisDrawing.ActivePViewport = frontVport
    ZoomExtents
    ZoomScaled 0.5, acZoomScaledRelativePSpace
'Create and setup rightVport
    pt(0) = 5.5: pt(1) = 5.5: pt(2) = 0
    Set rightVport = ThisDrawing.PaperSpace. _
            AddPViewport(pt, 2.5, 2.5)
    viewDir(0) = 1: viewDir(1) = 0: viewDir(2) = 0
    rightVport.direction = viewDir
    rightVport.Display acOn
    ThisDrawing.MSpace = True
    ThisDrawing.ActivePViewport = rightVport
    ZoomExtents
    ZoomScaled 0.5, acZoomScaledRelativePSpace
'Create and set up isoVport
    pt(0) = 5.5: pt(1) = 2.5: pt(2) = 0
    Set isoVport = ThisDrawing.PaperSpace. _
                             AddPViewport(pt, 2.5, 2.5)
    viewDir(0) = 1: viewDir(1) = 1: viewDir(2) = 1
    isoVport.direction = viewDir
    isoVport.Display acOn
    ThisDrawing.MSpace = True
    ThisDrawing.ActivePViewport = isoVport
    ZoomExtents
    ZoomScaled 0.5, acZoomScaledRelativePSpace
'Finish: Perform a regen in all viewports
    ThisDrawing.Regen True
End Sub