Jump to content

Скольжение узла по балке


Recommended Posts

Добрый день, коллеги!

 

Может быть кто-то сможет подсказать - буду очень благодарен!

 

В общем, есть балка построенная балочными элементами (на рисунке сиреневая, вытянутая вдоль z).

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

Балка может достаточно далеко уезжать вдоль z, да и в остальных осях перемещаться и поворачиваться способна. Да и сама рамка вокруг может деформироваться.

 

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

 

Пробовал делать через слайдер, но он не имеет поворотных степеней свободы.

Пошёл через рестарт (ANTYPE,,REST) и через рождение и смерть элементов: узел пружин соединён с узлом балки через MPC. Построена вторая группа пружин (с малой жёсткостью), но она не присоединяется к балке. На каждом шаге решения узел из второй группы ищет ближайший к нему узел на балке. Если узел из первой группы удаляется выше некоторого критерия, то узел из второй группы перемещается к найденному ближайшему узлу балки ( "D,,," - шаг решения 2).

Затем на третьем шаге решения убиваем MPC первой группы и создаём MPC-связь второй группы пружин с балкой и задаю второй группе нужные жёсткости.

Всё хорошо, но вот только обе группы возвращаются в нулевое состояние (ненагруженное положение) и MPC-связь второй группы как-будто бы не создаётся.

 

Просьба подсказать идеи решения задачи.

Или прокомментировать моё решение - что может быть не так с точки зрения логики.

 

 

07.png


 

08.png

Link to post
Share on other sites


UnPinned posts

наверное я бы сделал такое следующим образом, создал бы свободный узел, к которому прицепил пружину. для связи свободного узла с узлом балки использовал бы комманду CP. Если нужно отвязать свободный узел от узла балки , то CPDEL (убиваем уравнение связи). Допустим что после логических и арифметических операций Вы определили необходимость привязки свобдного узла пружины к другому узлу балки - тут возможно два пути,первый -  физически передвинуть свободный узел пружины к требуемому узлу балки, что бы координаты узлов совпадали и использовать команду CP и продолжить расчет, второй - за некоторый фиктивный шаг прикладываем перемещения к свободному узлу такие, что бы в деформированном состоянии оказался рядом с требуемым узлом балки и связываем два узла командой CP. Продолжаем расчет

Link to post
Share on other sites

Добрый вечер!

"первый -  физически передвинуть свободный узел пружины к требуемому узлу балки, что бы координаты узлов совпадали и использовать команду CP и продолжить расчет, второй - за некоторый фиктивный шаг прикладываем перемещения к свободному узлу такие, что бы в деформированном состоянии оказался рядом с требуемым узлом балки и связываем два узла командой CP. Продолжаем расчет"

Второй путь применяю, а в первом что значит "физически передвинуть свободный узел пружины к требуемому узлу балки"? Во втором случае делал через D, а в первом?

Что-то подобное делал и с CP, код ниже (в файле).

 

Суть полученного: новый СР не создаётся, а старый не удаляется.

_08_05_04.txt

Edited by Avksent
Link to post
Share on other sites

некоторые комманды работают только в /Prep7

физически =сделать так чтобы координаты узлов совпадали.

Link to post
Share on other sites
2 часа назад, dronm сказал:

некоторые комманды работают только в /Prep7

Ну, они в коде реализованы в Prep7:

 

! Убиваем CP и создаём новый
FINISH  
/PREP7 
CP, , ALL, N6,Nbeam
CPDEL ,1
ALLSEL, ALL, ALL

 

первым CP создали новую связь

вторым CP - убили старую связь

 

но переходя обратно в /sol и решая задачу с рестартом эти строки игнорируются.

2 часа назад, dronm сказал:

физически =сделать так чтобы координаты узлов совпадали.

Так, собственно с помощью команды D мы и двигаем координаты. Но это "второй вариант".

Как можно ещё совместить координаты?

Link to post
Share on other sites

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

Link to post
Share on other sites

Кстати, если еще добавить скалярное произведение равное нулю, то получим условие присоединения в произвольной точке, не обязательно в узле :)

