Доброго всем времени суток!
Уважаемые форумчане, очень интересует несколько вопросов. Представим себе ситуацию: сборочная 3Д-модель, которая содержит некоторое количество винтов (болтов или другого крепежа), при этом винты содержат в себе внутреннюю БД для параметризации в духе "диаметр/длина/покрытие" ну и т.д.
Вот мне интересно следующее:
1. Какую логику T-Flex использует при пересчёте таких 3Д-фрагментов, где есть параметризация с выборкой параметров из внутренней БД? Если кто-нибудь знает - распишите пожалуйста подробно по шагам.
2. Есть ли разница в скорости работы пары функций rec / val в сравнении с функцией find при выборке значений из внутренней БД? При этом считаем, что параметров выбирается около десятка. На мой взгляд пара rec / val должна работать быстрее, т.к. поиск по БД выполняется только 1 раз функцией rec, а затем по найденному номеру записи я выбираю функцией val нужные мне параметры. Но кто знает....
3. Если ли у кого-то соображения по поводу того, как максимально ускорить пересчёт 3Д-фрагмента типа винта, болта, гайки, шайбы и т.п., т.е. тех фрагментов, которые применяются массово и ввиду этого их время пересчёта критично.
Я решил таки усовершенствовать нашу базу крепежа, сделать её чуть более удобной. И возник такой интересный случай: массив из 1000 "новых" винтов стал пересчитываться в 5 раз дольше, чем массив 1000 "старых" винтов. После изысканий я случайно выяснил, что на скорость пересчёта почему-то влияет то, какая строчка из БД была выбрана при сохранении винта. Т.е. допустим я сохраняю свой винт при диаметре 3 мм и длине 10 (запись в БД №27). После этого мой массив 1000 элементов считается 25 секунд. После этого я пересохраняю винт со значением диаметра 2 мм и длиной 4 мм (запись в БД №1). После этого массив пересчитывается 5 секунд. При этом массив был сделан не в файле винта, а в сборке, куда винт вставлен как фрагмент. И в переменных винта как фрагмента в сборке была установлена запись №27 (диаметр 3 и длина 10). И я ну никак не могу понять почему так происходит. Какая логика может объяснить такое поведение? Может функции rec / val или find (кстати пробовал оба варианта - разницы не увидел) как-то особенно работают?
В общем, жду ваших комментариев по вышеописанным вопросам.
Уважаемые форумчане, очень интересует несколько вопросов. Представим себе ситуацию: сборочная 3Д-модель, которая содержит некоторое количество винтов (болтов или другого крепежа), при этом винты содержат в себе внутреннюю БД для параметризации в духе "диаметр/длина/покрытие" ну и т.д.
Вот мне интересно следующее:
1. Какую логику T-Flex использует при пересчёте таких 3Д-фрагментов, где есть параметризация с выборкой параметров из внутренней БД? Если кто-нибудь знает - распишите пожалуйста подробно по шагам.
2. Есть ли разница в скорости работы пары функций rec / val в сравнении с функцией find при выборке значений из внутренней БД? При этом считаем, что параметров выбирается около десятка. На мой взгляд пара rec / val должна работать быстрее, т.к. поиск по БД выполняется только 1 раз функцией rec, а затем по найденному номеру записи я выбираю функцией val нужные мне параметры. Но кто знает....
3. Если ли у кого-то соображения по поводу того, как максимально ускорить пересчёт 3Д-фрагмента типа винта, болта, гайки, шайбы и т.п., т.е. тех фрагментов, которые применяются массово и ввиду этого их время пересчёта критично.
Я решил таки усовершенствовать нашу базу крепежа, сделать её чуть более удобной. И возник такой интересный случай: массив из 1000 "новых" винтов стал пересчитываться в 5 раз дольше, чем массив 1000 "старых" винтов. После изысканий я случайно выяснил, что на скорость пересчёта почему-то влияет то, какая строчка из БД была выбрана при сохранении винта. Т.е. допустим я сохраняю свой винт при диаметре 3 мм и длине 10 (запись в БД №27). После этого мой массив 1000 элементов считается 25 секунд. После этого я пересохраняю винт со значением диаметра 2 мм и длиной 4 мм (запись в БД №1). После этого массив пересчитывается 5 секунд. При этом массив был сделан не в файле винта, а в сборке, куда винт вставлен как фрагмент. И в переменных винта как фрагмента в сборке была установлена запись №27 (диаметр 3 и длина 10). И я ну никак не могу понять почему так происходит. Какая логика может объяснить такое поведение? Может функции rec / val или find (кстати пробовал оба варианта - разницы не увидел) как-то особенно работают?
В общем, жду ваших комментариев по вышеописанным вопросам.