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

Вывод переменной в файл txt


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

Здравствуйте!

Подскажите пожалуйста, как вывести переменные в файл. 

А конкретнее, есть текстовый файл с командами adpl, там переменные геометрии, ну например размеры трещины а и б.

Запускаю на счет. В результате есть значения напряжений и деформаций.

Нужно чтобы в конце счета в текстовый файл result.txt записывалось:

a=5 мм  b=15 мм Узел 1  Sig= N

где N - полученные напряжения в узле №1

После этого, нужно чтоб программа изменяла эти переменные 

а=10 мм  b = 20 мм

запускала на счет 

и по результатам счета выводила в текстовый файл,  в конец текстового файл (аppend)

a=10 мм  b=20 мм Узел 1  Sig= N1

 

Прошу пример листинга самой простой задачи - допустим 1 переменная... длина стержня... Дальше я сам разберусь под потребности своей задачи.

 

 

 

 

 

 

 

 

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


UnPinned posts
В 01.11.2020 в 06:49, Nео сказал:

Здравствуйте!

Да вроде наладил цикл, переменная L меняется, в файл записывается...

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

А когда запускаю скрипт с циклом - то в файле результаты одинаковые. Там в конце цикла выдается  табличка - "Слишком много ошибок, выйти или нет?"

Если нажать "да", то на 1м цикле счет прерывается, если "нет", то дальше считает, при другой L.

Но результаты в файле - одинаковые, даже если несколько циклов прокручиывает.

Как вариант, забыл где-то поставить "prep7"?

Вот весь листинг. Это как пример прочностной задачи, для дальнейшего мне важно прокручивать задачу именно в цикле (возможно и в нескоьких), с множеством переменных. А тут в простой задаче не могу разобраться.

Спойлер

 

/prep7
    L=0.01

*create,MODEL1

    h=0.1
    W=0.2
    T=0.2
    a=(2*L)/3
    P=20e6
    E=2.1e11
    v=0.3
    Ro_st=7850
    W1=W/2
    T1=T/2
    h1=h/2
    L1=L/2
    a1=a/2
    dl1=L1/6
    dl2=L1/6
    n=1
ET,1,PLANE183   
ET,2,SOLID186   

MPTEMP,,,,,,,,  
MPTEMP,1,0  
MPDATA,EX,1,,2.06e11 
MPDATA,PRXY,1,,0.3   
MPDATA,DENS,1,,Ro_st

TB,PLAS,1,1,7,MISO
TBTEMP,0
TBPT,,0.0,5E+6
TBPT,,4.854E-005,10E+6
TBPT,,1.456E-004,30E+6
TBPT,,2.427E-004,50E+6
TBPT,,3.398E-004,70E+6
TBPT,,4.369E-004,90E+6
TBPT,,5.34E-004,110E+6
TBPT,,6.311E-004,130E+6
TBPT,,7.282E-004,150E+6
TBPT,,8.252E-004,170E+6
TBPT,,9.223E-004,190E+6
TBPT,,1.019E-003,210E+6
TBPT,,1.604E-003,230E+6
TBPT,,3.214E-003,250E+6
TBPT,,5.167E-003,270E+6
TBPT,,7.35E-003,290E+6
TBPT,,9.712E-003,310E+6
TBPT,,0.012,330E+6
TBPT,,0.015,350E+6
TBPT,,0.018,370E+6
TBPT,,0.020,390E+6
TBPT,,0.022,400E+6

FLST,2,2,8  
FITEM,2,0,0,0   
FITEM,2,(L1/2),0,0  
CIRCLE,P51X, , , ,90,n,   

FLST,2,1,4,ORDE,1   
FITEM,2,1   
LSSCALE,P51X, , ,((L1/2)/(a1/2)),1,1, ,1,1

FLST,2,2,8  
FITEM,2,0,0,0   
FITEM,2,((L1/2)-(dl1/2)),0,0  
CIRCLE,P51X, , , ,90,n,   

FLST,2,1,4,ORDE,1   
FITEM,2,2   
LSSCALE,P51X, , ,((L1/2)-(dl1/2))/((a1/2)-(dl1/2)),1,1, ,1,1

FLST,2,2,8  
FITEM,2,0,0,0   
FITEM,2,((L1/2)+(dl1/2)),0,0  
CIRCLE,P51X, , , ,90,n,   

