|
IsLayout Пример |
Sub Example_IsLayout()
' Этот пример циклически проходит каждый объект Block в рисунке и
' определяет ли стиль каждого 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
'Block простой
msg = msg & tempBlock.name & ": Простой"
ElseIf tempBlock.IsXRef Then
'Block - внешняя ссылка
msg = msg & tempBlock.name & ": Внешняя ссылка"
If tempBlock.IsLayout Then
'Block также содержит геометрию листа
msg = msg & tempBlock.name & " и Содержит Геометрию Листа"
End If
ElseIf tempBlock.IsLayout Then
'Block содержит геометрию листа
msg = msg & tempBlock.name & ": Содержит Геометрию Листа"
End If
msg = msg & vbCrLf ' Двигайтесь в следующую линию
Next
'Информация Block отображения для этого рисунка
MsgBox "Блоки в этом рисунке имеют следующие стили: " & msg
End Sub