| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Расчетные программы > ANSYS > вывод значения элемента массива параметров

вывод значения элемента массива параметров

Ответ
Поиск в этой теме
Непрочитано 26.09.2011, 07:07 #1
вывод значения элемента массива параметров
sms
 
Регистрация: 26.09.2011
Сообщений: 22

доброго времени суток. Код следующий.

n_elem=1211
*DIM,EE1,ARRAY,n_elem,1,1, , ,
...
EE1(i)=ei ! заполнили массив
*enddo

Вопрос 1. Как вывести значение элемента массива параметров EE1, например элемента (5,1,1), присвоив это значение параметру А? С опрератором *VWRITE что-то не получается.

Вопрос 2. Как построить изолинии (подобно изолиниям напряжений) из массива ЕЕ1?
Просмотров: 17347
 
Непрочитано 26.09.2011, 09:43
1 | #2
MrWhite


 
Регистрация: 18.09.2011
Нахабино
Сообщений: 1,040


1. Не поверите: A=EE1(5,1,1)
2. Запихните массив в ETABLE и его уже отображайте.
MrWhite вне форума  
 
Автор темы   Непрочитано 26.09.2011, 20:17
#3
sms


 
Регистрация: 26.09.2011
Сообщений: 22


Спасибо, действительно работает, что же это я.

Дело в том, что не могу понять как перевести массив в etable.

Изначально делал так: создавал массив параметров с напряжениями в КЭ в etable, затем перебирал значения напряжений для каждого КЭ и проверял их по условию, все это дело организовывал с помощью цикла, а результат для каждого КЭ помещал в массив. Теперь нужно отобразить результаты расчета из этого массива графически. Незнаю как, ведь Ansys строит изолинии только для массивов созданных в etable. Думал получить итоговый массив с помощью операторов во внутренней вкладки etable (умножение, сложение и т.д.), но хочется верить, что есть путь быстрее.

Вот код.

...
*DIM,EE1,ARRAY,n_elem,1,1, , ,
*get,ke,elem,,count
ne=0

*do,i,1,ke
ne=elnext(ne)
*GET,sti,ELEM,ne,ETAB,ST1
*GET,st2i,ELEM,ne,ETAB,ST2
/PREP7
*if,sti,LT,stmax1_10,then
fi=(1-5.3*tp1*sti**0.06)**(1/1.06)

*if,st2i,LT,stmax2_10,then
f2i=(fi-5.3*st2i*(tp2-tp1))**(1/1.06)
*else
f2i=0
*endif

*else
f2i=0
*endif
EE1(i)=f2i
*enddo
...
sms вне форума  
 
Непрочитано 26.09.2011, 21:39
#4
MrWhite


 
Регистрация: 18.09.2011
Нахабино
Сообщений: 1,040


Закинуть массив можно с помощью команды *VPUT, попробуйте так:
Код:
[Выделить все]
ETABLE,NAME_ETABLE,CENT,X 
*VPUT,NAME_ARRAY(1,2),ELEM,NAME_ARRAY(1,1),ETAB,NAME_ETABLE,,,2
! Название ETABLE не больше 8 символов
! NAME_ARRAY(1,1) - столбец массива с номерами элементов
! NAME_ARRAY(1,2) - столбец массива со значениями
P.S. В чем пишите макросы?
MrWhite вне форума  
 
Автор темы   Непрочитано 27.09.2011, 06:34
#5
sms


 
Регистрация: 26.09.2011
Сообщений: 22


В txt.

Спасибо большое, все получилось. Только я не создавал массив с номерами элементов, ведь номер строки - это и есть номер элемента.

/POST1
ETABLE,FF1_etable,CENT,X
*VPUT,FF1,ELEM,FF1,ETAB,FF1_etable,,,2

Последний раз редактировалось sms, 27.09.2011 в 07:16.
sms вне форума  
 
Непрочитано 27.09.2011, 08:15
#6
MrWhite


 
Регистрация: 18.09.2011
Нахабино
Сообщений: 1,040