FLST,2,1,4,ORDE,1   
FITEM,2,3   
LSSCALE,P51X, , ,((L1/2)+(dl1/2))/((a1/2)+(dl1/2)),1,1, ,1,1

K,7,0,0,0,  
K,8,0,h1,0,
K,9,W1,h1,0,
K,10,W1,0,0,
K,11,0,0,T1,
K,12,0,h1,T1,
K,13,W1,h1,T1,
K,14,W1,0,T1,

LSTR,       7,       3  
LSTR,       3,       1  
LSTR,       1,       5  
LSTR,       5,      10  
LSTR,      10,       9  
LSTR,       9,       8  
LSTR,       8,       6  
LSTR,       6,       2  
LSTR,       2,       4  
LSTR,       4,       7  
LSTR,      10,      14  
LSTR,      14,      13  
LSTR,      13,       9  
LSTR,      14,      11  
LSTR,      11,      12  
LSTR,      12,      13  
LSTR,      12,       8  
LSTR,      11,       7  

FLST,3,13,4,ORDE,2  
FITEM,3,1   
FITEM,3,-13 
LGEN,2,P51X, , , , ,(dl1/2), ,1

LSTR,      19,       5  
LSTR,      15,       1  
LSTR,      17,       3  
LSTR,      20,       6  
LSTR,      16,       2  
LSTR,      18,       4  
LSTR,      21,       7  

FLST,2,4,4  
FITEM,2,41  
FITEM,2,25  
FITEM,2,4   
FITEM,2,37  
AL,P51X 

FLST,2,4,4  
FITEM,2,40  
FITEM,2,34  
FITEM,2,13  
FITEM,2,41  
AL,P51X 

FLST,2,4,4  
FITEM,2,40  
FITEM,2,23  
FITEM,2,2   
FITEM,2,37  
AL,P51X 

FLST,2,3,4  
FITEM,2,23  
FITEM,2,34  
FITEM,2,25  
AL,P51X 

FLST,2,3,4  
FITEM,2,2   
FITEM,2,13  
FITEM,2,4   
AL,P51X 

FLST,2,5,5,ORDE,2   
FITEM,2,1   
FITEM,2,-5  
VA,P51X 

FLST,2,4,4  
FITEM,2,12  
FITEM,2,2   
FITEM,2,1   
FITEM,2,5   
AL,P51X 

FLST,2,4,4  
FITEM,2,33  
FITEM,2,26  
FITEM,2,23  
FITEM,2,22  
AL,P51X 

FLST,2,4,4  
FITEM,2,40  
FITEM,2,39  
FITEM,2,33  
FITEM,2,12  
AL,P51X 

FLST,2,4,4  
FITEM,2,26  
FITEM,2,5   
FITEM,2,37  
FITEM,2,36  
AL,P51X 

FLST,2,4,4  
FITEM,2,39  
FITEM,2,36  
FITEM,2,22  
FITEM,2,1   
AL,P51X 

FLST,2,6,5,ORDE,3   
FITEM,2,3   
FITEM,2,6   
FITEM,2,-10 
VA,P51X 

FLST,2,4,4  
FITEM,2,11  
FITEM,2,6   
FITEM,2,1   
FITEM,2,3   
AL,P51X 

FLST,2,4,4  
FITEM,2,27  
FITEM,2,32  
FITEM,2,22  
FITEM,2,24  
AL,P51X 

FLST,2,4,4  
FITEM,2,35  
FITEM,2,3   
FITEM,2,24  
FITEM,2,38  
AL,P51X 

FLST,2,4,4  
FITEM,2,38  
FITEM,2,39  
FITEM,2,11  
FITEM,2,32  
AL,P51X 

FLST,2,4,4  
FITEM,2,6   
FITEM,2,36  
FITEM,2,35  
FITEM,2,27  
AL,P51X 

FLST,2,6,5,ORDE,2   
FITEM,2,10  
FITEM,2,-15 
VA,P51X 

FLST,2,4,4,ORDE,4   
FITEM,2,14  
FITEM,2,16  
FITEM,2,20  
FITEM,2,-21 
LDELE,P51X, , ,1

LSTR,       9,      23  
LSTR,      23,      13  
LSTR,      10,      22  
LSTR,      22,      14  
LSTR,       8,      24  
LSTR,      24,      12  
LSTR,      11,      21  

