Перейти к публикации

Подскажите по Ansys'у...


Рекомендованные сообщения

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

сейчас задача поставлена выводить данные по узлам.

Вам нужно сделать цикл по выделенным узлам или что ?

Ссылка на сообщение
Поделиться на других сайтах


Вопрос в том, есть ли возможность ИЗБАВИТСЯ от циклов и получать данные для выбранных узлов не используя их перебор. Вручную делается моментально NLIST - выдаёт координаты, PRNSOL - требуемые физические величины, но для сохранения требуются действия оператора, в автомате получается только через циклы, что долго для большой БД. 

1 час назад, Борман сказал:

Вам нужно сделать цикл по выделенным узлам или что ?

В итоге, есть ли возможность избавится от циклов для вывода данных по узлам, что бы сразу обратится ко всем имеющимся "отфильтрованным" узлам или их сборке (Component Manager). В выходных данных координаты узла и компоненты магнитного поля и суммарное поле.

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, benevolent сказал:

для вывода данных по узлам, что бы сразу обратится ко всем имеющимся "отфильтрованным" узлам или их сборке

Сразу ко всем нельзя. Можно по очереди, но для этого нужен цикл. Может быть вам нужен перебор по выделенному множеству? Но выглядеть это будет как цикл :)

Ссылка на сообщение
Поделиться на других сайтах
28.05.2021 в 12:23, benevolent сказал:

Вопрос в том, есть ли возможность ИЗБАВИТСЯ от циклов и получать данные для выбранных узлов не используя их перебор. Вручную делается моментально NLIST - выдаёт координаты, PRNSOL - требуемые физические величины, но для сохранения требуются действия оператора, в автомате получается только через циклы, что долго для большой БД. 

В итоге, есть ли возможность избавится от циклов для вывода данных по узлам, что бы сразу обратится ко всем имеющимся "отфильтрованным" узлам или их сборке (Component Manager). В выходных данных координаты узла и компоненты магнитного поля и суммарное поле.

Для этого надо использовать матричные операции и маску.

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

!*************************************************************************!
!                                                                         !
!  Назначение:                                                            !
!                                                                         !
!     Извлечение для селектированых узлов:                                !
!     номер узла                                                          !
!     X,Y,Z координата в CSYS,0                                           !
!     компонеты напряжения X,Y,Z,XY,YZ,XZ,1,2,3,INT,EQV                   !
!     и запись в файл ss.xlsx                                             !
!                                                                         !
!  Входные параметры:                                                     !
!   Нет, но надо селектировать необходимые узлы                           !
!   Читается последний set                                                !
!                                                                         !
!  Выходные параметры:                                                    !
!   Нет. Все записывается в файл                                          !
!                                                                         !
!*************************************************************************!
                                      
csys,0 
! array initialization                                                                         
mask=
ss=
stress_0=
*get,ar21,node,,count
*GET,ar22,NODE,,NUM,MAXD  
*DIM,mask,array,ar22
*DIM,ss,array,ar21,15
*DIM,stress_0,array,ar22,15
!nplot 
/post1
rsys,0
set, last                         !--------------------------->  последний  set
*VGET,mask(1),NODE,1,NSEL         ! mask of selected nodes
*vfill,stress_0(1,1),ramp,1,1     ! # node
*vmask,mask(1)        
*VGET,stress_0(1,2),NODE,1,loc,x  ! x
*vmask,mask(1)        
*VGET,stress_0(1,3),NODE,1,loc,y  ! y
*vmask,mask(1)        
*VGET,stress_0(1,4),NODE,1,loc,z  ! z
*vmask,mask(1)        
*VGET,stress_0(1,5),NODE,1,S,X    ! Sx
*vmask,mask(1)        
*VGET,stress_0(1,6),NODE,1,S,Y    ! Sy
*vmask,mask(1)        
*VGET,stress_0(1,7),NODE,1,S,Z    ! Sz
*vmask,mask(1)        
*VGET,stress_0(1,8),NODE,1,S,XY   ! Sxy
*vmask,mask(1)        
*VGET,stress_0(1,9),NODE,1,S,YZ   ! Syz
*vmask,mask(1)        
*VGET,stress_0(1,10),NODE,1,S,XZ  ! Sxz
*vmask,mask(1)        
*VGET,stress_0(1,11),NODE,1,S,1   ! S1
*vmask,mask(1)        
*VGET,stress_0(1,12),NODE,1,S,2   ! S2
*vmask,mask(1)        
*VGET,stress_0(1,13),NODE,1,S,3   ! S3
*vmask,mask(1)        
*VGET,stress_0(1,14),NODE,1,S,INT ! S Int
*vmask,mask(1)        
*VGET,stress_0(1,15),NODE,1,S,EQV ! S Mises

