Creación de definiciones y referencias de atributos

AutoCAD ActiveX

 
Creación de definiciones y referencias de atributos
 
 
 

Para crear una referencia de atributo, es preciso crear antes una definición de atributo en un bloque mediante el método AddAttribute. Este método requiere seis valores de entrada: la altura del texto de atributo, el modo de atributo, la cadena de mensaje, el punto de inserción, la cadena de identificación y el valor por defecto del atributo.

El valor del modo es opcional. Se pueden introducir cinco constantes para especificar el modo de atributo:

acAttributeModeNormal

Especifica que se mantiene el modo actual de cada atributo.

acAttributeModeInvisible

Especifica que los valores de atributos no aparezcan cuando se inserte el bloque. El comando ATTDISP anula el modo invisible.

acAttributeModeConstant

Asigna un valor fijo a los atributos para las inserciones de bloque.

acAttributeModeVerify

Solicita que se verifique el valor del atributo al insertar el bloque.

acAttributeModePreset

Establece el valor por defecto del atributo al insertar un bloque que contiene un atributo introducido. El valor no puede modificarse en este modo.

Puede introducir cualquier combinación de opciones, todas ellas o ninguna. Si desea especificar una combinación de opciones, añada las constantes juntas. Por ejemplo, podrá introducir acAttributeModeInvisible + acAttributeModeConstant.

La cadena de mensaje aparece al insertar un bloque que contiene el atributo. El valor por defecto de esta cadena es la cadena Tag. Introduzca el modo acAttributeModeConstant para desactivar el mensaje.

El identificador reconoce cada aparición del atributo. Puede utilizar cualquier carácter salvo espacios o signos de admiración. AutoCAD convierte las letras minúsculas en mayúsculas.

Una vez que la definición de atributo se ha incorporado al bloque, siempre que inserte el bloque con el método InsertBlock podrá especificar un valor distinto para la referencia de atributo.

La definición de atributo está asociada al bloque sobre el que se crea. Las definiciones de atributo que se crean en espacio modelo o espacio papel no se consideran enlazadas a ningún bloque determinado.

Creación de una definición de atributo

Este ejemplo crea un bloque y le añade un atributo. Después se inserta el bloque en el dibujo.

Sub Ch10_CreatingAnAttribute()
    ' Define the block
    Dim blockObj As AcadBlock
    Dim insertionPnt(0 To 2) As Double
    insertionPnt(0) = 0
    insertionPnt(1) = 0
    insertionPnt(2) = 0
    Set blockObj = ThisDrawing.Blocks.Add _
                     (insertionPnt, "BlockWithAttribute")
      
    ' Add an attribute to the block
    Dim attributeObj As AcadAttribute
    Dim height As Double
    Dim mode As Long
    Dim prompt As String
    Dim insertionPoint(0 To 2) As Double
    Dim tag As String
    Dim value As String
    height = 1
    mode = acAttributeModeVerify
    prompt = "New Prompt"
    insertionPoint(0) = 5
    insertionPoint(1) = 5
    insertionPoint(2) = 0
    tag = "New Tag"
    value = "New Value"
    Set attributeObj = blockObj.AddAttribute(height, mode, _
                          prompt, insertionPoint, tag, value)
    ' Insert the block, creating a block reference
    ' and an attribute reference
    Dim blockRefObj As AcadBlockReference
    insertionPnt(0) = 2
    insertionPnt(1) = 2
    insertionPnt(2) = 0
    Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _
               (insertionPnt, "BlockWithAttribute", 1#, 1#, 1#, 0)
End Sub