Conceptos básicos del almacenamiento de parámetros de capas en AutoCAD

AutoCAD ActiveX

 
Conceptos básicos del almacenamiento de parámetros de capas en AutoCAD
 
 
 

AutoCAD guarda los parámetros de capas en un diccionario de extensiones de la colección Layers de un dibujo. Cuando se guardan parámetros de capa de un dibujo por primera vez, AutoCAD procede como se indica a continuación:

  • Crea un diccionario de extensiones en la colección de capas.
  • Crea un objeto Dictionary denominado ACAD_LAYERSTATE en el directorio de extensiones.
  • Almacena las propiedades de todas las capas del dibujo en un objeto XRecord del diccionario ACAD_LAYERSTATE. AutoCAD almacena todos los parámetros de capas incluidos en XRecord, pero identifica aquellos parámetros que el usuario eligió guardar. Cuando se restablecen los parámetros de las capas, AutoCAD restituye sólo los que el usuario eligió guardar.

Cada vez que se guarda otro parámetro de capa en el dibujo, AutoCAD crea otro objeto XRecord con la descripción de los parámetros guardados y almacena XRecord en el diccionario ACAD_LAYERSTATE. El siguiente diagrama ilustra este proceso.

No es necesario (y tampoco debe intentarse) interpretar los objetos Xrecord cuando se trabaja con parámetros de capa en ActiveX. Utilice las funciones del objeto LayerStateManager para acceder a los parámetros de capa guardados.

Listado de los parámetros de capa guardados en un dibujo

Si se guardaron los parámetros de capa en el dibujo actual, el siguiente código extrae una lista con los nombres de todos los parámetros de capa guardados:

Sub Ch4_ListStates()
     On Error Resume Next
    Dim oLSMDict As AcadDictionary
    Dim XRec As Object
    Dim layerstateNames As String
      
    layerstateNames = ""
    ' Get the ACAD_LAYERSTATES dictionary, which is in the
    ' extension dictionary in the Layers object.
    Set oLSMDict = ThisDrawing.Layers. _
           GetExtensionDictionary.Item("ACAD_LAYERSTATES")
    ' List the name of each saved layer setting. Settings are
    ' stored as XRecords in the dictionary.
    For Each XRec In oLSMDict
       layerstateNames = layerstateNames + XRec.Name + vbCrLf
    Next XRec
    MsgBox "The saved layer settings in this drawing are: " + _
            vbCrLf + layerstateNames
End Sub