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