Тема: Порядок следования на VBA
Как изменить порядко следования приммитивов с помощью команд VBA? Где то я это уже видел но хоть абстенку разбейся через этот поиск найти немогу. Подскажите пожалуйста.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Порядок следования на VBA
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как изменить порядко следования приммитивов с помощью команд VBA? Где то я это уже видел но хоть абстенку разбейся через этот поиск найти немогу. Подскажите пожалуйста.
Вот способ поднять блоки с определенным именем
ReDim Preserve gpCode(1) As Integer
ReDim Preserve dataValue(1) As Variant
gpCode(0) = 0
dataValue(0) = "INSERT"
gpCode(1) = 2
dataValue(1) = "2g_003"
Set sSetObj = ThisDrawing.SelectionSets.Add("GOOselection_015das222d16abw")
sSetObj.Select acSelectionSetAll, , , gpCode, dataValue
j = 0
Do While j < sSetObj.Count
sSetObj.Item(j).Copy
sSetObj.Item(j).Delete
j = j + 1
Loop
sSetObj.Delete
Но как опустить??? тоже самое проделать с остальными?? помоему это не правильно
В справке смотри SortentsTable, ее методы: MoveAbove, MoveBelow, MoveToBottom, MoveToTop и примеры к ним.
Александр Ривилис - СПАСИБО!
вот что у меня получилось
ReDim Preserve gpCode(1) As Integer
ReDim Preserve dataValue(1) As Variant
gpCode(0) = 0
dataValue(0) = "INSERT"
gpCode(1) = 2
dataValue(1) = "2g_003"
Set sSetObj = ThisDrawing.SelectionSets.Add("GOOselection_015das222d16abw")
sSetObj.Select acSelectionSetAll, , , gpCode, dataValue
Dim eDictionary As Object
Set eDictionary = ThisDrawing.ModelSpace.GetExtensionDictionary
Dim sentityObj As Object
Dim arr(0) As AcadObject
j = 0
Do While j < sSetObj.Count
Set sentityObj = eDictionary.GetObject("ACAD_SORTENTS")
On Error GoTo 0
If sentityObj Is Nothing Then
Set sentityObj = eDictionary.AddObject("ACAD_SORTENTS", "AcDbSortentsTable")
End If
Set arr(0) = sSetObj.Item(j)
sentityObj.MoveToTop arr
AcadApplication.Update
j = j + 1
Loop
sSetObj.Delete
код найдет все блоки с именем "2g_003" и подымет их наверх
КОМУ НАДО ЮЗАЙТЕ! =)
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Порядок следования на VBA
Форум работает на PunBB, при поддержке Informer Technologies, Inc