Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 3 След.
Рекурсия при задании элемента, Неприятная ошибка, хотя логична и разрешима...
 
В моём случае возникла проблема элементарная когда была задана переменная с радиусом сферы, для этого пришлось применить функцию Get("ИмяФрагмента", "ПараметрФрагмента") <- ковычки обязательны и от этой переменной эту сферу пришлось сместить в одном из направлений.
Почему бы не сделать дополнительную функцию в перерасчетах фрагментов, где переменные помечаются как расчет в порядке последовательности изначально заданы самим пользователем.
Очень неприятная ошибка. Разрешите эту проблему Пожайлуста!
--------------------------------------
Обновленное сообщение, в ходе дискуссии, для ускоренного ознакомления предлагаю всем посмотреть причину ошибки
https://www.youtube.com/watch?v=uS3Gi3Gjb_0

Для того чтобы можно было удостовериться в возможностях иных программ, хоть они и не в конструкторском профиле, но всё-же по гибкости это впечатляет:
Программа 3DsMax https://www.youtube.com/watch?v=Gj1eywnWyZc
Программа Maya https://www.youtube.com/watch?v=cKMSmBspJlg
Изменено: Alex Ko - 29.10.2018 12:49:27
 
радиус сферы сделайте обычной задаваемое переменной, и двигайте куда что хотите.
оффлайн
 
Функция Get(ИмяФрагмента, ПараметрФрагмента) - применима для получения значения параметра фрагмента, какой-же от неё смысл если она не обладает широким спектром действия.
 
Программистам! Могли бы вы функцию Get и подобные ей, обозначить их в качестве приоритета в процессе перерасчета и тогда подобные проблемы не проявлялись бы так нелепо.

Если в разжёванном виде тогда блок схема:
1.Перебор констант;
2.Перебор фрагментов;
3.Получение параметров от каждого фрагмента;
4.Перебор функций Get и подобных ей которые были обозначены пользователем;
5.Расчет и установка значений в параметры фрагментов;
6.Остальное как вас там далее в расчетах по другим приоритетам ...
Изменено: Alex Ko - 23.10.2018 18:49:37
 
думается мне, что задача решается проще чем сейчас пытаетесь решить..
оффлайн
 
Простите моё хамство, проблему надо решать а не умничать)) Не говорите загадками, обосновывайте свои соображения. Выше я согласен, Вы молодец что проблему вы решили назначением изначальной переменной, этим по неизбежности придётся заняться вспоминая ваш совет, но представьте себе какая мега-группа необходима к созданию всего перечная переменных заранее осознавая что схематизация групп интерфейса не предполагает создание подгрупп, касаемо даже средних проектов.
Изменено: Alex Ko - 23.10.2018 19:18:26
 
Цитата
Alex Ko написал:
проблему надо решать а не умничать)
поэтому пытаюсь добиться от вас показа практического случая этой задачи...А вы предлагаете непонятные схемы пересчета, которые если поменять, то с 110% вероятностью сломают работающие проекты, и в перспективе будет вызывать рекурсии в других местах.
Цитата
Alex Ko написал:
представьте себе какая мега-группа необходима к созданию всего перечная переменных заранее осознавая что
мега группу переменных для одной радиуса сферы? в общем пока все туммано и абстрактно слишком... описывайте подробнее задачу, тогда станет понятнее как разработчики смогут помочь..
оффлайн
 
Мега группа по переменным вообще, а не только по диаметру сферы))
По поводу корректировки не знаю, как там упорядочен код программы, но если всё очень организованно и красиво описано, то изменение работать будет. Вообщем одним словом: Не видел - не знаю!
Изменено: Alex Ko - 24.10.2018 15:57:01
 
Я так и не понял о чем пожелание или предложение. И где тут ошибка или проблема.
 
Проблема в рекурсии когда объект сам на себя зациклен, проблема вообщем понятная, но если правильно расставить приоритет расчета то зацикливание будет только разовым с обязательным откатом в начальные значения чтобы расчеты не наслаивались суммированием.
Создайте сферу у которой параметр (внешняя переменная) радиус равен например 5, затем создайте переменную прописав функцию MyRadius = Get("ИмяФрагмента", "ПараметрФрагмента") <- ковычки обязательны, после чего переменная с этой функцией отобразит её радиус, теперь необходимо сдвинуть сам фрагмент по оси X от самой переменной MyRadius. Возникнет ошибка рекурсии - зацикливания.
Иногда даже думаю, на что её применить если такой метод не может на себя возложить.
 
Цитата
Alex Ko написал:
Создайте сферу у которой параметр (внешняя переменная) радиус равен например 5, затем создайте переменную прописав функцию MyRadius = Get("ИмяФрагмента", "ПараметрФрагмента") <- ковычки обязательны, после чего переменная с этой функцией отобразит её радиус, теперь необходимо сдвинуть сам фрагмент по оси X от самой переменной MyRadius. Возникнет ошибка рекурсии - зацикливания.Иногда даже думаю, на что её применить если такой метод не может на себя возложить.
Надо создать операцию копирования сферы с переносом и в преобразовании этой копии указать MyRadius. И тогда не будет рекурсии.
 
Вы великолепны))) А что мне делать с её оригиналом - прятать, создавая всё более сложный и громоздкий проект. Нее, это не выход, Корпорация T-Flex не будет себя позорить таким методом.
Представьте на минуточку, как полезно изъять параметр у самого элемента и этим-же параметром им управлять, неужели фантазии не хватает, это-же гибкость и чудодейственная интуитивность самой системы.
Неужели для этого надо создавать ПЕРЕМЕННУЮ
Изменено: Alex Ko - 24.10.2018 18:06:30
 
