Desfase de objetos

AutoCAD ActiveX

 
Desfase de objetos
 
 
 

El desfase de un objeto crea uno nuevo a una distancia de desfase especificada con respecto al original. Se pueden desfasar arcos, círculos, elipses, líneas, polilíneas, polilíneas optimizadas, splines y líneas auxiliares.

Para desfasar un objeto, utilice el método Offset del objeto. La única entrada que requiere este método es la distancia a la que se desea desplazar el objeto. Si el valor de la distancia es negativo, AutoCAD supone que se pretende crear una curva “más pequeña”; un arco, por ejemplo, se desplazaría hasta un radio menor (que sería la distancia proporcionada) que el radio de la curva inicial. Si “más pequeña” no tiene sentido, AutoCAD aplica un desfase en la dirección de las coordenadas SCU X, Y, Z más pequeñas. Si la distancia de desfase no es válida, devuelve un error.

En muchos objetos, esta operación tendrá como resultado una nueva curva sencilla (que puede no ser del mismo tipo que la curva original). Por ejemplo, al desfasar una elipse se obtiene una spline ya que el resultado se ajusta a la ecuación de una elipse. A veces puede ser necesario que el resultado del desfase sean varias curvas. Por esta razón, el método devuelve el nuevo objeto, o matriz de objetos, como variante.

Para obtener información acerca del desfase de objetos, véase “Copia, desfase y reflejo de objetos” en el Manual del usuario.

Desfase de una polilínea

Este ejemplo crea una polilínea optimizada y después la desfasa.

Sub Ch4_OffsetPolyline()
    ' Create the polyline
    Dim plineObj As AcadLWPolyline
    Dim points(0 To 11) As Double
    points(0) = 1: points(1) = 1
    points(2) = 1: points(3) = 2
    points(4) = 2: points(5) = 2
    points(6) = 3: points(7) = 2
    points(8) = 4: points(9) = 4
    points(10) = 4: points(11) = 1
    Set plineObj = ThisDrawing.ModelSpace. _
                   AddLightWeightPolyline(points)
    plineObj.Closed = True
    ZoomAll
      
    ' Offset the polyline
    Dim offsetObj As Variant
    offsetObj = plineObj.Offset(0.25)
      
ZoomAll
End Sub