|
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