!----------------------------------!

!       compress array             !

*do,ar50,1,15
        *vmask,mask(1)
        *vfun,ss(1,ar50),comp,stress_0(1,ar50)
*enddo

mask= 
stress_0=

!---------------------------------! write in file
*cfopen,'Stress_components','txt'                                       
        *vwrite,ss(1,1),ss(1,2),ss(1,3),ss(1,4), ss(1,5),ss(1,6),ss(1,7),ss(1,8),ss(1,9), ss(1,10),ss(1,11),ss(1,12),ss(1,13),ss(1,14), ss(1,15)
        (f9.0,TL1,' ',14(g20.12,' '))        
        ! #node,x,y,z,Sx,Sy,Sz,Sxy,Syz,Sxz,S1,S2,S3,SInt,SMises  !        
*cfclos 
/eof 

Ссылка на сообщение
Поделиться на других сайтах
31.05.2021 в 08:47, Flint_ru сказал:

Для этого надо использовать матричные операции и маску.

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

Спасибо. Буду разбираться.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
  • 1 месяц спустя...

Допустим, есть оболочка в 3д произвольной формы (не факт что цилиндр, или конус, или окружность, или сфера, и прямоугольник и т.п. привычные формы). Для каждого элемента оболочки требуется задать корректную ЛСК. Процесс примерно такой: есть прямоугольное анизотропное одеяло с одинаково направленными в элементах ЛСК материала по одеялу. Одеяло как заплата на велокамеру нашлёпывается на кривую оболочку, получаем некоторое распределение ЛСК элементов одеяла по оболочке. И вот для такого бутерброда хотелось бы чтобы ЛСК элементов одеяла совпали с ЛСК ближайших элементов оболочки. Собсна, такое кто-нибудь пытался провернуть? И вопрос второй, если каждую ЛСК элемента вращать вручную - это сильно трудозатратно? Мне не нравится сама идея для каждого элемента создавать ещё одну ЛСК и потом их приравнивать.

Тогда как в LS-Prepost я легко могу вращать ЛСК элемента как угодно без лишних команд, но только вручную.

Изменено пользователем AlexKaz
Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, AlexKaz сказал:

Собсна, такое кто-нибудь пытался провернуть?

судя по описанию, кажется, это это драпировка в Ansys Composite Prepost

8 часов назад, AlexKaz сказал:

И вопрос второй, если каждую ЛСК элемента вращать вручную - это сильно трудозатратно?

вручную - это код написать или мышкой тыкать?

8 часов назад, AlexKaz сказал:

Мне не нравится сама идея для каждого элемента создавать ещё одну ЛСК и потом их приравнивать.

после драпировки почти у каждого элемента будет своя ЛСК для задания ориентации свойств (исключая случи простых форм). эта ориентация - результат расчета процесса драпировки.

 

Ссылка на сообщение
Поделиться на других сайтах

Делаю модальный анализ DAMP решателем, и пытаюсь выдернуть частоту и еще там второе число есть. Для этого по очереди проваливаюсь в действительную и в мнимую часть решения и делаю *GET. Когда пытаюсь провалиться в мнимую часть, то сиса ругается, но, тем не менее, исполняет GET как надо (надо согласиться со всеми ошибками). Что сисе мешает работать без ошибки ?

Скрытый текст



finish
/clear,start
        
/prep7
block,0,1,0,1,0,1
et,1,30
keyopt,1,2,1
mp,sonc,1,10
mp,dens,1,100
vmesh,1
asel,s,,,1
nsla,s,1
sf,all,inf
allsel,all

/solu
antype,2
modotp,damp,10
solve   

finish
/post1

*cfopen,res.txt