FLST,2,10,4 
FITEM,2,30  
FITEM,2,29  
FITEM,2,28  
FITEM,2,31  
FITEM,2,32  
FITEM,2,33  
FITEM,2,34  
FITEM,2,25  
FITEM,2,26  
FITEM,2,27  
AL,P51X 

FLST,2,4,4  
FITEM,2,19  
FITEM,2,15  
FITEM,2,17  
FITEM,2,18  
AL,P51X 

FLST,2,4,4  
FITEM,2,15  
FITEM,2,16  
FITEM,2,21  
FITEM,2,29  
AL,P51X 


FLST,2,7,4  
FITEM,2,18  
FITEM,2,43  
FITEM,2,44  
FITEM,2,31  
FITEM,2,32  
FITEM,2,33  
FITEM,2,34  
AL,P51X 
  
FLST,2,4,4  
FITEM,2,19  
FITEM,2,16  
FITEM,2,43  
FITEM,2,30  
AL,P51X 

FLST,2,7,4  
FITEM,2,17  
FITEM,2,21  
FITEM,2,44  
FITEM,2,28  
FITEM,2,27  
FITEM,2,26  
FITEM,2,25  
AL,P51X 

FLST,2,4,4  
FITEM,2,28  
FITEM,2,35  
FITEM,2,7   
FITEM,2,20  
AL,P51X 

FLST,2,4,4  
FITEM,2,20  
FITEM,2,8   
FITEM,2,14  
FITEM,2,29  
AL,P51X 

FLST,2,4,4  
FITEM,2,14  
FITEM,2,9   
FITEM,2,30  
FITEM,2,42  
AL,P51X 

FLST,2,4,4  
FITEM,2,42  
FITEM,2,10  
FITEM,2,31  
FITEM,2,38  
AL,P51X 

!FLST,2,4,4  
!FITEM,2,38  
!FITEM,2,35  
!FITEM,2,3   
!FITEM,2,22  
!AL,P51X 

FLST,2,5,4  
FITEM,2,31  
FITEM,2,30  
FITEM,2,28  
FITEM,2,29  
FITEM,2,24  
AL,P51X 

FLST,2,5,4  
FITEM,2,7   
FITEM,2,8   
FITEM,2,9   
FITEM,2,10  
FITEM,2,3   
AL,P51X 

FLST,2,7,5,ORDE,3   
FITEM,2,13  
FITEM,2,22  
FITEM,2,-27 
VA,P51X 

FLST,2,6,5,ORDE,2   
FITEM,2,16  
FITEM,2,-21 
VA,P51X 

FLST,2,5,6,ORDE,2   
FITEM,2,1   
FITEM,2,-5  
VGLUE,P51X  

SMRT,6  
SMRT,1  
MSHAPE,0,2D 
MSHKEY,0

FLST,5,4,5,ORDE,4   
FITEM,5,5   
FITEM,5,-6  
FITEM,5,11  
FITEM,5,27  
CM,_Y,AREA  
ASEL, , , ,P51X 
CM,_Y1,AREA 
CHKMSH,'AREA'   
CMSEL,S,_Y  
  
AMESH,_Y1   
 
CMDELE,_Y   
CMDELE,_Y1  
CMDELE,_Y2  

FLST,5,2,5,ORDE,2   
FITEM,5,6   
FITEM,5,11  
CM,_Y,AREA  
ASEL, , , ,P51X 
CM,_Y1,AREA 
CMSEL,S,_Y  
CMDELE,_Y   
 
AREFINE,_Y1, , ,5,0,1,1 
CMDELE,_Y1  
 
FLST,5,1,5,ORDE,1   
FITEM,5,5   
CM,_Y,AREA  
ASEL, , , ,P51X 
CM,_Y1,AREA 
CMSEL,S,_Y  
CMDELE,_Y   
 
AREFINE,_Y1, , ,1,0,1,1 
CMDELE,_Y1  

FLST,5,1,5,ORDE,1   
FITEM,5,27  
CM,_Y,AREA  
ASEL, , , ,P51X 
CM,_Y1,AREA 
CMSEL,S,_Y  
CMDELE,_Y   

AREFINE,_Y1, , ,1,0,1,1 
CMDELE,_Y1  

/UI,MESH,OFF

GPLOT   