К примеру, вот сейчас, мне надо пруток с диаметром D=5, привязать к краю уголка. Что я делаю, выбираю начало прутка, её центр системой распознаётся как привязочный (подсвечивается квадратик), привязываю к краю, привязал, однако у этого прутка болтается её половинка окружности, ведь я привязал её центром, для этого мне надо определить её диаметр (желательно это сделать считывая параметр самого прутка, а не создавать переменную) и сместить в одном из направлении по расчету D/2. И когда, по разным тому обстоятельствам необходимо вдруг изменить диаметр прутка, то независимо от её диаметра этот пруток будет всегда находиться в нужном месте.
Неужели для этого простого варианта, мне нужно применять разного рода хитрости, тонкости и фокусы, не говоря уже о секретах мастерства.
Изменено: Alex Ko - 24.10.2018 18:22:59
 
Цитата
Alex Ko написал:
Вы великолепны))) А что мне делать с её оригиналом - прятать, создавая всё более сложный и громоздкий проект. Нее, это не выход, Корпорация T-Flex не будет себя позорить таким методом.
Представьте на минуточку, как полезно изъять параметр у самого элемента и этим-же параметром им управлять, неужели фантазии не хватает, это-же гибкость и чудодейственная интуитивность самой системы.
Неужели для этого надо создавать ПЕРЕМЕННУЮ
ИМХО, а почему бы и не создать переменную? К примеру не переменную которая будет считываться с радиуса, а переменную которая управляет радиусом и смещением сферы.
Альтернативный вариант на уровне фрагмента прописать смещение от радиуса при вставке.
Зачем предлагать создать еще какой то инструмент, ценность которого пока понятна только одному, когда есть альтернативные решения той же задачи?
 
Цитата
Alex Ko написал:
К примеру, вот сейчас, мне надо пруток с диаметром D=5, привязать к краю уголка. Что я делаю, выбираю начало прутка, её центр системой распознаётся как привязочный (подсвечивается квадратик), привязываю к краю, привязал, однако у этого прутка болтается её половинка окружности, ведь я привязал её центром, для этого мне надо определить её диаметр (желательно это сделать считывая параметр самого прутка, а не создавать переменную) и сместить в одном из направлении по расчету D/2. И когда, по разным тому обстоятельствам необходимо вдруг изменить диаметр прутка, то независимо от её диаметра этот пруток будет всегда находиться в нужном месте.
Неужели для этого простого варианта, мне нужно применять разного рода хитрости, тонкости и фокусы, не говоря уже о секретах мастерства.
Для этой задачи можно изменить или создать ЛСК в прутке и вставлять пруток по ней
Изменено: zobza - 24.10.2018 18:40:30
 
Цитата
zobza написал:
Для этой задачи можно изменить или создать ЛСК в прутке и вставлять пруток по ней
Может вы не заметили, но когда производишь преобразование в плане смещения, вы автоматически попадаете на ЛКС она-же рекурсивно завязана на фрагмент, возникнет ошибочка.
Цитата
zobza написал:
а почему бы и не создать переменную? К примеру не переменную которая будет считываться с радиуса, а переменную которая управляет радиусом и смещением сферы.
Возможно вы не попадали в ситуацию когда переменных и без того не мало, к тому-же проще ориентироваться ссылаясь на фрагменты, управляя их параметрами, задавая напрямую нежели искать в огромном списке переменных нужное тебе значение. Это конечно проблематика в удобстве использование системой CAD, на этом вообще-то ставят приоритет разработчики, и пусть разного рода трюки останутся в виде универсальности подходов, они полезны по своему, а здесь проблема всё-же напрашивается сама по себе, она реально нелепая, просит своего устранения.
 
Давайте ещё раз разберёмся, разработчики вы меня слышите! Спасибо.
В заключении, всё как-бы нормально!
Вообще-то, проблема в расстановки приоритетов - Выполнена! (Как уже видно) Вы наверно там 100 раз перестраховались, побоялись рекурсионую связь, но как видите расчет проходит, всё нормально, но ошибку сделали предупредительную, я вас понимаю, но доведите дело до конца, чтобы этой ошибки в таких элементарных вещах не возникало, а то лишний раз настораживаете, зачем кому-то такие неприятные переживания, пользуясь такой великолепной системой как T-Flex
Изменено: Alex Ko - 24.10.2018 19:26:52
 
Цитата
Alex Ko написал:
Может вы не заметили, но когда производишь преобразование в плане смещения, вы автоматически попадаете на ЛКС она-же рекурсивно завязана на фрагмент, возникнет ошибочка.
При такой вставке нет рекурсии, выложите пример что вы делаете или хотите получить.
Цитата
Alex Ko написал:
Возможно вы не попадали в ситуацию когда переменных и без того не мало, к тому-же проще ориентироваться ссылаясь на фрагменты, управляя их параметрами, задавая напрямую нежели искать в огромном списке переменных нужное тебе значение. Это конечно проблематика в удобстве использование системой CAD, на этом вообще-то ставят приоритет разработчики, и пусть разного рода трюки останутся в виде универсальности подходов, они полезны по своему, а здесь проблема всё-же напрашивается сама по себе, она реально нелепая, просит своего устранения.
Когда переменных много их группируют, когда и группировка не помогает делают диалоги управления.
Изменено: zobza - 25.10.2018 08:47:52
 
ИМХО: Вы описываете последовательности действий специально приводящие к рекурсиям, при этом усердно игнорируете предлагаемые решения.
 
Цитата
zobza написал:
описываете последовательности действий специально приводящие к рекурсиям, при этом усердно игнорируете предлагаемые решения
без описания практической задачи - разработчики врядли возьмутся за реалиазацию чего-то абстрактного, тем более под угрозой сломать работающее: проверенно:)
оффлайн
Страницы: 1 2 3 След.