*do,i,1,10,1
	set,1,i,,0
	*get,stab,active,0,set,freq
	set,1,i,,1						!<< тут ругается.
	*get,freq,active,0,set,freq		!<< срабатывает как надо.

	*vwrite,i,freq,stab
(F4.0,'	',F8.4,'	',F8.4)	
*enddo
*cfclose

*uilist,res,txt


 

 

Изменено пользователем Борман
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Вопрос к опытным пользователям.

Есть лив Ансис модуль расчет сварки, сварных конструкций?

Ссылка на сообщение
Поделиться на других сайтах

@mamomot Раскройте более подробно - что вы хотите считать? Моделировать процесс сварки, определять НДС деталей после сварки (коробление) или вы хотите проверять сварные соединения на прочность (чтобы нажать одну кнопку и Ансис вам сказал - проходит соединение или нет)?

Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, mamomot сказал:

Есть лив Ансис модуль расчет сварки, сварных конструкций?

Ни того ни другого нет, что бы за этим ни скрывалось.

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Борман сказал:

Ни того ни другого нет, что бы за этим ни скрывалось.

Некоторые пользовательские приложения выполняют проверки сварных швов.

Изменено пользователем karachun
Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, karachun сказал:

Некоторые пользовательские приложения выполняют проверки сварных швов.

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

Лично я себе программу на Python'e написал и вывожу отчет в Excel. Cварные швы мне строить не надо. Просто контакты задал, реакции получил и вперед считать по сопромату. Profit!

Ссылка на сообщение
Поделиться на других сайтах
17 часов назад, Борман сказал:

Ни того ни другого нет, что бы за этим ни скрывалось.

А что же есть?

18 часов назад, karachun сказал:

@mamomot Раскройте более подробно - что вы хотите считать? Моделировать процесс сварки, определять НДС деталей после сварки (коробление) или вы хотите проверять сварные соединения на прочность (чтобы нажать одну кнопку и Ансис вам сказал - проходит соединение или нет)?

Уточняю:

1. Желательно импортировать геометрию из другой системы (Парасолид, Тифлекс).

2. Задать сварные швы.

3. Первая задача: определение деформаций из-за действия сварки.

4. Вторая задача (не всегда) определение прочности сварной конструкции.

Вот, типичная сварная конструкция, с которыми приходится иметь дела каждый день:

 

210817_1.png

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, mamomot сказал:

. Первая задача: определение деформаций из-за действия сварки.

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

Такое делают, например вот так.

https://www.researchgate.net/publication/283490285_ANSYS_Simulation_of_Residual_Strains_in_Butt-welded_Joints

 

По расчету сварных швов уже рассказали.

Ссылка на сообщение
Поделиться на других сайтах
19 часов назад, karachun сказал:

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

Такое делают, например вот так.

https://www.researchgate.net/publication/283490285_ANSYS_Simulation_of_Residual_Strains_in_Butt-welded_Joints

 

По расчету сварных швов уже рассказали.

Я уже много дней изучаю рынок САПР по этому вопросу. Есть, например, такие модули, где, на мой взгляд все уже реализовано:

https://sapr.ru/article/21522

https://sapr.ru/article/21948

https://interprocom.ru/products/msc-software/msc-add/msc-simufact-welding/

https://www.cadmaster.ru/magazin/articles/cm_84_15.html

Особенно тут:

http://docs.mscsoftware.ru/conf/forum2015/2day/12_TYAZHMASH_simufact_welding_Salienko.pdf

*****

Есть практически все, что нужно:

1. Сварные швы.

2. Температурные деформации от сварки.

3. Имитация прижимов.

4. Коробление без прижимов и с прижимами.

5. Коробление после снятия прижимов.

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

Ссылка на сообщение
Поделиться на других сайтах

@mamomot , я весьма стороне представляю процессы сварки. На мой взгляд, всякие деформации и прижимы имеет смысл вычислять лишь при роботизированном производстве, где есть четкая воспроизводимость режим варения. Или иметь первоклассные сварщиков с большой буквы, которые будут работать как роботы.

