Циклическая зависимость

Автор Ole, 12.04.20, 14:45:56

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

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

Ole

Хочу, чтобы радиус  вставленного  в Сборку Шара был равен величине Измерения (v111). Получаю сообщение о циклической ошибке. Почему?
Скриншоты и Файлы Сборки и Шарика, сохраненные в v16.1 прикрепил. 

Дядя Костя

12.04.20, 15:07:06 #1 Последнее редактирование: 12.04.20, 16:01:34 от Дядя Костя
Цитата: Ole от 12.04.20, 14:45:56Получаю сообщение о циклической ошибке. Почему?

Циклическая зависимость это когда переменная А зависит от переменной Б, которая в свою очередь зависит от переменной А.

Цитата: Ole от 12.04.20, 14:45:56Файлы Сборки и Шарика, сохраненные в v16.1 прикрепил.

Я не вижу, только скрины...

Вру, нашёл...  :shu:

Дядя Костя


Петрович-47

Дядя Костя - красиво

Но вопрос к Компасу всё равно остаётся, вед при таком решении "цикличность" никуда деться не должна, только длина цикла увеличивается... значит цикла как такового нет, есть другая ошибка и скорее всего в самой программе и сообщение о цикличности есть ошибочное отображение действительности

У меня так же частенько появляется такая ошибка, приходится обходить "костылями"

Дядя Костя

Петрович-47 мне лень вот прямо сейчас разбираться, но там что то не так с переменными в сборке, полагаю что с последовательностью построения...

Петрович-47

Я тоже так думаю, поэтому тоже обычно не трачу время на поиски и применяю обходные решения

студент

К18.1 Если вставляю шар после создания измерения,то проблемы нет

Петрович-47

Ну вот, как и намекал Дядя Костя - кто раньше встал тот и девушку танцует...

студент

Цитата: Петрович-47 от 13.04.20, 09:04:59Ну вот, как и намекал Дядя Костя - кто раньше встал тот и девушку танцует...

Не знаю, не видел, но пускай танцует  :)))))

Дядя Костя

15.04.20, 01:57:25 #9 Последнее редактирование: 15.04.20, 02:18:33 от Дядя Костя
Ole, я вам тут отвечу, личные сообщения какие то странные, нить беседы теряется...

1. Создаём шар, радиус делаем внешним:
Снимок экрана (158).jpg
2. Создаём сборку, в ней произвольный эскиз, в данном случае прямоугольный треугольник:
Снимок экрана (159).jpg
3. Понятно что длина гипотенузы (v11) будет информационной:
Снимок экрана (160).jpg
4. Вставляем шар:
Снимок экрана (161).jpg
5. Присваиваем радиусу шара значение длины гипотенузы, всё работает:
Снимок экрана (162).jpg
6. И даже шар перестраивается:
Снимок экрана (163).jpg
7. А теперь меняем размеры треугольника:
Снимок экрана (164).jpg
8. И получаем проблему, треугольник перестраивает, значение длины гипотенузы пересчитывается, а в радиус значение не передаётся:
Снимок экрана (165).jpg

Продолжение следует...

Дядя Костя

15.04.20, 01:58:11 #10 Последнее редактирование: 15.04.20, 02:28:27 от Дядя Костя
9. Меняем значение радиуса на "ручное", всё работает:
Снимок экрана (167).jpg
10. Снова пробуем вставить v11 в радиус, и приходим к вашей проблеме:
Снимок экрана (168).jpg

Вот что говорит "Руководство пользователя" по поводу "Циклической зависимости":
Снимок экрана (172).jpg
Описание честно говоря странное...
Да и связи в нашем случае между моделью шара и эскизом в сборке нет.

Я попробовал заменить прямое значение длины гипотенузы на арифметическое:
Снимок экрана (169).jpg
И всё прекрасно перестроилось:
Снимок экрана (170).jpg
И не раз:
Снимок экрана (171).jpg

Так что полагаю что это всё таки косяк Компаса, связанный именно с тем что переменная имеет статус информационной, хотя непонятно почему первый раз она вставляется, и всё перестраивается, а потом нет...
Если вам надо решить проблему, то НЕ делаете радиус шара внешним, вставляете в него ссылку на значение из сборки, но при изменении эскиза в сборке будет меняться модель шара...
Если хотите докопаться до истины - пишите в СТП, если ответят - озвучьте в этой теме.







Дядя Костя

Цитата: Студент от 13.04.20, 09:16:08Не знаю, не видел, но пускай танцует  :)))))

На правах флуда  :-)))