FLST,5,4,6,ORDE,2   
FITEM,5,1   
FITEM,5,-4  
CM,_Y,VOLU  
VSEL, , , ,P51X 
CM,_Y1,VOLU 
CHKMSH,'VOLU'   
CMSEL,S,_Y  
VSWEEP,_Y1  
  
CMDELE,_Y   
CMDELE,_Y1  
CMDELE,_Y2  
MSHAPE,1,3D 
CM,_Y,VOLU  
VSEL, , , ,       6 
CM,_Y1,VOLU 
CHKMSH,'VOLU'   
CMSEL,S,_Y  
VMESH,_Y1   
CMDELE,_Y   
CMDELE,_Y1  
CMDELE,_Y2  

FINISH  
/SOL

FLST,2,1,5,ORDE,1   
FITEM,2,17  
/GO 
 
SFA,P51X,1,PRES,P 

FLST,2,2,5,ORDE,2   
FITEM,2,11  
FITEM,2,27  
FLST,2,2,5,ORDE,2   
FITEM,2,11  
FITEM,2,27  
DA,P51X,SYMM

FLST,2,5,5,ORDE,5   
FITEM,2,2   
FITEM,2,8   
FITEM,2,14  
FITEM,2,19  
FITEM,2,25  
DA,P51X,SYMM

ACEL,0,0,-9.81, 

SOLVE   
FINISH  

/POST1  
SET,FIRST

plnsol, S,EQV, 0,1.0
*get,Sigma_EKV_Max,plnsol,0,MAX

plnsol, S,INT, 0,1.0
*get,Sigma_INT_max,plnsol,0,MAX

PLNSOL, EPTO,EQV, 0,1.0 
*get,DEF_Total_EKV_Max,plnsol,0,MAX

PLNSOL, EPTO,INT, 0,1.0 
*get,DEF_Total_INT_Max,plnsol,0,MAX

PLNSOL, U,X, 0,1.0  
*get,Perem_X_Max,plnsol,0,MAX

PLNSOL, U,Y, 0,1.0  
*get,Perem_Y_Max,plnsol,0,MAX


*cfopen,'c:\111\result2.txt',,,append
*vwrite,L,L1,Sigma_EKV_Max,Sigma_INT_max,DEF_Total_EKV_Max,DEF_Total_INT_Max,Perem_X_Max,Perem_Y_Max

L=%f,    L1=%f,    Sigma_EKV_Max=%e,    Sigma_INT_max=%e,    DEF_Total_EKV_Max=%e,    DEF_Total_INT_Max=%e,    Perem_X_Max=%e,    Perem_Y_Max=%e

*cfclose

*end

 

!_____________________________________________________________________________


*do,ii,1,7
        *use,MODEL1
                /clear,start
        L=L+0.01


*enddo

 

 

 

Всё. Очень. Плохо.

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

Сейчас мы это попробуем выяснить. Ответьте, пожалуйста, на несколько вопросов:

  1. Вы используете Plane183 только для того чтобы нанести сетку? Вы же в курсе, что вы не очистили модель от него и у вас получилась комбинация из 2D/3D элементов?
  2. Ваша модель - 1/4 симметричная часть тела? Вы же в курсе, что вы не закрепили модель по Y?
  3. Вы же в курсе, что что у вас вагон варнингов по форме элементов?
  4. Вы же понимаете, что напряжения, которые вы снимаете - неправда?
Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, Graf Kim сказал:

Всё. Очень. Плохо.

Добро пожаловать в ряды отвечателей на незаданные вопросы.

Типа вы в курсе что считаете прямоугольную пластину с дыркой ?

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

Или даже не так.. В вашей пластине трещина !!!

=)))) так лучше

10 часов назад, Graf Kim сказал:

Всё. Очень. Плохо.

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

Сейчас мы это попробуем выяснить. Ответьте, пожалуйста, на несколько вопросов:

  1. Вы используете Plane183 только для того чтобы нанести сетку? Вы же в курсе, что вы не очистили модель от него и у вас получилась комбинация из 2D/3D элементов?
  2. Ваша модель - 1/4 симметричная часть тела? Вы же в курсе, что вы не закрепили модель по Y?
  3. Вы же в курсе, что что у вас вагон варнингов по форме элементов?
  4. Вы же понимаете, что напряжения, которые вы снимаете - неправда?

Здравствуйте! Спасибо что посмотрели.

