Циклическая зависимость при работе с внешней переменной.

Автор beginner, 23.03.21, 10:42:43

« предыдущая - следующая »

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

beginner

23.03.21, 10:42:43 Последнее редактирование: 23.03.21, 11:12:01 от beginner
Здравия всем.

Есть сборка со вставленной пружиной.
Хочу "подружить" один из параметров пружины (v8_L) с линейным размером v36. Но получаю циклическую зависимость.

Мне нужно, чтобы при перемещении Тела_1, изменялась и длина пружины в сборке.
Помогите пожалуйста.

файлы версии 16.1

IgorT

Не могу посмотреть Вашу модель. Но в 15-том пружина их двигалась без проблем. Может быть переменные связать, которые за положение детали отвечают и за высоту пружины от единой переменной?

VLaD-Sh

Попробуйте вот так. Не знаю всей исходной информации

beginner

Попробую более понятно...

Создал пружину с помощью специальной команды.
В окне переменных есть переменная "L". У неё включено свойство "внешняя". Это свойство позволяет управлять этим размером, когда пружина вставлена в сборку.
В сборке эта переменная имеет представление "v8_L". Меняя значения этой переменной мы можем управлять длиной пружины в сборке, при этом пружина в основном файле не меняется.

Но вот беда - эта переменная "v8_L" позволяет вставлять только конкретные значения. А ссылки на другие переменные (конкретно на линейный размер от плоскости до плоскости) не допускает - ругается на какую-то цикличность... Не понимаю где тут цикличность  :%:  :cl:  8-)

У меня УПРАВЛЯЮЩИЙ размер получается зависимым от взаимного положения нескольких деталей в сборке. Так вот я этот управляющий размер получаю, используя команду "линейный размер"


beginner

23.03.21, 12:16:08 #5 Последнее редактирование: 23.03.21, 12:36:41 от beginner
сделал

Давайте иначе рассмотрим задачу... забудем про пружину.

Создаём деталь. Создаём эскиз. Создаём переменную (связываем её с каким-нибудь размером эскиза). Включаем ей параметр "внешняя" - она стала синяя.
Теперь создаём сборку, в которой рисуем эскиз в виде прямоугольного треугольника. У треугольника 2 катета, например - это управляемые размеры. Выходим из эскиза и с помощью команды "линейный размер" образмериваем гипотенузу.
Внедряем в сборку ранее созданную деталь.

Так вот я хочу управлять внешней переменной только что внедрённой детали с помощью ранее созданного линейного размера (у него есть своя переменная).

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

Это был упрощённый пример. В действительности я замучаюсь искать зависимость моего управляющего размера от взаимного расположения других деталей сборки.

KiDim

А когда размер в Компасе смог стать управляющим? Если только новодел какой. Я обычно делаю сопряжение на расстоянии. Если его нужно визуализировать, то тогда размер в модели.
В модели тест сделайте переменную L. Вставьте ее в v8_L. Изменяем L, меняется и v8_L.

beginner

KiDim, не понял рассуждений.

Мы же все понимаем как работает переменная со свойством "внешняя" ?
Так вот почему этой внешней переменной можно управлять ИСКЛЮЧИТЕЛЬНО напрямую (т.е. давать ей конкретное значение), а использовать в качестве управления переменную созданную системой, при использовании команды "линейный размер" не получается.

Если я снова плохо объяснил свою "хотелку", то попробую ещё раз.

VLaD-Sh

Цитата: beginner от 23.03.21, 12:02:04Но вот беда - эта переменная "v8_L" позволяет вставлять только конкретные значения. А ссылки на другие переменные (конкретно на линейный размер от плоскости до плоскости) не допускает - ругается на какую-то цикличность... Не понимаю где тут цикличность  :%:  :cl:  8-)
Не пойму, что понимается под ссылкой?
В моем примере одна переменная "ссылается" (зависит) на другую и V8_L - молчит. Покажите как вы получаете, что Компас ругается?

Алексей Дубовицкий

Линейный размер (группа Оформление) имеет статут "Информационный", система не позволит его использовать в качестве переменной.
Если создать эскиз, в нём проставить размер и 'вытащить' его командой "Производные размеры", размер можно использовать для управления.

IgorT

Да. Наблюдаем очередную не понятку Компаса. К стати подобная тема уже была несколько лет назад.
Действительно, если ссылаться на явную переменную, например сопряжение "Расстояние", то всё работает как надо. Но при ссылке на вспомогательный, справочный размер или измерение получаем циклическую ссылку.
По всей видимости не плохо бы об этом приколе разработчиков спросить. :~

IgorT

Цитата: Алексей Дубовицкий от 23.03.21, 13:05:41Линейный размер (группа Оформление) имеет статут "Информационный", система не позволит его использовать в качестве переменной.
Если создать эскиз, в нём проставить размер и 'вытащить' его командой "Производные размеры", размер можно использовать для управления.
То есть в эскизе задаем размер? Ну да. Но это вводимый размер. А ТСа интересует именно информационный, получаемый с геометрии сборки.

beginner

