|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
99xt1, оптимизация... Тут не оптимизировать нужно, тут весь алгоритм менять нужно, он ужасен O(n^2).
При обработке каждой ячейки, Ваш алгоритм, перебирает ВСЕ объекты чертежа, КАЖДЫЙ РАЗ!!! Перебирает даже обработанные ранее объекты! Кстати, кто Вам сказал, что все объекты в пространстве модели именно блоки? |
|||
|
||||
нефтепереработка Регистрация: 17.11.2009
Мозырь, Республика Беларусь
Сообщений: 77
|
Составляю отчет в виде таблицы Excel где указываю сроки закупки оборудования.
Начальство хочет на основании этого отчета, чтобы на плане это оборудование раскашивалось определенными цветами в зависимости от срока поставки. Каждый период - свой слой с определенным цветом. Каждая единица оборудования - один блок. Вот и беру данные из Excel о сроке и перемещаю блоки на определенные слои. |
|||
|
||||
Регистрация: 18.12.2010
Сообщений: 5,057
|
|
|||
|
||||
нефтепереработка Регистрация: 17.11.2009
Мозырь, Республика Беларусь
Сообщений: 77
|
Цитата:
|
|||
|
||||
КЖ; C# Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,589
|
Я не очень хорошо помню VBA, но для начала самая простая оптимизация:
Пройтись по модели и собрать блоки в отдельную коллекцию (objectID + BlockName). Потом проходясь по этой коллекции назначать слой и перемещая из нее уже обработанные блоки в коллекцию (objectID + BlockLayer). Пройтись по новой коллекции и назначить слои. Хотя если помнить, что самая затратная по времени операция, это чтение чертежа, то может имеет смысл поменять циклы местами, один раз проходится по объектам чертежа и много раз проходить по таблице значений... |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,046
|
увидел и вздрогнул - чем вам код ошибки не угодил, зачем строки теребить?)
Затем: операция чтения из ячейки экселя - очень медленная. Одной строчкой считываете диапазон Range в переменную variant, и в этой переменной получаете двухмерный массив значений. И работаете дальше с этими значениями, а не с листом. Следующее: кто за вас будет отключаться от акада в конце процедуры или при ошибке? |
|||
|
||||
нефтепереработка Регистрация: 17.11.2009
Мозырь, Республика Беларусь
Сообщений: 77
|
Цитата:
Покажите как правильно, пожалуйста? Пробовал два варианта подключения к Автокаду. Первый отсюда: Код:
Второй отсюда, открывает файл очень быстро Код:
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,046
|
почему разные названия? Подключаетесь к одному объекту
а втором примере, если замените Код:
Код:
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Заполнение размеров в Autocad из Excel | zenija2007 | AutoCAD | 9 | 18.09.2015 12:53 |
Замена связей AutoCAD 2012 и Excel | seregas | AutoCAD | 40 | 20.06.2014 10:12 |
Autocad Architecture 2011 не воспринимает Excel. | Cyprus | Вертикальные решения на базе AutoCAD | 3 | 17.05.2010 18:23 |
Доработка очередной утилиты AutoCAD <-> Excel | Lesha | Программирование | 2 | 28.02.2010 20:21 |
AutoCAD 2007. Вставка блоков О_о | vaca | AutoCAD | 3 | 25.12.2009 15:01 |