Preset Пример

Sub Example_Preset()
    'Этот пример создает блок, содержащий определение признака.
    'Первоначально, признаку включили предварительно установленный 
    'флажок и покажется предварительно установленное значение для
    'признака, когда родительский блок вставлен как справочник.
    '
    'Когда пример выполнен, переключаем значение Preset.
    '
    '* Примечание: После выполнения этого примера, выберите меню, 
    ' "Вставка/Блок ..." и создайте вхождение блока из "Block-PRESET". Вы
    ' будете видеть предварительно установленное отображение значения для признака.
    '
    'Затем выполните пример снова и повторите вставку блока. Обратите 
    'внимание на сей раз, что предварительно установленный был выключен.
    
    Dim attributeObj As AcadAttribute
    Dim height As Double, mode As Long, prompt As String, tag As String, value As String
    Dim AttrInsertionPoint(0 To 2) As Double
    Dim BlockInsertionPoint(0 To 2) As Double
    Dim newBlock As AcadBlock
    Dim IsPreset As String
    
    'Определите, был ли этот блок уже создан. Если так, получите блок и 
    'признак внутри; иначе, создайте новый блок, содержащий признак.
    On Error Resume Next
    
    Set newBlock = ThisDrawing.Blocks("Block-PRESET")
    
    
    If Err = 0 Then         ' Блок примера был создан
        Set attributeObj = newBlock.Item(0)                 ' Получите только объект в блоке примера
    
        attributeObj.Preset = Not (attributeObj.Preset)     ' Переключите признак предварительно установленного значения
    
    ElseIf Err <> 0 Then    ' Блок примера не был создан
    
        'Создайте новый блок, чтобы держать объект Attribute
        BlockInsertionPoint(0) = 0: BlockInsertionPoint(1) = 0: BlockInsertionPoint(2) = 0
        Set newBlock = ThisDrawing.Blocks.Add(BlockInsertionPoint, "Block-PRESET")
    
        'Определите определение признака
        AttrInsertionPoint(0) = 0: AttrInsertionPoint(1) = 0: AttrInsertionPoint(2) = 0
        height = 1#:
        mode = acAttributeModePreset
        prompt = "New Prompt"
        tag = "New Tag": value = "Preset"
        
        'Добавьте объект определения признака к новому блоку
        Set attributeObj = newBlock.AddAttribute(height, mode, prompt, AttrInsertionPoint, tag, value)
    
    End If
    
    On Error GoTo 0

    'Читайте признак и показывайте информацию
    IsPreset = IIf(attributeObj.Preset, "имеет предварительно установленное значение: " & attributeObj.textString, _
                   "не имеет предварительно установленного значения"), 
                   
    MsgBox "Признак блока " & IsPreset, vbInformation
End Sub
Сайт управляется системой uCoz