Есть тут ещё один одарённый "конструктор", тоже никогда не читавший ЕСКД:
https://forum.ascon.ru/index.php?topic=34376.0
https://forum.ascon.ru/index.php?topic=34384.0
И тоже, насколько мне известно, меня игнорирующий.
Мне вот интересно, он бедняга так и не узнал как обозначаются поверхности с разной шероховатостью и зоны ТВЧ?  :shu:
Если так то мне будет ну очень смешно... 

Вам ребятки кое что мешает, и танцоры из вас так себе, учитесь, пока я жив  :)))))

beginner

15.04.20, 09:51:24 #12 Последнее редактирование: 15.04.20, 10:17:37 от beginner
"Костя", но ведь свои знания можно передавать и нормальным способом. (конечно ты можешь возразить, что каждый сам для себя определяет степень нормальности... но это будет уход от реальности).
Ты же прекрасно понимаешь, что, выбранный тобой тон (порой надменный, часто принижающий или вроде бы жалеющий) общения, не совсем ДОБРЫЙ. Конечно грубости нет, но и нет человеческого общения (в моём субъективном представлении).
И я знаю, что ты можешь общаться иначе.
Не понятно, что движет тобой ... чего ради? кому во благо?

А что касается циклической зависимости, то причина - последовательность действий.
Вначале был вставлен шар, а потом уже построена геометрия, от которой должен зависеть радиус шара. (хотя странно, что это принципиально)
Можно удалить шар и вставить его снова или создать дополнительную переменную, которая будет брать значение из переменной v111, а потом передавать это значение уже в радиус шара.

Собственно в сообщении #4 "Дядя Костя" уже делал акцент на последовательность действий.

студент

Цитата: beginner от 15.04.20, 09:51:24но ведь свои знания можно передавать и нормальным способом

А-а-а-а, это он знания передает? А я то думал...
ЗЫ Не скажу что я думал, это запрещено на форуме писать  :)))))  :)))))  :)))))

Дядя Костя

Цитата: beginner от 15.04.20, 09:51:24А что касается циклической зависимости, то причина - последовательность действий.
Вначале был вставлен шар, а потом уже построена геометрия, от которой должен зависеть радиус шара. (хотя странно, что это принципиально)
Можно удалить шар и вставить его снова или создать дополнительную переменную, которая будет брать значение из переменной v111, а потом передавать это значение уже в радиус шара.

Ошибаетесь

beginner

Цитата: Дядя Костя от 15.04.20, 15:35:49Ошибаетесь
Со мной на "ты" давай - я не из тех...

В чём моя ошибка?
Перепроверил - всё работает...

Alekzander

Доброго дня!

Коммент по теме ТС, но не по его примеру, поскольку тема живейшим образом близка

Делал пару раз параметризованные сборки и по моим хотелкам нужно было чтобы при различной суммарной высоте общей сборки
вставлялись разные исполнения подсборок и разные элементы, и к тому же по разному позиционировались.
Использовал переменную "Исключить из расчета" и делал "выключатели" логического типа ЕСЛИ (ДА НЕТ)
ну то есть формулу ?:
Выключатель сто раз ссылался на "информационные" переменные и все работает нужным образом

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

Цитата: Дядя Костя от 15.04.20, 01:58:11Вот что говорит "Руководство пользователя" по поводу "Циклической зависимости":


Объяснение они, конечно, дали на отъ.ись.
Но и костылей пока придумать не могу, те размеры на которые ссылаются переменные в ветке приводящей к зацикленности - они и нужны мне как вычисляемые и не нужны как вводимые
Пробовал моделировать расчет в Excel - все работает и никаких циклических проблем, хотя объективно понимаю что сравнение некорректно.

Петрович-47

Ещё раз повторю: дело не в цикличности, здесь другие ошибки Компаса, просто обработчик ошибок интерпретирует их так

beginner

Цитата: Петрович-47 от 16.04.20, 14:23:55Ещё раз повторю: дело не в цикличности, здесь другие ошибки Компаса, просто обработчик ошибок интерпретирует их так
Вроде бы в сообщении #12 было некоторое объяснение и способ решения...

Цитата: Alekzander от 16.04.20, 14:02:00Но и костылей пока придумать не могу, те размеры на которые ссылаются переменные в ветке приводящей к зацикленности - они и нужны мне как вычисляемые и не нужны как вводимые
лично мне, чтобы разобраться в данной проблеме, нужно увидеть эту проблему...
вдруг посторонний (так скажем "свежий") взгляд обнаружит какую-то ошибку

Петрович-47

Имеем отдельно висящий в пространстве шар
Имеем отдельное построение
В одну сторону (от построения к шару) отправляем значение

Где цикл?

Скорее всего дело в последовательности вычислений, тк шар был построен первым и в том что значение v111 информационное