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

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

VBA. Очень медленная обработка таблиц автокада.

Закрытая тема
Поиск в этой теме
Непрочитано 02.10.2014, 15:53 #1
VBA. Очень медленная обработка таблиц автокада.
art_rrc
 
Минск
Регистрация: 28.01.2013
Сообщений: 379

Доброго времени суток. Прошу совета как исправить или разъяснения почему так происходит.. Суть вот в чем:

Я пишу программу (на VBA AutoCAD 2015), суть ее в вытягивании данных из атрибутов динамических блоков, последующая их сортировка, упаковка и запись в таблицу автокада (AcadTable) . И вроде все работает, но когда доходит время до манипуляций с таблицей (Вставка/удаление строк/столбцов, назначение стиля ячейки, изменение ширины/высоты ячейки, объединение, разделение, добавление текста и формул и т.д.), то время выполнения программы очень существенно увеличивается (До 10 минут, чтоб заполнить 15-20 строк). Пробовал выводить данные в excel, все происходит в едва заметный промежуток времени. Значит, сортировки написаны достаточно оптимально.
Да и в принципе, даже когда "вручную" работаешь с таблицами, они ну очень сильно проигрывают в скорости тому же екселю.. Никаких кодов не выкладываю, тк мне кажется, кто сталкивался с этим и может что-то дельное подсказать, тот и так поймет..) Если оч. нужно, то конечно выложу.

Подскажите, может быть есть меры которые могут хоть косвенно помочь ускорить обработку таблиц. Буду очень благодарен любому полезному совету! Спасибо!
Просмотров: 4881
 
Непрочитано 02.10.2014, 16:01
#2
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 825


obj.RecomputeTableBlock False
обработка
obj.RecomputeTableBlock true
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Автор темы   Непрочитано 02.10.2014, 16:37
#3
art_rrc


 
Регистрация: 28.01.2013
Минск
Сообщений: 379


Цитата:
Сообщение от Сергей Богатов Посмотреть сообщение
obj.RecomputeTableBlock False
обработка
obj.RecomputeTableBlock true
Спасибо. Это было очень похоже на правду, но к сожалению существенной разницы не заметил. Таблица по прежнему обрабатывается очень медленно...
В любом случае спасибо за совет...
art_rrc вне форума  
 
Непрочитано 02.10.2014, 17:14
#4
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 825


1)obj.RecomputeTableBlock False
2)сначала формируй массив данных который хочешь вставить
3)формируй(добавляй?) таблицу в размер массива
4)форматируй таблицу
5)вставляй массив
6)obj.RecomputeTableBlock true
P.S.
код выложи - может ещё чего присоветуют...
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 02.10.2014, 17:28
#5
Александр Ривилис

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


Ох!
Код:
[Выделить все]
obj.RegenerateTableSuppressed = True
'...
'здесь заполняем таблицу
'...
obj.RegenerateTableSuppressed = False
obj.RecomputeTableBlock(True)
Александр Ривилис вне форума  
 
Непрочитано 02.10.2014, 18:10
1 | #6
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Ох!
Поддерживаю именно это работает.
Offtop: +, +1 , спасибо , поднять репутацию, правильный ответ и д.т. и т.п. ..... это из серии того что сейчас обсуждают в книге отзывов
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Непрочитано 02.10.2014, 18:48
#7
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 825


Я там(выше obj.RecomputeTableBlock False и т.д.), конечно написал неправильно, но имел в виду именно это

Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Ох!
Код:
[Выделить все]
obj.RegenerateTableSuppressed = True
'...
'здесь заполняем таблицу
'...
obj.RegenerateTableSuppressed = False
obj.RecomputeTableBlock(True)
Offtop: Вот, что значит советовать по-памяти
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Непрочитано 02.10.2014, 19:48
#8
trir


 
Регистрация: 18.12.2010
Сообщений: 5,051


повтор
trir вне форума  
 
Непрочитано 02.10.2014, 19:57
#9
Александр Ривилис

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


Ну на форуме эта тема поднималась не раз.
Александр Ривилис вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Очень медленная обработка таблиц автокада.

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
Перевод таблиц из автокада в Excel(3) derector pro AutoCAD 10 05.03.2017 17:38