Параметрическая головоломка

Автор Nemyheim, 01.10.19, 18:22:29

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

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

Nemyheim

Друзья, прошу принять участие в решении следующей параметрической головоломки:
Есть поручни на лестнице. На поручнях стоят отводы, которые должны менять свой угол при изменении параметров лестницы: Высоты, длины ступеней.
Константы следующие:
1. Вертикальный поручень всегда перпендикулярен горизонту в плоскости XY
2. Вертикальный поручень может изменять свой угол в плоскости ZY  при изменении наклона лестницы.
3.Концы наклонных поручней соприкасаются располагаются на оси одной вертикальной линии.

Я пытался взять задачу хитростью: Протянул отрезок, соединяющий 2 центра поручня. Провел ось на поручне, построил угловой размер. Попытался в переменной угла отвода сослаться на этот самый размер. Но компас почему-то мне выдает ошибку. Мол "циклическая зависимость"
Как можно решить данную задачку?


KiDim

Обычно циклика получается когда Компас сталкивается с невозможностью решить, какой из компонентов является управляющим, а какой информационным. Попробуйте размер в сборке сделать информационным, потом сделайте в сборке переменную и сошлитесь на него. И уже потом в отводе сошлитесь на эту переменную. Должно работать.
Все вышеизложенное работает в Компасе 15. Если у Вас версия выше то могут быть отличия.
+ Благодарностей: 1

ТрындецЪ

Если оси поручней пересекаются в точке, то:
- строите плоскость по трём точкам (центр торца 1-го поручня, центр торца 2-го поручня, точка пересечения осей поручней);
- создаёте в этой плоскости эскиз (два отрезка, выходящие из центров торцов поручней, перпендикулярные своим торцам  и дугу, соединяющую эти отрезки);
- в плоскости одного из торцов поручней создаёте эскиз профиля поручня;
- кинематически выдавливаете профиль поручня по построенному ранее эскизу.

Nemyheim

Цитата: KiDim от 02.10.19, 08:23:42
Обычно циклика получается когда Компас сталкивается с невозможностью решить, какой из компонентов является управляющим, а какой информационным. Попробуйте размер в сборке сделать информационным, потом сделайте в сборке переменную и сошлитесь на него. И уже потом в отводе сошлитесь на эту переменную. Должно работать.
Все вышеизложенное работает в Компасе 15. Если у Вас версия выше то могут быть отличия.
Пробовал. Компас начинает жутко тормозить. А когда второй отвод подключаешь все равно пишет про циклическую зависимость.
Да и есть непреодолимый баг: даже если ручками выставить верные углы он не может решить сопряжения соосности между тремя поручнями и двумя отводами. Не поворачивает их друг к другу, когда сопряжения устанавливаешь.

Nemyheim

Цитата: ТрындецЪ от 02.10.19, 09:54:43
Если оси поручней пересекаются в точке, то:
- строите плоскость по трём точкам (центр торца 1-го поручня, центр торца 2-го поручня, точка пересечения осей поручней);
- создаёте в этой плоскости эскиз (два отрезка, выходящие из центров торцов поручней, перпендикулярные своим торцам  и дугу, соединяющую эти отрезки);
- в плоскости одного из торцов поручней создаёте эскиз профиля поручня;
- кинематически выдавливаете профиль поручня по построенному ранее эскизу.

Это работает. Но мне нужно построение через детали, а не тела.

Nemyheim


MasterMVC

Попробуйте привязаться через локальные системы координат.
Создайте локальную систему в сборке(направьте нужным образом) и привяжите систему координат из детали отвода(мб. начало координат мб. также создайте подходящую локальную).
Должно помочь.

ТрындецЪ

Цитата: Nemyheim от 02.10.19, 19:36:12
Это работает. Но мне нужно построение через детали, а не тела.
Создавайте деталь в контексте сборки (в режиме редактирования "на месте", а не в отдельном окне).

Nemyheim

Смотрите, это можно все сделать проще и быстрее. Как вы предложили. Строишь траекторию, выдавливаешь по ней поручень. Такое решение работает и подходит для решения сиюминутной задачи. Но! Я хочу решить эту задачу на перспективу. Я отстраиваю очень много таких лестниц в год и пытаюсь решить ее с помощью деталей, внешних переменных и связей. Не в моих интересах после каждого перестроения или пожелания заказчика чуть-чуть изменить геометрию марша перестраивать ручками еще и поручень.
Кроме того сам ведь этот поворот состоит еще из нескольких деталей. Там есть метизы и соединительные кольца. Эти вещи автоматически попадают в спецификацию. Если же строить поручень выдавливанием, значит нужно будет эти вещи дописывать в спецификацию руками. Моя задача исключить человеческий фактор.
Если есть у кого еще предложения, я готов испытать.
Все предложения, что были написаны выше, были испытаны и забракованы)

SergAK

#10
Цитата: MasterMVC от 02.10.19, 20:49:18
Попробуйте привязаться через локальные системы координат.
Создайте локальную систему в сборке(направьте нужным образом) и привяжите систему координат из детали отвода(мб. начало координат мб. также создайте подходящую локальную).
Должно помочь.
Не рекомендую этого делать в 18-м компасе, локальные системы координат при изменении углов поворота параметрически могут не перестроиться
Замечено неоднократно - и попортило мне много нервов

Nemyheim

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

Короче говоря, нужно вычислить формулу нахождения угла поворота отвода исходя из положения поручней в пространстве, расстояния между ними и радиуса самого отвода :)))))
Сложно, но можно... попытаюсь определить константы, выяснить переменные и написать формулу)