Очевидно, что гуру (форума, кода apdl, расчетов мкэ и т.д.) найдут много недочетов в этой тестовой задаче. Основная цель - это работающий алгоритм, а то что в середине - это можно заменить, переделать и т.д. 

 

1. Это основная ошибка? Нужно удалить plane 183 (сетку) после каждого цикла?

2. Да. Да, потом исправил. Тестовая задача, не принципиально...

3. Да. 

4. Да, это не реальная конструкция, напряжения как таковые роли не играют, важен сравнительный анализ.

 

Вообще, при расчет МКЭ любой реальной конструкции - напряжения как правило не совсем "правда". Для того чтобы напряжения были "правда" нужно использовать экспериментальные методы, например интерферометрический метод, или другие, попроще. 

 

 

 

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

Вообще, при расчет МКЭ любой реальной конструкции - напряжения как правило не совсем "правда".

В реальных сложных конструкциях обычно очень подробное знание НДС и не нужно для расчета. Достаточно знать усилия в отдельных элементах конструкции.

А для простых задач (наподобие пластины с отверстием или задачи Герца) все получается довольно точно, можно уложиться в один процент разницы с теорией.

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

А для простых задач (наподобие пластины с отверстием или задачи Герца) все получается довольно точно, можно уложиться в один процент разницы с теорией.

Полностью согласен. Вот эта простая задача Герца уже решена как в теории, так и с помощью мкэ (с хорошей сходимостью к теории). Поэтому значения "неправильных"  напряжений, получаемых здесь, не принципиальны. Важны сравнительные характеристики. 

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

Здравствуйте! Спасибо что посмотрели.

Очевидно, что гуру (форума, кода apdl, расчетов мкэ и т.д.) найдут много недочетов в этой тестовой задаче. Основная цель - это работающий алгоритм, а то что в середине - это можно заменить, переделать и т.д. 

 

1. Это основная ошибка? Нужно удалить plane 183 (сетку) после каждого цикла?

2. Да. Да, потом исправил. Тестовая задача, не принципиально...

3. Да. 

4. Да, это не реальная конструкция, напряжения как таковые роли не играют, важен сравнительный анализ.

 

Вообще, при расчет МКЭ любой реальной конструкции - напряжения как правило не совсем "правда". Для того чтобы напряжения были "правда" нужно использовать экспериментальные методы, например интерферометрический метод, или другие, попроще. 

 

Спасибо что ответили. На этом форуме это уже достижение.

Отдельное спасибо, что адекватно воспринимаете критику. За это я вам постараюсь помочь.

 

К сожалению, непосредственно на вашем коде я искать ошибку не готов - ориентироваться в обилии "эфайтемов" очень трудно. Я его немного переписал и теперь всё работает.

Рабочие версии:

  1. При очередном перестроении какой-то из эфайтемов отрабатывает не так, как ожидается.
  2. При /CLEAR,START затирается текущее значение переменной L. У меня в коде она вынесена в качестве счётчика основного цикла программы, так она точно не затирается. Если не хочется держать её в цикле, можно сохранять параметры в файл до *USE и считывать их оттуда после /CLEAR.
Спойлер