Link to post
Share on other sites
4 hours ago, Avksent said:

Ну, они в коде реализованы в Prep7:

 

! Убиваем CP и создаём новый
FINISH  
/PREP7 
CP, , ALL, N6,Nbeam
CPDEL ,1
ALLSEL, ALL, ALL

 

первым CP создали новую связь

вторым CP - убили старую связь

 

но переходя обратно в /sol и решая задачу с рестартом эти строки игнорируются.

Так, собственно с помощью команды D мы и двигаем координаты. Но это "второй вариант".

Как можно ещё совместить координаты?

я ж не виноват что код не корректен, я дал идею - за воплощение идеи в жизнь я не отвечаю

после CP, , ALL, N6,Nbeam, создалось  6 CP, связалось по UX, UY, UZ,Rotx,Roty,Rotz, а удаляете только первую,

у ANSYS сложно с логикой нумерации, поэтому либо сами определяете номер CP, а потом его удалете, либо

удаляйте все

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

Рекомендация - прежде чем запускать код на исполнение, убедитесь что он работает адекватно в режиме ввода

команд в командную строку.

Хорошо бы читать описание команд, хотя бы бегло.

В общем не в коня корм

Link to post
Share on other sites
AlexKaz
22 часа назад, Avksent сказал:

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

Нельзя сразу создать 100500 пружин для всех вариантов? Лишние пружины на каждом шаге "убивать".

22 часа назад, Avksent сказал:

Всё хорошо, но вот только обе группы возвращаются в нулевое состояние (ненагруженное положение)

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

Сохранять в переменные/таблицы или во внешний текстовый файл, конечно.

22 часа назад, Avksent сказал:

Пошёл через рестарт (ANTYPE,,REST) и через рождение и смерть элементов

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

Edited by AlexKaz
Link to post
Share on other sites
5 минут назад, AlexKaz сказал:

Нельзя сразу создать 100500 пружин для всех вариантов? Лишние пружины на каждом шаге "убивать".

 

Если через EKILL, то он для пружин не работает - уже думал о таком варианте.

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

 

COMBIN39 Assumptions and Restrictions
...

The element can not be deactivated with the EKILL command.

...

Link to post
Share on other sites
AlexKaz

Так выключенные элементы ресурсы решателя не расходуют...

С такими сложностями не проще передвигать узел на балке?

Link to post
Share on other sites
7 минут назад, AlexKaz сказал:

Так выключенные элементы ресурсы решателя не расходуют...

Разве на каждом шагу проверки не будет проверяться условие включения/выключения для каждого из миллиона элементов? Не выгоднее ли сделать условие "вручную" проверки "одного" элемента и его перенастройки на нужном шагу?


В целом, я конечно потестирую, но хотелось бы сравнить с решением через создание CP.

Edited by Avksent
Link to post
Share on other sites
AlexKaz
Только что, Avksent сказал:

Разве на каждом шагу проверки не будет условие проверяться для каждого из миллиона элементов?

Как организуете алгоритм. Если номера заранее известны, то всё можно сделать быстро.

А ленивый перебор по условию явно не оптимальный вариант.

9 минут назад, AlexKaz сказал:

С такими сложностями не проще передвигать узел на балке?

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.




  • Сообщения

    • gudstartup
      И что делает командир если лампа начинает хандрить стучит ей по кумполу резиновым молотком на длинной деревянной ручке!  
    • coromate
      хотя бы год выпуска станка напишите. и как с вами связаться.
    • Viktor2004
      На низкочастотной радиостанции "Антей" в городе Вилейка (Беларусь), эта радиостанция передает СМС-ки на подводные лодки России, радиосигнал проникает на глубину метров 20, в качестве антенны передач испольнуются ЛЭП Так вот, на этой радиостанции есть должность - командир радиолампы Радиолампа действительно огромная и без должного командования она быстро теряет дисциплину
    • Andrey337
      Нет, посмотрите первый пост, там про Excel ничего нет Я про Excel ничего не спрашивал. А в ответ получил Excel. Чудеса, да и только и да, полностью с Вами согласен.  
    • Aleksei92
      Всем доброго времени суток. Подскажите, пожалуйста, интересующемуся NX-CAM. Есть фрезерный ОЦ DMU-60P Hi Dyn, обзовем его кинематику 4+1 с осями C (стол) и А (поворотная голова вокруг оси Х). Поворотная голова работает только в режиме вертикаль / горизонталь, промежуточных угловых положений у него нет. СЧПУ Heidenhain iTNC 428. Плоскость обработки задается м-командами (М53 - горизонтальный шпиндель, М54 - вертикальный шпиндель).   Данный станок на 90% реализовал в системе EdgeCAM 21, даже тот момент, что при работе в горизонтальном режиме шпиндельная ось это ось Y, а плоскость обработки это XZ, причем ось Х смотрит влево. Но вот что откровенно бесит, система ЧПУ у меня позволяет менять инструмент при любом положении шпинделя, но вот САМ мне этого не позволяет, ну или я это не разобрал, не осилил, спросить об этой умершей САМ даже не у кого, и подсмотреть нечего. У меня смена инструмента в САМ осуществляется только в одном положении шпинделя. Если я работал в вертикальном режиме - все ок, положение шпинделя совпадает с положением смены инструмента. Перехожу в горизонталь - при смене инструмента САМ возвращает мне рабочую плоскость на XY Z. В целом это не смертельно, можно заново вернуть нужную плоскость обработки в САМ на XZ Y, а в реальности станок просто пропустит этот кадр, т.к. он уже и так действовал (CYCL 19.1 C...).   Собственно, суть вопроса. Система NX-CAM имеет в распоряжении отдельный пункт в Постбилдере на 5-осевые станки с поворотным столом и поворотной головой (АС). Есть ли такая проблема в NX со сменой плоскости обработки при смене инструмента в разных положениях шпинделя? Можно ли ее обойти в NX? Не так, как я в EdgeCAM, не по колхозному :) Подскажите, пожалуйста. Присматриваю альтернативный продукт, EdgeCAM мертвый, не у кого спрашивать, даже на инглише в YouTube нечего подсмотреть полноценно, да и глючным продукт стал...    
    • Александр14
      День добрый! Нужна помощь! Станок Haas ST20, закончилось пробное время на ориентацию шпинделя М19. Связывались с Абаметом, сказали ничем помочь не могут т.к. связи с Америкой потеряны. Есть варианты активировать функцию? Или всё потеряно?!
    • gudstartup
      Начальник над станком это очень интересная должность ну ладно еще над роботом тут хоть будешь гордится что ты превосходишь искусственный интеллект!
    • alex02_93
      Отвечаю сам ошибка конкретного чертежа. Пример как надо https://disk.yandex.com/i/jMFsn2Ofua8dBg
    • alex02_93
      Погуглил :) Выходит, с точки зрения технолога, всегда когда есть возможность обработать вал в центрах надо обрабатывать его именно так (тем самым соблюдаем принцип совмещения и единства баз). Если нет возможности, то обратные центра, самоцентрирующие оправки с центрами и пр.   Глядя на вышесказанное глазами конструктора выходит, что если нет никаких оснований не допускать ценр. отв. на готовом изделии, то нормировать шейки вала в том числе опорные и пр. конструктивные элементы лучше от оси которую образуют центр. отв. Тем самым облегчая жизнь технологу и контролеру (нет пересчетов из-за не совмещения баз).   Если же ценр. отв. на готовом изделии не допускаются (о чем делается соответствующая отметка в соответствии с ГОСТ 2.109-73) или конструктивно невозможны, то нормировать шейки вала и пр. конструктивные элементы надо от общей оси которую образуют опорные шейки. В таком случаи технолог и контролер могут столкнуться с пересчетами допусков из-за не совмещения баз. Возник еще вопрос Чем ограничивается взаимное расположение осей базовых (А Б) шеек вала? Ничем? Общими допусками?  Если так, то что из себя может представлять общая ось опорных шеек? :)
    • Nalad4eG
×
×
  • Create New...