Тема: Помогите разобратся в свойстве Used Объекта Layer

Почему метод Used объекта Layer идентифицирует все слои True хотя это не так???? вот код:
Sub Test()
    Dim MyLayers As AcadLayers
    Set MyLayers = ThisDrawing.Layers
    Dim MyLayerObj As AcadLayer
    MyLayers.GenerateUsageData
    For Each MyLayerObj In MyLayers
        If MyLayerObj.Used = False Then
            Debug.Print MyLayerObj.Name
        End If
    Next MyLayerObj
End Sub

Re: Помогите разобратся в свойстве Used Объекта Layer

> Игорь
Очень похоже на баг VBA  в Автокаде
Например, почти тот же самый код работает:

Sub Test()
Dim MyLayers As AcadLayers
Set MyLayers = ThisDrawing.Layers
Dim MyLayerObj As AcadLayer
MyLayers.GenerateUsageData
For Each MyLayerObj In MyLayers
If MyLayerObj.Used = False Then
'Debug.Print MyLayerObj.Name
MyLayerObj.Freeze = True
End If
Next MyLayerObj
End Sub

~'J'~

Re: Помогите разобратся в свойстве Used Объекта Layer

Все равно
MyLayerObj.Used = False
Debug.Print MyLayerObj.Name
не выдает не одного имени хотя пустые слои есть sad

Re: Помогите разобратся в свойстве Used Объекта Layer

> Игорь
Я ж говорю - чистый баг, а слои
замораживает тем не менее
~'J'~

Re: Помогите разобратся в свойстве Used Объекта Layer

smile
спасибо

Re: Помогите разобратся в свойстве Used Объекта Layer

smile
спасибо

Re: Помогите разобратся в свойстве Used Объекта Layer

Да нет у меня вроде все показывает верно, когда я пользовалась этим свойством.

Re: Помогите разобратся в свойстве Used Объекта Layer

Могу такую функцию предложить если нужно:

Function objused(intDXF As Integer, data As Variant)
    Dim intType(0) As Integer
    Dim varData(0) As Variant
    Set os = ThisDrawing.SelectionSets.Add("$tempgr$")
    intType(0) = intDXF
    varData(0) = data
    os.Select acSelectionSetAll, , , intType, varData
    objused = os.Count
    ThisDrawing.SelectionSets.Item("$tempgr$").Delete
    Set os = Nothing
End Function

вызов для слоев objused(8, <имя слоя>)
и для других объектов можно использовать
в данном случае возвращает кол-во объектов, принадлежащих слою с указанным именем, если 0, то соответственно слой не используется