Реклама i
|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Проблема с остановкой программы на VBA
Регистрация: 05.08.2009
Сообщений: 7
|
||
Просмотров: 3230
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Значит надо менять сам алгоритм отрисовки.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 05.08.2009
Сообщений: 7
|
До конкретной отрисовки еще не доходит. При расчете габаритов (это самый длинный и сложный блок программы - выполняется "почти" аналитически - через массивы) делал Exit Sub и наблюдал эту проблему.
"Почти" потому что, чтобы рассчитать габариты на чертеж выводятся текстовые объекты-индексы исходного массива (он огромен), далее делается SelectionSet и выбирается часть индексов этого массива (для экономии времени расчета), далее с данными массива этих индексов делаются аналитические расчеты. Где здесь я как раз ставлю Exit Sub и наблюдаю эту проблему. По завершению расчетов габаритов все TEXTы удаляются, а потом выполняется полная отрисовка чертежа |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Linetzev, а то, что нельзя безнаказанно создавать безумное количество примитивов в AutoCAD - это учитывается или нет? Почему нельзя выполнять выборку полностью аналитически?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 05.08.2009
Сообщений: 7
|
Безумное количество примитивов - в моем случае это порядка 20-40 тысяч на готовом чертеже и не более 5 тысяч TEXTов для SelectionSet.
Мне не хватает знаний это сделать полностью аналитически, а путем сравнения координат это очень долго - мне так кажется. Первоначально построенная конструкция включала 5 вложенных циклов с выходом по условию, результат приходилось ждать очень долго и возможности этой процедуры были не очень хороши. Дело в том, что на жд станциях очень много путей - габариты от непутевых точек и междупутья (жд пути тоже состоят из точек) приходится определять многократно. Кроме того, некоторые непутевые точки (светофоры) должны быть обязательно присоеденены к своему пути (светофор всегда справа от пути). Ускорение процесса (моя идея) - резкое сокращение области расчетных точек через SelectionSet. Еще хочу сказать что объект SelectionSet создается один раз в начале работы и удаляется в конце, а в промежутках - очищается. может быть в этом дело? Как реализовать алгоритм по-другому я не знаю. Может подскажете или ссылку дадите? Последний раз редактировалось Linetzev, 19.08.2009 в 15:21. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пароль к VBA | karp_b | Программирование | 24 | 29.08.2013 12:43 |
Vba глюк активизации формы | Artem011 | Программирование | 2 | 29.04.2009 08:09 |
VBA-AutoCAD программы для геодезистов, маркшейдеров | Sergey Klimkin | Программирование | 5 | 05.09.2008 22:55 |
шаблоны.. блоки.. программы.. | kolobrod | Программирование | 9 | 29.01.2007 11:15 |