Цитата:
Сообщение от sms Посмотреть сообщение
Только я не создавал массив с номерами элементов, ведь номер строки - это и есть номер элемента.
Это частный случай. В общем случае нужно так, как я показал.

Цитата:
Сообщение от sms Посмотреть сообщение
В txt.
Если будете заниматься, этим делом - рекомендую специальный редактор выбрать. В NotePade работать очень неудобно.
MrWhite вне форума  
 
Автор темы   Непрочитано 27.09.2011, 08:23
#7
sms


 
Регистрация: 26.09.2011
Сообщений: 22


Я вот только начинаю, кроме блокнота пока ничего лучше и не видел.
Какие, например, редакторы?
sms вне форума  
 
Непрочитано 27.09.2011, 09:06
1 | #8
MrWhite


 
Регистрация: 18.09.2011
Нахабино
Сообщений: 1,040


Цитата:
Сообщение от sms Посмотреть сообщение
Я вот только начинаю, кроме блокнота пока ничего лучше и не видел.
Какие, например, редакторы?
Рекомендую SciTE. Только нужно искать специально адаптированный под язык APDL. Если не найдете, скину по почте настроенный. Там и подсветка синтаксиса, подсказки, свертывание блоков, хелп Ансиса для нужной команды по F1 и др.
MrWhite вне форума  
 
Автор темы   Непрочитано 28.09.2011, 11:46
#9
sms


 
Регистрация: 26.09.2011
Сообщений: 22


Действительно, с синтаксисом оператором довольно долго разбирался при написании в блокноте.
нашел SciTE 2,28. Английская, Apdl - нет, Fortran - есть.
SciTE 1,76,57. Русская, Apdl - нет, Fortran - во вкладке не нашел.

Куча настроек, нужно разбираться. Спасибо вам за помощь.
sms вне форума  
 
Непрочитано 28.09.2011, 11:57
#10
A-n-d-r-e-y

инженер
 
Регистрация: 06.03.2008
Сообщений: 121
<phrase 1=


Была тема "Session editor для Ansys.", там во вложении файл с подсветкой синтаксиса apdl и краткой справкой по командам (может тот который использует MrWhite), скачан с http://www.pspad.com/en/pspad-extens...hp?kategorie=3
A-n-d-r-e-y вне форума  
 
Непрочитано 28.09.2011, 12:12
#11
MrWhite


 
Регистрация: 18.09.2011
Нахабино
Сообщений: 1,040


Цитата:
Сообщение от A-n-d-r-e-y Посмотреть сообщение
Была тема "Session editor для Ansys.", там во вложении файл с подсветкой синтаксиса apdl и краткой справкой по командам (может тот который использует MrWhite), скачан с http://www.pspad.com/en/pspad-extens...hp?kategorie=3
Ммммм... Я SciTE использую, а не Pspad. Там настройки разные же. Настраивал сам, список команд APDL и CivilFEM, доступ к полной справке по командам и т.п. И сам функционал SciTE богаче, чем Pspad у конечно.
MrWhite вне форума  
 
Автор темы   Непрочитано 28.09.2011, 13:16
#12
sms


 
Регистрация: 26.09.2011
Сообщений: 22


Еще вопрос.
Максимальное значение массива и номер строчки можно найти только перебирая все значения с помощью оператора цикла или есть специальный оператор findmax?

n_elem=1211
*DIM,EE1,ARRAY,n_elem,1,1, , ,
sms вне форума  
 
Непрочитано 28.09.2011, 13:22
#13
MrWhite


 
Регистрация: 18.09.2011
Нахабино
Сообщений: 1,040


Цитата:
Сообщение от sms Посмотреть сообщение
Еще вопрос.
Максимальное значение массива и номер строчки можно найти только перебирая все значения с помощью оператора цикла или есть специальный оператор findmax?
Есть специальный опрератор, конечно.
MrWhite вне форума  
 