*CREATE,MODEL1
	h=0.1
	W=0.2
	T=0.2
	a=(2*L)/3
	P=20e6
	Eel=2.1e11
	mu=0.3
	Ro_st=7850
	W1=W/2
	T1=T/2
	h1=h/2
	L1=L/2
	a1=a/2
	dl1=L1/6
	dl2=L1/6
	n=1
	fname='D:\ANSYS\test\result2.txt'
	
	/PREP7
	!Задание типов элементов
	ET,1,SOLID186
	
	ET,10,MESH200,7
	
	!Задание свойств материала
	MP,EX,1,Eel 
	MP,PRXY,1,mu
	MP,DENS,1,Ro_st
	TB,PLAS,1,1,7,MISO
	TBTEMP,0
	TBPT,,0.0,5E+6
	TBPT,,4.854E-005,10E+6
	TBPT,,1.456E-004,30E+6
	TBPT,,2.427E-004,50E+6
	TBPT,,3.398E-004,70E+6
	TBPT,,4.369E-004,90E+6
	TBPT,,5.34E-004,110E+6
	TBPT,,6.311E-004,130E+6
	TBPT,,7.282E-004,150E+6
	TBPT,,8.252E-004,170E+6
	TBPT,,9.223E-004,190E+6
	TBPT,,1.019E-003,210E+6
	TBPT,,1.604E-003,230E+6
	TBPT,,3.214E-003,250E+6
	TBPT,,5.167E-003,270E+6
	TBPT,,7.35E-003,290E+6
	TBPT,,9.712E-003,310E+6
	TBPT,,0.012,330E+6
	TBPT,,0.015,350E+6
	TBPT,,0.018,370E+6
	TBPT,,0.020,390E+6
	TBPT,,0.022,400E+6
	
	!Построение модели
	!Создаём основание
	PCIRC,L1/2, ,0,90
	ARSCALE,ALL,,,L1/a1,1,1,,0,1
	ASEL,NONE
	
	PCIRC,(L1-dl1)/2, ,0,90
	ARSCALE,ALL,,,(L1-dl1)/(a1-dl1),1,1,,0,1
	ASEL,NONE
	
	PCIRC,(L1+dl1)/2, ,0,90
	ARSCALE,ALL,,,(L1+dl1)/(a1+dl1),1,1,,0,1
	
	RECTNG,0,W1,0,H1
	RECTNG,0,W1,0,L1+dl1
	RECTNG,0,(L1+dl1)*(L1+dl1)/(a1+dl1),0,H1
	ALLSEL
	APTN,ALL
	
	!Разбиваем основание
	KSEL,S,KP,,KP(0,0,0)
	LSLK,S
	ASLL,S
	ALLSEL,BELOW,AREA
	LSEL,U,LOC,X,0
	LSEL,U,LOC,Y,0
	*GET,l_arc,LINE,LSNEXT(0),LENG
	nd=2*NINT(l_arc*5/dl1)
	es=dl1/10
	rat=((L1+dl1)*(L1+dl1)/(a1+dl1)+L1+dl1)/l_arc
	LESIZE,ALL,,,nd,,,,,0
	ALLSEL,BELOW,AREA
	TYPE,10
	MSHKEY,0
	ESIZE,2*es
	AMESH,ALL
	
	ASLL,S
	ALLSEL,BELOW,AREA
	ESIZE,es
	AMESH,ALL
	ASLL,S
	ALLSEL,BELOW,AREA
	MSHKEY,1
	AMESH,ALL
	
	nd=NINT(((L1+dl1)*(L1+dl1)/(a1+dl1)+L1+dl1)/(8*es))
	LSEL,S,LOC,X,0
	LSEL,R,LOC,Y,(L1+dl1)/2,L1+dl1
	LESIZE,ALL,,,nd,rat,,,,0
	LSEL,S,LOC,Y,0
	LSEL,R,LOC,X,0.5*(L1+dl1)*(L1+dl1)/(a1+dl1),(L1+dl1)*(L1+dl1)/(a1+dl1)
	LESIZE,ALL,,,nd,rat,,,,0
	ALLSEL
	AMAP,,KP(0,(L1+dl1)/2,0),KP(0,L1+dl1,0),KP((L1+dl1)*(L1+dl1)/(a1+dl1),0,0),KP(0.5*(L1+dl1)*(L1+dl1)/(a1+dl1),0,0)
	
	ALLSEL
	ESIZE,1.5*rat*es
	AMESH,ALL
	
	!Вытягиваем первый слой
	nd=NINT(dl1/(8*es))
	EXTOPT,ESIZE,nd,0
	EXTOPT,ACLEAR,1	!Опция указывает на то, что при выдавливании поверхности будут очищены от плоской сетки
	VEXT,ALL,,,0,0,dl1/2
	
	!Вытигиваем второй слой и делаем остаавшийся объём
	ASEL,S,LOC,Z,dl1/2
	VSEL,NONE
	VEXT,ALL,,,0,0,1.5*dl1
	VCLEAR,ALL
	BLOCK,0,W1,0,H1,2*dl1,T1
	VGLUE,ALL
	WPOF,,,5*dl1
	VSEL,S,LOC,Z,2*dl1,T1
	VSBW,ALL
	WPCSYS,-1,0
	
	!Делаем сетку на оставшихся частях
	VSEL,S,LOC,Z,5*dl1,T1
	ESIZE,4*dl1
	VSWEEP,ALL
	
	VSEL,S,LOC,Z,dl1/2,dl1*2
	ESIZE,4*es
	VSWEEP,ALL
	
	ALLSEL
	VSEL,U,LOC,Z,5*dl1,T1
	VSEL,U,LOC,Z,0,dl1*2
	SMRT,4
	MSHAPE,1,3D
	MSHKEY,0
	VMESH,ALL
	VIMP,ALL,0
	
	!Переходим к решению
	ALLSEL
	/SOLU
	!Назначаем нагрузки и закрепления
	ASEL,S,LOC,Z,T1
	SFA,ALL,1,PRES,P
	ACEL,0,0,-9.81
	ASEL,S,LOC,X,0
	ASEL,A,LOC,Y,0
	DA,ALL,SYMM
	ASEL,S,LOC,Z,0
	
	KSEL,S,KP,,KP(0,(L1-dl1)/2,0)
	LSLK,S
	ASLL,S
	ASEL,INVE
	ASEL,R,LOC,Z,0
	DA,ALL,SYMM
	ALLSEL
	
	!EQSLV,PCG,1E-8 !При нехватке памяти выдернуть шнур, выдваить стекло
	!Пускаем на счёт
	SOLVE
	FINISH
	
	!Обработку результатов и запись на счёт не менял
	/POST1  
	SET,FIRST
	
	plnsol, S,EQV, 0,1.0
	*get,Sigma_EKV_Max,plnsol,0,MAX
	
	plnsol, S,INT, 0,1.0
	*get,Sigma_INT_max,plnsol,0,MAX
	
	PLNSOL, EPTO,EQV, 0,1.0 
	*get,DEF_Total_EKV_Max,plnsol,0,MAX
	
	PLNSOL, EPTO,INT, 0,1.0 
	*get,DEF_Total_INT_Max,plnsol,0,MAX
	
	PLNSOL, U,X, 0,1.0  
	*get,Perem_X_Max,plnsol,0,MAX
	
	PLNSOL, U,Y, 0,1.0  
	*get,Perem_Y_Max,plnsol,0,MAX

	*CFOPEN,fname,,,append
	*VWRITE,L,L1,Sigma_EKV_Max,Sigma_INT_max,DEF_Total_EKV_Max,DEF_Total_INT_Max,Perem_X_Max,Perem_Y_Max

	L=%f,    L1=%f,    Sigma_EKV_Max=%e,    Sigma_INT_max=%e,    DEF_Total_EKV_Max=%e,    DEF_Total_INT_Max=%e,    Perem_X_Max=%e,    Perem_Y_Max=%e

	*CFCLOSE
