Modificación de sólidos 3D

AutoCAD ActiveX

 
Modificación de sólidos 3D
 
 
 

Una vez creado un sólido, puede proceder a la creación de formas sólidas más complejas mediante la combinación de distintos objetos sólidos. Puede optar por unir sólidos, sustraerlos o localizar su volumen común (partes superpuestas). Utilice el método Boolean o CheckInterference para efectuar dichas combinaciones.

Los sólidos se pueden modificar también mediante la obtención de la sección transversal bidimensional de un sólido o el corte de un sólido en dos partes. Utilice el método SectionSolid para buscar secciones transversales de sólidos, y el método SliceSolid para cortar un sólido en dos partes.

Búsqueda de la interferencia entre dos sólidos

En este ejemplo se crea un prisma rectangular y un cilindro en espacio modelo. A continuación, se localiza la interferencia entre los dos sólidos y se crea un sólido nuevo a partir de ella. Para facilitar la visualización, el prisma se colorea en blanco, el cilindro en cián y el sólido de interferencia en rojo.

Sub Ch8_FindInterferenceBetweenSolids()
    ' Define the box
    Dim boxObj As Acad3DSolid
    Dim length As Double
    Dim width As Double
    Dim height As Double
    Dim center(0 To 2) As Double
    center(0) = 5: center(1) = 5: center(2) = 0
    length = 5
    width = 7
    height = 10
      
    ' Create the box object in model space
    ' and color it white
    Set boxObj = ThisDrawing.ModelSpace. _
                AddBox(center, length, width, height)
    boxObj.Color = acWhite
      
    ' Define the cylinder
    Dim cylinderObj As Acad3DSolid
    Dim cylinderRadius As Double
    Dim cylinderHeight As Double
    center(0) = 0: center(1) = 0: center(2) = 0
    cylinderRadius = 5
    cylinderHeight = 20
      
    ' Create the Cylinder and
    ' color it cyan
    Set cylinderObj = ThisDrawing.ModelSpace.AddCylinder _
                   (center, cylinderRadius, cylinderHeight)
    cylinderObj.Color = acCyan
      
    ' Find the interference between the two solids
    ' and create a new solid from it. Color the
    ' new solid red.
    Dim solidObj As Acad3DSolid
    Set solidObj = boxObj.CheckInterference(cylinderObj, True)
    solidObj.Color = acRed
    ZoomAll
End Sub

Corte de un sólido en dos sólidos

En este ejemplo se crea un prisma rectangular en espacio modelo. Después se corta tomando como referencia un plano definido por tres puntos. La sección se devuelve como sólido 3D.

Sub Ch8_SliceABox()
    ' Create the box object
    Dim boxObj As Acad3DSolid
    Dim length As Double
    Dim width As Double
    Dim height As Double
    Dim center(0 To 2) As Double
    center(0) = 5#: center(1) = 5#: center(2) = 0
    length = 5#: width = 7: height = 10#
      
    ' Create the box (3DSolid) object in model space
    Set boxObj = ThisDrawing.ModelSpace. _
                AddBox(center, length, width, height)
    boxObj.Color = acWhite
      
    ' Define the section plane with three points
    Dim slicePt1(0 To 2) As Double
    Dim slicePt2(0 To 2) As Double
    Dim slicePt3(0 To 2) As Double
      
    slicePt1(0) = 1.5: slicePt1(1) = 7.5: slicePt1(2) = 0
    slicePt2(0) = 1.5: slicePt2(1) = 7.5: slicePt2(2) = 10
    slicePt3(0) = 8.5: slicePt3(1) = 2.5: slicePt3(2) = 10
      
    ' slice the box and color the new solid red
    Dim sliceObj As Acad3DSolid
    Set sliceObj = boxObj.SliceSolid _
                    (slicePt1, slicePt2, slicePt3, True)
    sliceObj.Color = acRed
    ZoomAll
End Sub