Не пересчитываются формулы в переменных

Автор Pokemon, 21.05.23, 11:17:46

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Pokemon

Добрый день уважаемые форумчане!
Часто имею дело с переменными в модели и на чертеже.
Прикладываю модель, в которой столкнулся с трудностями при работе с переменными.
Вбил несложную формулу. На скриншоте выделил стрелками первые две формулы — рассчитывают количество отверстий и шаг между ними по горизонтали (если модель расположить на виде сверху) в зависимости от габарита обечайки.
Сначала формула отлично работала и я продолжил создавать модель. Позже решил немного изменить размер «a», который участвует в формуле, но удивился, что формула не была пересчитана.
Решил создать временные переменные «temp» и «temp 2» и скопировал в них эти две формулы — новые переменные  были пересчитаны а исходные нет.

С проблемой пересчета в этой модели за сегодня встретился уже второй раз. Сначала думал, может я что-то не то сделал и не придал этому значения. Но при повторении ситуации понял, что где-то что-то не так. Кто-нибудь может подсказать почему формулы не пересчитываются?
Насколько я вижу, там нет ничего сложного, но возможно я сделал что-то не так. В 16-ой версии при работе с переменными с подобными проблемами не встречался.

Скриншот и модель сборки прикладываю. Открывать сборку «СБ Шибер.a3d», эскиз с нужными переменными имеет имя «Схема размещения отверстий»

Модель:
Модель.zip

Скриншот:
2023-05-21_13-05-49.png

Pokemon


p3452

Если пересохраните в v20 - гляну...
(Кстати, проверим, исправили ли АСКОН-овцы БАГ сохранения в предыдущие версии)

Pokemon

#3
Там два файла (сборка и компоновочная геометрия). Могу оба пересохранить в 20-ую версию, но я не знаю как передастся связь между файлами.

Сборка в 20-ой версии: v20.zip

p3452

tmp17.png

Попробуйте подставить для "а" значения 314 и перестройте, а потом - значение 315 и, опять, перестройте, затем - значение 200 и перестройте...

Pokemon

Попробовал провести такие действия:

До:
До.png


После:
После.png

Видно, что выделенные переменные не изменили своё значение, а переменная "Temp" изменила

IgorT

Проверил. Подтверждаю глюк.
Глюк что надо! Шикарный глюк!!!

p3452

Просил проделать ПРОСТЕЙШУЮ(неужели так сложно!?) операцию - попробуйте подставить, по очереди, ТРИ значения в переменную "а" (314, 315, 200) и проанализируйте результат (приложенная картинка - Вам в помощь).

IgorT

Цитата: p3452 от 21.05.23, 18:27:24Просил проделать ПРОСТЕЙШУЮ(неужели так сложно!?) операцию - попробуйте подставить, по очереди, ТРИ значения в переменную "а" (314, 315, 200) и проанализируйте результат (приложенная картинка - Вам в помощь).

Требует? Примем! Просили? Получите:


2023-05-21_22-21-33.png

2023-05-21_22-22-03.png

2023-05-21_22-22-39.png

Pokemon

Цитата: p3452 от 21.05.23, 18:27:24Просил проделать ПРОСТЕЙШУЮ(неужели так сложно!?) операцию - попробуйте подставить, по очереди, ТРИ значения в переменную "а" (314, 315, 200) и проанализируйте результат (приложенная картинка - Вам в помощь).


Провел же эти действия, выше прикрепил два скриншота переменных (До проведения действий и после).

Pokemon

Написал аналогичный запрос в тех. поддержку. Посмотрим, что ответят.

p3452

Цитата: Pokemon от 22.05.23, 07:26:45Провел же эти действия, выше прикрепил два скриншота переменных (До проведения действий и после).
???
И что? Неужели закономерности не заметили?

У Вас взаимоблокирующие размеры:
1. Проявляется это не сразу (например: при а=314 все еще ПЕРЕСЧИТЫВАЕТСЯ, а при значении а>=315 - уже ошибка (нижнюю границу не проверял) - следствие округления...
2. При значении а=200 - еще две ошибки проявятся - выражения четырех переменных  пересчитываться не будут!
3. Выражения в КОПИЯХ всегда пересчитываются потому что ЭТИ переменные не участвуют в построении - их ничто не "блокирует"...
+ Благодарностей: 1

Pokemon

"???
И что? Неужели закономерности не заметили?"

При подставлении в переменную "a" по очереди указанных вами величин (314, 315 и 200) у меня четыре основных переменных не пересчитывались, пересчитывались только переменные "temp" и "temp 2".

"У Вас взаимоблокирующие размеры:"
А вот здесь можно подробнее, что означает взаимоблокирующие размеры? Что можно сделать, чтобы это обойти?

Из эскиза со схемой размещения отверстий берутся переменные v51 и v36 (габарит обечайки). И эти переменные участвуют в формулах. Может быть из-за них?

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

IgorT

Можно поподробнее? Что такое "взаимоблокирующие размеры"?
Что пересчитывается при а=314? Где это заметно?
Как избежать повтора подобных ситуаций? Как должны быть организованы вычисления?

p3452

Цитата: Pokemon от 22.05.23, 10:53:08При подставлении в переменную "a" по очереди указанных вами величин (314, 315 и 200) у меня четыре основных переменных не пересчитывались, пересчитывались только переменные "temp" и "temp 2".
1. В выложенных Вами файлах для v20 поведение именно такое как я описал.
2. Много красноты из-за сбоя ВЗАИМНЫХ ссылок при сохранении в v20.
3. Ваш "стиль" работы с переменными (использование служебных переменных в выражениях) - стиль мазохистов.
4. Сочетание п.п.2,3 не вдохновляет на копание во всем ЭТОМ, но "диагноз" (ответ на вопрос) дан...

Pokemon

Я добавил в созданном ранее (по последовательности построения) эскизе два информационных размера, чтобы разделить информационные размеры и размеры, участвующие в построении.
Скриншот показывает в каком эскизе добавились переменные.
Информационные размеры.png

После внесения этих размеров в формулы пересчет начал производиться корректно, второй скриншот:
Пересчет корректный.png

Архив с моделью прикладываю:
Модель новая.zip

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

Pokemon

"2. При значении а=200 - еще две ошибки проявятся - выражения четырех переменных  пересчитываться не будут!"
"2. Много красноты из-за сбоя ВЗАИМНЫХ ссылок при сохранении в v20."

В 21-ой версии программа никаких ошибок мне не показывала, просто не пересчитывала.


"Ваш "стиль" работы с переменными (использование служебных переменных в выражениях) - стиль мазохистов."

Не понял, что именно Вам не понравилось в этих формулах, можете уточнить? И как бы Вы составили формулы в моем примере?

Pokemon

В новой модели попробовал подставить три указанных Вами размера. Все три размера были успешно пересчитаны.
314
314.png

315
315.png

200
200.png

ITE

chat-GPT не умеет ещё отвечать на такие вопросы?:D

IgorT

Цитата: Pokemon от 22.05.23, 11:32:11В новой модели попробовал подставить три указанных Вами размера. Все три размера были успешно пересчитаны.
...
Надо понимать так, что в старой модели наблюдали глюк Компаса? Или как?