*END

*DO,L,0.01,0.03,0.01	!Переменную можно вынести непостредственно в цикл
	*USE,MODEL1
	FINISH
	/CLEAR,START
*ENDDO

 

 

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

Здравствуйте!

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

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

Посмотрел код разбиения - он очень аккуратен, мне к этому нужно стремится...

Пришлось "выдернуть шнур, выдваить стекло".

Нужно проверить на кластере, если ошибка небольшая, то нет смысла в лишнем счете...

Ссылка на сообщение
Поделиться на других сайтах
В 03.11.2020 в 22:33, Graf Kim сказал:

Спасибо что ответили. На этом форуме это уже достижение

Себя похвалил?

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

Себя похвалил?

Я не смог расшифровать послание. Разжуй для заторможенных.

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

Здравствуйте!

@Graf Kim , попробовал посчитать.

Кажется, модель имеет ограничения по размеру. При L больше 0.09 модель не считает, выдается ошибка.

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

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

К тому же, я сделал привязку длины трещины к правому краю пластины.

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

Я сделал так:

 

/prep7

    W=0.2
! Длина трещины, м (ДИАПАЗОН 0.1-0.6 от W при высоте пластины 2 м)
        L=0.9*W

 

!*CREATE,MODEL1
    h=W
    T=0.2
    a=(2*L)/3

    W1=W/2
    T1=T/2

    h1=h/2
    L1=L/2
    a1=a/2

    dl1=L1/40
    dl2=L1/40

    n=1

    P=20e6
    Eel=2.1e11
    mu=0.3
    Ro_st=7850

    fname='C:\111\result2.txt'
    
    /PREP7
    !Задание типов элементов
    ET,1,SOLID186
    ET,10,MESH200,7
    
    !Задание свойств материала
    MP,EX,1,Eel 
    MP,PRXY,1,mu
    MP,DENS,1,Ro_st
    TB,PLAS,1,1,7,MISO
    TBTEMP,0
    TBPT,,0.0,5E+6
    TBPT,,4.854E-005,10E+6
    TBPT,,1.456E-004,30E+6
    TBPT,,2.427E-004,50E+6
    TBPT,,3.398E-004,70E+6
    TBPT,,4.369E-004,90E+6
    TBPT,,5.34E-004,110E+6
    TBPT,,6.311E-004,130E+6
    TBPT,,7.282E-004,150E+6
    TBPT,,8.252E-004,170E+6
    TBPT,,9.223E-004,190E+6
    TBPT,,1.019E-003,210E+6
    TBPT,,1.604E-003,230E+6
    TBPT,,3.214E-003,250E+6
    TBPT,,5.167E-003,270E+6
    TBPT,,7.35E-003,290E+6
    TBPT,,9.712E-003,310E+6
    TBPT,,0.012,330E+6
    TBPT,,0.015,350E+6
    TBPT,,0.018,370E+6
    TBPT,,0.020,390E+6
    TBPT,,0.022,400E+6
    
    !Построение модели
    !Создаём основание
    PCIRC,L1, ,0,90