Цитата: Алексей Дубовицкий от 23.03.21, 13:05:41Линейный размер (группа Оформление) имеет статут "Информационный", система не позволит его использовать в качестве переменной.
Можно использовать переменную со статусом "информационная" в дальнейших расчётах. Система позволяет.
Создал эскиз в этой сборке и прекрасно получается управлять размерами этого эскиза с помощью ранее созданного линейного размера.

Цитата: Алексей Дубовицкий от 23.03.21, 13:05:41Если создать эскиз, в нём проставить размер и 'вытащить' его командой "Производные размеры", размер можно использовать для управления.
Это то же самое получается - система ругается на цикличность.

Дядя Костя

Обсуждалось уже как то.
Нельзя использовать информационную переменную, даже если по факту циклической зависимости нет, это косяк Компаса.
Руководство пользователя стр.1870

beginner

23.03.21, 13:56:27 #14 Последнее редактирование: 23.03.21, 14:36:08 от beginner
Цитата: Дядя Костя от 23.03.21, 13:43:29Нельзя использовать информационную переменную, даже если по факту циклической зависимости нет, это косяк Компаса.
Нельзя, как я понял, использовать информационную переменную для управления переменной со свойством "внешняя".
А так пожалуйста... можно использовать её для управления другими переменными.

Цитата: Дядя Костя от 23.03.21, 13:43:29Руководство пользователя стр.1870
Не нашёл. Правда у меня руководство от 16-ой версии.

Кстати ! я таки СМОГ сделать то, что якобы невозможно.
Обошёл глюк Компаса :)))))

Думаю многим будет интересно решение :)

Создаём вспомогательную сборку. Туда внедряем нашу деталь (пружину). Создаём переменную. Её значение получаем используя ССЫЛКУ на нашу управляющую переменную, которая находится в нужной сборке. И вот эта вновь созданная переменная (во вспомогательной сборке) ПРЕКРАСНО управляет деталью (пружиной).
Теперь вставляем вспомогательную сборку в основную и ВУАЛЯ...

Знатный "КОСТЫЛЬ"  :)))))
... вертел я этот компас  :-)))

пользуйтесь  ;)

Gefestos

Это не костыль, а самое обыкновенное использование ссылок переменных. И не надо городить вспомогательных сборок.

IgorT

Цитата: beginner от 23.03.21, 13:56:27Нельзя, как я понял, использовать информационную переменную для управления переменной со свойством "внешняя".
А так пожалуйста... можно использовать её для управления другими переменными.
Не нашёл. Правда у меня руководство от 16-ой версии.

Кстати ! я таки СМОГ сделать то, что якобы невозможно.
Обошёл глюк Компаса :)))))

Думаю многим будет интересно решение :)

Создаём вспомогательную сборку. Туда внедряем нашу деталь (пружину). Создаём переменную. Её значение получаем используя ССЫЛКУ на нашу управляющую переменную, которая находится в нужной сборке. И вот эта вновь созданная переменная (во вспомогательной сборке) ПРЕКРАСНО управляет
деталью (пружиной).
Теперь вставляем вспомогательную сборку в основную и ВУАЛЯ...

Знатный "КОСТЫЛЬ"  :)))))
... вертел я этот компас  :-)))

пользуйтесь  ;)
Эта че? Надо сделать вспомогательную сборку из одной детали (пружины)?
А модельку сборки получить (в 15 версии) можно?


Цитата: Gefestos от 23.03.21, 15:28:41Это не костыль, а самое обыкновенное использование ссылок переменных. И не надо городить вспомогательных сборок.

Аналогично. Примерчик бы с моделью заполучить...



beginner

Цитата: IgorT от 23.03.21, 15:35:26Эта че? Надо сделать вспомогательную сборку из одной детали (пружины)?
ну да :)

Цитата: Gefestos от 23.03.21, 15:28:41Это не костыль, а самое обыкновенное использование ссылок переменных. И не надо городить вспомогательных сборок.
Gefestos, выйди из сумрака - пиши с основного аккаунта, а не твинка  ;)
Gefestos, вникни в суть проблемы получше... т.к. твоё сообщение показывает, что ты не понял проблемы.

ох... меня сегодня понесло на общение... соскучился
да и темы подвернулись интересные - вынуждают мыслить

Gefestos

Это мой основной аккаунт, я недавно зарегистрировался и не имею большого количества сообщений.

И проблемы я действительно не понял, ибо не вижу тут никакой проблемы. Все решается элементарно использованием одной переменной с внешней ссылкой.

beginner

23.03.21, 15:47:51 #19 Последнее редактирование: 23.03.21, 16:00:54 от beginner
Цитата: Gefestos от 23.03.21, 15:42:24И проблемы я действительно НЕ понял
сообщение #5 ещё раз к прочтению - там подробно описано, что нужно.

Цитата: IgorT от 23.03.21, 15:35:26А модельку сборки получить (в 15 версии) можно?
Вечером...
я удалил все тесты до того как увидел это сообщение

ну можно и самостоятельно - я же всё расписал, что нужно сделать  ;)