Подозреваю, параметры, которые вбиваются в программу, в любом случае определяются эмпирически на конкретном производстве. Раз так и раз у вас есть целая технологическая служба, вообще не понимаю зачем вам что-то вычислять. По идее технологи уже и так должны говорить как варить и сварится ли это. Это все мое дилетантское мнение в области сварки.

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

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • Горыныч
      Только Вы решаете. Я Вам из собственного опыта привел рекомендации. Если страшно, то не берите, только и всего. Сломать можно все что угодно. 
    • Orchestra2603
      Ладно. Я примерно понял, что вы имеете в виду. В теории, даже чтобы выделить n-ный базис нужно зафиксировать какие-то значения n раз. Только надо так их задавать, чтобы каждый раз получались линейно-независимые вектора. Я бы не называл это "закреплением", потому что возникает ложная кажущаяся параллель со статическим решением, где мы ищем единственное решение и для этого фиксируем какие-то компоненты, хотя здесь цель расчета принципиально иная. Это, как по мне, приводит к путанице, но если вам нравится это так называть, то - пожалуйста. Кто я такой, чтобы вам запрещать)   Я не могу сказать, что решать нужно всегда. В моем понимании в определенных итерационных схемах собственные вектора получаются полседовательными приближениями сами по себе. Применяя всякие манипуляции к матрицам (сдвиги и т.д.) можно контролировать сходимость к наибольшему, наименьшему, i-му и т.д. собственному вектору. Я не прав?   Что касается факторизаций, то для любых квадратных матриц существует разложение Шура, где ортогональными преобразованиями матрица приводится к треугольной форме. В частности, для обобщенной задачи, вот выдержка из статьи. Алгоритм получаения такого разложения для обобщенной задачи называется QZ алгоритм. Он вовсю используется в Матлабею Я не вижу никаких препятствий принципиальных, чтобы получить такую факторизацию матриц.     Т.е. похоже, что, да, все же приходится решать СЛАУ, в общем случае для треугольной матрицы A-lambda*B. И покуда lambda будет собственным значением, вся матрица A-lambda*B будет вырождена. В частности, для нулевых СЗ A-lambda*B = A, и А, сама собой, вырождена.   Но.. не могу пока сказать точно, но вроде как если A и B - симметричны, то QAZ и QBZ из треугольных превращаются в диагональные, и тогда столбцы Q становятся автоматически собственными векторами (разложение Шура переходит в спектральное), т.е. и решать ничего не приходится. Но где-то пишут, что нужна положительная определенность, где-то пишут, что только симметрии достаточно... не могу пока точно сказать.  
    • ДОБРЯК
      Я вижу, что вы не поняли. А говорили, что это знали еще в детском саду... https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%93%D0%B0%D1%83%D1%81%D1%81%D0%B0 Читайте внимательно. :=)   Ме́тод Га́усса — классический метод решения системы линейных алгебраических уравнений (СЛАУ). Назван в честь немецкого математика Карла Фридриха Гаусса. Это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к равносильной системе треугольного вида, из которой последовательно, начиная с последних (по номеру), находятся все переменные системы.  
    • Shura762
      (дисклеймер ) не взлетит... особенно учитывая его отношение, как человека колбасит, и почему в ТФ "узел" а не точка... перепутано местами "ты" , "на" и пропустили слово "пошёл" ... можно сказать я работаю в таком коллективе, и ЧЁ, плевали на ТФ с высокой колокольни, если молодежь можно еще как-то замотивировать, показать как надо работать, то старшее поколение делает на "отвали моя черешня" чертежи выдали тяп-ляп и что тебе надо то еще .... (дальше идиоматические выражения в рамках законодательства) p.s. я догадываюсь почему "узел" и считаю что правильное название дали.
    • lem_on
      Термообработка намного эффективнее, но из за размеров можно использовать локальное воздействие на сварочные швы вибрацией либо "проковкой" 
    • maxx2000
      так хозяин-барин, ты же деньги плотишь
    • lem_on
    • Павлуха
      Да повесть на команду S и не париться.
    • gudstartup
      та и ломают не от ума! так их не ремонтируют а просто новые устанавливают
    • lem_on
      Та хз, мне ехать а не шашечки. Жалоб нет , значить всех все устраивает.    С дуру можно много чего сломать, а по цене ремонта направляющие качения нам ного больше стоят чем скольжения. 
×
×
  • Создать...