|
IsXRef Пример |
Sub Example_IsXRef()
' Этот пример циклически проходит каждый объект Block в рисунке и
' определяет стиль каждого Блока, обращаясь к IsLayout и свойствам
' IsXRef. Объект Block также добавлен во время выполнения, таким
' образом результаты смешаны и не только исходят из Блоков по умолчанию.
Dim circleObj As AcadCircle
Dim centerPoint(0 To 2) As Double, InsertPoint(0 To 2) As Double
Dim radius As Double
Dim newBlock As AcadBlock, insertedBlock As AcadBlockReference
Dim tempBlock As AcadBlock
Dim msg As String
'Определите объект Circle, который будет вставлен в блок
centerPoint(0) = 0: centerPoint(1) = 0: centerPoint(2) = 0
InsertPoint(0) = 1: InsertPoint(1) = 1: InsertPoint(2) = 0
radius = 0.5
'Создайте новый блок, чтобы держать объект Circle
Set newBlock = ThisDrawing.Blocks.Add(centerPoint, "CBlock")
'Добавьте объект Circle к новому объекту блока
Set circleObj = ThisDrawing.Blocks("CBlock").AddCircle(centerPoint, radius)
'Добавьте новый блок к пространству модели
Set insertedBlock = ThisDrawing.ModelSpace.InsertBlock(InsertPoint, "CBlock", 1, 1, 1, 0)
ThisDrawing.Application.ZoomAll
msg = vbCrLf & vbCrLf
For Each tempBlock In ThisDrawing.Blocks
If Not (tempBlock.IsLayout) And Not (tempBlock.IsXRef) Then
'Блок прост
msg = msg & tempBlock.name & ": Простой"
ElseIf tempBlock.IsXRef Then
' Block is an external reference
msg = msg & tempBlock.name & ": Внешняя ссылка"
If tempBlock.IsLayout Then
'Блок также содержит геометрию листа
msg = msg & tempBlock.name & " и Содержит Геометрию Листа"
End If
ElseIf tempBlock.IsLayout Then
'Блок содержит геометрию листа
msg = msg & tempBlock.name & ": Содержит Геометрию Листа"
End If
msg = msg & vbCrLf ' Cледующий
Next
'Информация Блока Отображения для этого рисунка
MsgBox "Блоки в этом рисунке имеют следующие стили: " & msg
End Sub