Автор темы   Непрочитано 28.09.2011, 13:33
#14
sms


 
Регистрация: 26.09.2011
Сообщений: 22


Пробовал Smax в etable, но он мне ищет максимум в каждой строке и выдает снова массив. Затем попробовал VSCFUN, тоже не получилось. как сделать, чтобы на выходе получался номер строки и значение элемента как в обычном листинге, подскажите?

SMAX,emax,EE1,EE1,1,1,
*VSCFUN,emax,MAX,EE1
sms вне форума  
 
Непрочитано 28.09.2011, 13:48
#15
MrWhite


 
Регистрация: 18.09.2011
Нахабино
Сообщений: 1,040


Цитата:
Сообщение от sms Посмотреть сообщение
Пробовал Smax в etable, но он мне ищет максимум в каждой строке и выдает снова массив. Затем попробовал VSCFUN, тоже не получилось. как сделать, чтобы на выходе получался номер строки и значение элемента как в обычном листинге, подскажите?

SMAX,emax,EE1,EE1,1,1,
*VSCFUN,emax,MAX,EE1
Вы путаете ETABLE и ARRAY(массив). Для массива:
Код:
[Выделить все]
*DIM,TEST,ARRAY,9,1,1, , , 
*SET,TEST(1,1,1),12   
*SET,TEST(2,1,1),14   
*SET,TEST(3,1,1),11   
*SET,TEST(4,1,1),1
*SET,TEST(5,1,1),8
*SET,TEST(6,1,1),15   
*SET,TEST(7,1,1),4
*SET,TEST(8,1,1),3
*SET,TEST(9,1,1),2
*VSCFUN,MAXVALUE,MAX,TEST
*VSCFUN,MAXVALUELOC,LMAX,TEST
/COM, Max Value = %MAXVALUE%
/COM, Loc Max Value = %MAXVALUELOC%
MrWhite вне форума  
 
Автор темы   Непрочитано 28.09.2011, 13:54
#16
sms


 
Регистрация: 26.09.2011
Сообщений: 22


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

etable - это раздел, где можно создать массив параметров результатов расчета, которые находятся в базе данных ansys
array - это массив параметров, которые созданы пользователем.

Не так ли?

Последний раз редактировалось sms, 28.09.2011 в 14:05.
sms вне форума  
 
Непрочитано 28.09.2011, 14:24
#17
MrWhite


 
Регистрация: 18.09.2011
Нахабино
Сообщений: 1,040


Цитата:
Сообщение от sms Посмотреть сообщение
etable - это раздел, где можно создать массив параметров результатов расчета, которые находятся в базе данных ansys
Чутка не так. Глвное что это массив привязанный к элементам. Если Вы четко почуствуете разницу, не будет путаницы почему нельзя получить скалярное решение для ETABLE, а для ARRAY можно и т.д.
При сохранении модели и ETABLE и ARRAY сохраняются в *.db Это не их ключевое отличие.
MrWhite вне форума  
 
Автор темы   Непрочитано 28.09.2011, 14:33
#18
sms


 
Регистрация: 26.09.2011
Сообщений: 22


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

Добрый день.
Подскажите, возможно ли в название включить переменную? Например:
создать цикл и на каждом шаге создавать столбец массив с именами st_et1, st_et2, st_et3

*do,i,1,3
/POST1
ETABLE,st_eti,S,INT
PRETAB,St_eti
*enddo

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

Последний раз редактировалось sms, 29.09.2011 в 08:58.
sms вне форума  
 
Непрочитано 29.09.2011, 17:58
1 | #19
MrWhite


 
Регистрация: 18.09.2011
Нахабино
Сообщений: 1,040


Цитата:
Сообщение от sms Посмотреть сообщение
*do,i,1,3
/POST1
ETABLE,st_et%i%,S,INT
PRETAB,St_et%i%
*enddo
Можно. См. исправление в цитате
MrWhite вне форума  
 