! вот здесь я переделал на правый край пластины

    ARSCALE,ALL,,,1,1/(L1/a1),1,,0,1
    ASEL,NONE
    
    PCIRC,(L1-dl1), ,0,90
    ARSCALE,ALL,,,1,1/((L1-dl1)/(a1-dl1)),1,,0,1
    ASEL,NONE
    
    PCIRC,(L1+dl1), ,0,90
    ARSCALE,ALL,,,1,1/((L1+dl1)/(a1+dl1)),1,,0,1

!   

RECTNG,0,W1,0,H1

 

 

 

 

Одного прямоугольника достаточно. 

Начал разбираться с мешингом... Замудрено прилично. Сделан мешинг как mapped By Corner, но не пойму как рассчитывались углы... 

Изменено пользователем Nео
Ссылка на сообщение
Поделиться на других сайтах
В 07.11.2020 в 07:24, Nео сказал:

Кажется, модель имеет ограничения по размеру. При L больше 0.09 модель не считает, выдается ошибка.

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

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

К тому же, я сделал привязку длины трещины к правому краю пластины.

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

Да, имеет. Я ж не в курсе, чего именно вы хотите добиться в своей постановке. Ориентировался на ту геометрию, которая создаётся в коде, который вы предоставили. По ней не очевидно, что трещина может занимать значительную часть нижней поверхности (я сразу не догадался даже что это трещина - там даже давление в другую сторону приложено). Для трещины, которая занимает небольшой угол прямоугольника есть стандартный приём нанесения сетки: переход от центра трещины к краям по топологиям "треугольник" - "кольцо" - "пятиугольник размешенный как четырёхугольник" - "три прямоугольника". Такой подход позволяет во-первых натянуть туда гексаэдры, а во-вторых - поварьировать размерами и сгущениями так чтобы найти баланс между качеством сетки и её размером.

 

image.png

 

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

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

 

image.png

 

Получается такая сетка:

 

image.png

 

 

Именно это делает AMAP в моём коде. Я думаю если захотите сделать так же - без проблем вычислите углы в которые надо прицелиться.

 

Кстати, если уж вы занимаетесь трещинами - найдите книжку Морозова, Муйземнека и Шадского "ANSYS в руках инженера: Механика разрушения", там есть много полезного, в том числе про использование специальных элементов со смещёнными узлами на фронте трещины.

 

 

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

Здравствуйте!

Да, это была эллиптическая трещина. Спасибо за подробное пояснение по разбиению, теперь понятно.

Такая схема тоже имеет право на существование .Ее можно рассматривать как "эллиптическая трещина в средней части толщины пластины", расчет КИН для этой схемы как раз приведен в справочнике Мураками. И если трещины ближе к границам, то уже нужно использовать другие значения поправочных функций. 

Книга есть, лично был знаком с Евгением Михайловичем Морозовым, кажется книга им и подписана).

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

Книга есть, лично был знаком с Евгением Михайловичем Морозовым, кажется книга им и подписана).

Почему был? ЕМ до сих пор в строю. Недавно только у него был.

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

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

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...