| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Vba. скольким группам принадлежит элемент

Vba. скольким группам принадлежит элемент

Ответ
Поиск в этой теме
Непрочитано 20.01.2016, 22:56 #1
Vba. скольким группам принадлежит элемент
kefirrr
 
Регистрация: 29.12.2014
Сообщений: 28

Может кто подскажет на форуме встроенную функцию, с помощью которой можно быстро определить какой группе принадлежит указанный элемент.
На данный момент я пользуюсь кодом:
Код:
[Выделить все]
Public Sub test()

Dim ent As AcadEntity, pt
Dim group, groups As Collection

Call ThisDrawing.Utility.GetEntity(ent, pt)
Set groups = GetGroups(ent)

For Each group In groups
Debug.Print group.Name
Next

End Sub

Public Function GetGroups(ent As AcadEntity) As Collection

Dim col As Collection, group As AcadGroup

Set col = New Collection

For Each group In ent.Document.groups
For i = 0 To group.Count
If group.Item(i).Handle = ent.Handle Then
col.Add group
Exit For
End If
Next
Next

Set GetGroups = col

End Function
Все бы ничего, но у меня на чертеже более 1500 групп, каждая группа может содержать огромную тучу элементов. Данный код проверяет каждый элемент группы, что ведет к длительному выполнению макроса (чисто для моей задачи в районе 20-25 секунд).

Если пользоваться формой _group и непосредственно через кнопку "найти имя" ("Find Name")- процесс практически мгновенный.

Очень надеюсь на вашу помощь.
Заранее спасибо
Просмотров: 3061
 
Непрочитано 20.01.2016, 23:58
#2
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,039


VBA - не быстрая программная среда явно.. хотите быстроты - либо переходите на тот же Net, либо идите на траты ресурсов - памяти под буферизацию

----- добавлено через ~45 мин. -----
тем более, судя по постам - пишете код в экселе.. так заполните лист: имя группы, хэндл объектов и пускай сам эксель занимается сравнением по формулам
Сергей812 вне форума  
 
Непрочитано 21.01.2016, 01:00
#3
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,407
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от kefirrr Посмотреть сообщение
Если пользоваться формой _group и непосредственно через кнопку "найти имя" ("Find Name")- процесс практически мгновенный.
Средствами lisp/ObjectARX/.NET можно моментально найти все группы, членом которых является примитив (DXF код 330):



У VBA такой возможности нет.
Александр Ривилис вне форума  
 
Непрочитано 21.01.2016, 09:07
#4
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Александр Ривилис, а можно пример, как в C# получить значение DXF (в данном случае 330) кода для выбранного объекта?
Или в .net предполагается сначала получить имена всех групп, а потом при выборе фильтровать по значению 330 кода? Хотя последний подход и для VBA подходит... И все таки интересно про получение значения по dxf коду...

Последний раз редактировалось Boxa, 21.01.2016 в 09:18.
Boxa вне форума  
 
Непрочитано 21.01.2016, 09:15
#5
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,407
Отправить сообщение для Александр Ривилис с помощью Skype™


P/Invoke для acdbEntGet из ObjectARX: http://adn-cis.org/kak-najti-vse-pol...chertezhe.html
Или DwgFiler: http://adn-cis.org/forum/index.php?topic=530.0
Есть еще один способ - без DXF. Сделаю пример - покажу.

P.S.: Собственно говоря готовый пример как в .NET по имени выбранного примитива получить информацию о всех группах, в которые он входит: http://adndevblog.typepad.com/autoca...up-or-not.html

Последний раз редактировалось Александр Ривилис, 21.01.2016 в 12:40.
Александр Ривилис вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Vba. скольким группам принадлежит элемент

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчет пространственных стержневых систем и наличие шарниров в расчетных схемах Jenec Лира / Лира-САПР 17 27.09.2013 22:23
Несоответствие результатов в Лире s.vas Лира / Лира-САПР 19 11.11.2009 07:31
Помощь по Лире Серега М Лира / Лира-САПР 52 28.05.2007 02:47