Автор темы   Непрочитано 04.10.2011, 10:59
#20
sms


 
Регистрация: 26.09.2011
Сообщений: 22


Доброго времени суток. Подскажите, возможно ли считая модель симметричной провести расчет, скажем для ее 4й части, а результат отобразить для всей модели? Вот код.

Код:
[Выделить все]
 /PREP7  
RECTNG,0,0.5,0,0.5, 
PCIRC,0.1, ,0,360,  
FLST,2,2,5,ORDE,2   
FITEM,2,1   
FITEM,2,-2  
ASBA,P51X,       2  
FINISH  
/CLEAR,NOSTART  
/COM,ANSYS RELEASE 11.0SP1 UP20070830       13:31:31    10/04/2011
!*  
/PREP7  
RECTNG,0,0.5,0,0.5, 
PCIRC,0.1, ,0,360,  
FLST,2,2,5,ORDE,2   
FITEM,2,1   
FITEM,2,-2  
ASBA,P51X,       2  

*SET,eic,1000
*SET,nuic,0.25
*set,forceic1,5
*set,forceic2,1.65
*set,forceic3,15

ET,1,plane82

MPTEMP,,,,,,,,  
MPTEMP,1,0  
MPDATA,EX,1,,eic 
MPDATA,PRXY,1,,nuic 
/VIEW,1,,,1 

SMRT,6  
SMRT,5  
SMRT,4  
MSHAPE,0,2D 
MSHKEY,0
!*  
CM,_Y,AREA  
ASEL, , , ,       3 
CM,_Y1,AREA 
CHKMSH,'AREA'   
CMSEL,S,_Y  
!*  
AMESH,_Y1   
!*  
CMDELE,_Y   
CMDELE,_Y1  
CMDELE,_Y2  
!*  
FLST,5,66,2,ORDE,27 
FITEM,5,1   
FITEM,5,-3  
FITEM,5,6   
FITEM,5,-7  
FITEM,5,9   
FITEM,5,-11 
FITEM,5,16  
FITEM,5,-19 
FITEM,5,82  
FITEM,5,-84 
FITEM,5,111 
FITEM,5,-116
FITEM,5,142 
FITEM,5,148 
FITEM,5,-153
FITEM,5,171 
FITEM,5,-179
FITEM,5,200 
FITEM,5,-207
FITEM,5,249 
FITEM,5,-253
FITEM,5,278 
FITEM,5,-280
FITEM,5,286 
FITEM,5,288 
FITEM,5,306 
FITEM,5,-316
CM,_Y,ELEM  
ESEL, , , ,P51X 
CM,_Y1,ELEM 
CMSEL,S,_Y  
CMDELE,_Y   
!*  
!*  
EREF,_Y1, , ,1,0,1,1
CMDELE,_Y1  



/SOL
FLST,2,1,4,ORDE,1   
FITEM,2,10  
!*  
/GO 
DL,P51X, ,UX,   
FLST,2,1,4,ORDE,1   
FITEM,2,9   
!*  
/GO 
DL,P51X, ,UY,   
FLST,2,1,4,ORDE,1   
FITEM,2,3   
/GO 
!*  
SFL,P51X,PRES,forceic1, 
FLST,2,1,4,ORDE,1   
FITEM,2,2   
/GO 
!*  
SFL,P51X,PRES,forceic2, 
FLST,2,1,4,ORDE,1   
FITEM,2,5   
/GO 
!*  
SFL,P51X,PRES,forceic3, 


 
/SOL 
SOLVE 
FINISH

/POST1  
ETABLE,st1_etable,S,INT
PLETAB,ST1_etable,AVG 
PRETAB,ST1_etable
sms вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Расчетные программы > ANSYS > вывод значения элемента массива параметров

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остаточный ресурс элемента здания. Скорость ухудшения параметров? Miller78 Поиск литературы, чертежей, моделей и прочих материалов 4 11.12.2008 21:23
Вывод значения атрибута в поле field batart AutoCAD 2 09.07.2008 12:06