3DCenter.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Подвисание 3dsmax во время выполения скриптов, лечится!
illusion21
сообщение 28/12/2011, 00:36
Сообщение #1


Уважаемый
Иконка группы

Группа: Пользователи
Сообщений: 915
Регистрация: 24/12/2003
Из: Тольятти
Пользователь №: 3 979



и снова здравствуйте. Создал новую тему вместо продолжения старой чтобы потом елси что люди с аналогичными вопросами могли найти ее.

итак имеется модель, для которой я сделал экспортер в свой собственный формат.
во время обхода модели вывожу процесс в прогресс бар и вижу как после некоторого времени прогресс бар перестает обновляться и в заголовке написано что 3д макс не отвечает. При этом рассчет продолжается и по завершению все отвисает обратно и работает в порядке.

Если ли какие нибудь методы профилактики этих подвисаний?
Go to the top of the page
 
+Quote Post
Prayer
сообщение 28/12/2011, 08:24
Сообщение #2


Reciver of wisdom
Иконка группы

Группа: Пользователи
Сообщений: 5 245
Регистрация: 01/03/2008
Из: глубин подсознания
Пользователь №: 62 106



ну это дефолтная штука в принципе во всех виндовых программах

иногда в таких случаях можно ставить в цикл кхм.. ну в вб это был doevents который как-бы прерывал для вывода, в делфи какой то контрол специальный был для этого типа факела что-ли
в си тоже что-то должно быть, и современных версиях для .нет тоже есть такое
Но при этом прерывание для обновления прогресс бара приведет к тому что скорость вычислений снизится, ну собственно засчет прерывания на обновление прогресс бара.
Думаю это будет особенно заметно в случае если вычисляется огромный массив какой-нибудь фигни и при этом на вычисления 1 элемента затрачивается очень мало времени.
Вообщем перебор какой-нибудь фигни, тогда обновление может немного затянуть процесс. А вот если там по секунд 30 или несколько минут вычисление идет то наверное заметной разницы не будет.

вообще что-бы сама прога не славливала "не отвечает", нужно процесс вычисления запихивать в отдельный поток. А вот как с прогресс баром быть, но возможно если прогресс бар будет как-бы тоже в потоке и из него выводится на экран то может такой фигни не будет. (Это когда объявляется в потоке вроде форма выводится на экран и там прогресс бар временный, правда я не уверен возможно точно так-же к концу цикла перестанет отвечать)

А может все это и не применимо для макс скриптов)

Сообщение отредактировал Prayer - 28/12/2011, 08:32
Go to the top of the page
 
+Quote Post
Pancir
сообщение 28/12/2011, 08:41
Сообщение #3


Избранный :)
Иконка группы

Группа: Участник
Сообщений: 5 052
Регистрация: 20/01/2004
Из: Химки м/о
Пользователь №: 4 253



если про макс скрипт то

progressStart
progressUpdate
progressEnd

Скорость вычисления снижается ~30%
Go to the top of the page
 
+Quote Post
RGhost
сообщение 28/12/2011, 09:37
Сообщение #4


Рыцарь форума
Иконка группы

Группа: Участник
Сообщений: 2 126
Регистрация: 01/04/2003
Из: Moscow/Russia
Пользователь №: 1 802



Цитата(illusion21 @ 28/12/2011, 01:36) *
Если ли какие нибудь методы профилактики этих подвисаний?


решение тут : http://forums.cgsociety.org/showpost.php?p...mp;postcount=19
Go to the top of the page
 
+Quote Post
illusion21
сообщение 28/12/2011, 12:32
Сообщение #5


Уважаемый
Иконка группы

Группа: Пользователи
Сообщений: 915
Регистрация: 24/12/2003
Из: Тольятти
Пользователь №: 3 979



app=dotNetclass "System.Windows.Forms.Application"
app.doEvents()

помогло.. только его надо не с каждой итерацией цикла вызывать а сильно реже, тогда замедления просчета нет.
Всем спасибо smile.gif
Go to the top of the page
 
+Quote Post
Track
сообщение 30/12/2011, 07:54
Сообщение #6


Русскоговорящий жидо-бандеровец
Иконка группы

Группа: Пользователи
Сообщений: 1 336
Регистрация: 16/07/2004
Из: Украина-Одесса
Пользователь №: 6 600



MultiThreading in 3D Studio Max
Go to the top of the page
 
+Quote Post
illusion21
сообщение 30/12/2011, 12:38
Сообщение #7


Уважаемый
Иконка группы

Группа: Пользователи
Сообщений: 915
Регистрация: 24/12/2003
Из: Тольятти
Пользователь №: 3 979



ухты как интересно smile.gif
Go to the top of the page
 
+Quote Post
Bots
сообщение Системное сообщение






Reply to this topicStart new topic

1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 22/06/2018 - 01:08