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

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

программирование в ANSYS

Ответ
Поиск в этой теме
Непрочитано 05.10.2005, 05:20 #1
программирование в ANSYS
alle
 
Регистрация: 11.08.2005
Сообщений: 921

Уважаемые коллеги!
Немного припотел с типом данных Fortran.
Хочу все исходные параметры своей задачи задавать в отдельном текстовом файле.
1) Например, имеется некоторый массив "А", скажем, размером 3х3.
Пусть для определенности
А(1,1)=2,563; А(1,2)=7,369; А(1,3)=8,2;
А(2,1)=7,15; А(2,2)=0,1245; А(2,3)=14,89;
А(3,1)=9; А(3,2)=17,1; А(3,3)=158
Было бы удобно, если бы в создаваемом мною текстовом файле я вводил значения массива по следующей схеме:
2.563<пробел>7.369<пробел>8.2
7.15<пробел>0.1245<пробел>14.89
9<пробел>17.1<пробел>158
Изучаю команду *VREAD и сталкиваюсь с тем, что в Фортране называется спецификацией формата или форматным кодом. Получается, что количество символов в каждом числе должно быть фиксированным. Но я не могу заранее предусмотреть сколько позиций будет отведено под конкретное число и его десятичную часть. То есть, я хочу не задумываясь вводить числа типа 2.563 или 9, отделяя их пробелами и переносами и чтобы программа это все нормально переваривала.
То есть я, как человек, избалованный всякими вижуал бейсиками с их умными переменными типа variant начинаю испытывать ужас перед Fortran-ом и его типами данных.
Подскажите мне, пожалуйста, можно ли записать команду *VREAD для такого "произвольного" случая как в моем примере.
(Fname = Fname, Ext = txt)
2) Можно ли к примеру организовать один текстовый файл и для массивов и для скаляров, какие есть в задаче? То есть как например записать код, чтобы для скаляра abc считывалось значение к примеру 11-й строки текстового файла?
Просмотров: 27665
 
Непрочитано 05.10.2005, 07:39
#2
СергейД

расчеты МКЭ и CFD. ктн
 
Регистрация: 11.05.2005
Подмосковье
Сообщений: 2,170


Посмотри команду *tread
в ней есть все желаемое тобой
и ввод из бесформатного txt
и с указанной строки
СергейД вне форума  
 
Автор темы   Непрочитано 05.10.2005, 10:12
#3
alle


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


*TREAD, Par, Fname, Ext, --, NSKIP
Reads data from an external file into a table array parameter.

*VREAD, ParR, Fname, Ext, --, Label, n1, n2, n3, NSKIP
Reads data and produces an array parameter vector or matrix.

Сергей, мне бы нужно не в table считывать а an array parameter vector or matrix или просто определять как скаляр...

Пусть например в рабочей директории fname.txt стоит проивольное число. Какой командой мне считать его, присвоив данное значение скаалярному параметру A ? Код не черкнете плиз (я человек измученный фортраном )


Цитата:
Сообщение от СергейД
Посмотри команду *tread
в ней есть все желаемое тобой
и ввод из бесформатного txt
и с указанной строки
alle вне форума  
 
Автор темы   Непрочитано 05.10.2005, 10:26
#4
alle


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


Вот для некоторой своей задачи я сохраняю данные в файле:

PARSAV, Lab, Fname, Ext, --
Writes parameters to a file.


/NOPR
*SET,A1 , 0.9380000000000E-03
*SET,A2 , 0.4800000000000E-03
*SET,A3 , 0.4800000000000E-03
*SET,A4 , 0.8150000000000E-03
*SET,A5 , 0.8150000000000E-03
*SET,AEFF , 4.376040041265
*SET,AEFFL , 0.3000000000000
*SET,AEFFT , 1.500000000000
*SET,AI , 0.8300043716032
*SET,AK , 3.911625307237
*SET,B1 , 2.556200000000
*SET,B2 , 1.276200000000
*SET,BC1 , 0.8000000000000E-01
*SET,BC2 , 0.5000000000000E-01
*SET,FR1 , 5.967003531547
*SET,FR2 , 5.967003531547
*SET,FR3 , 15.31162351017
*SET,FR4 , 15.31162351017
*SET,FRLIM , 3.800000000000
*SET,FRMAX , 100.0000000000
*SET,FRMIN , 0.1000000000000E-01
*DIM,G ,ARRAY, 3, 1, 1,
*SET,G ( 1, 1, 1), 3135.904886888
*SET,G ( 2, 1, 1), 2577.456071415
*SET,G ( 3, 1, 1), 6546.473642849
*SET,H , 13.00000000000
*SET,H1 , 1.000000000000
*SET,I , 0.4923076923077E-01
*SET,J , 3.000000000000
*DIM,K ,ARRAY, 3, 1, 1,
*SET,K ( 1, 1, 1), 0.8086746252362
*SET,K ( 2, 1, 1), 0.9775229525623
*SET,K ( 3, 1, 1), 1.054417116292
*DIM,KDW ,ARRAY, 3, 1, 1,
*SET,KDW ( 1, 1, 1), 0.8330259555374
*SET,KDW ( 2, 1, 1), 0.7609757078353
*SET,KDW ( 3, 1, 1), 0.7339767543607
*SET,KM , 1.200000000000
*SET,KORRW , 0.9000000000000
*SET,KW , 1.150000000000
*SET,L1 , 5.551868706376
*SET,L2 , 5.551868706376
*SET,L3 , 5.551868706376
*DIM,M ,ARRAY, 3, 1, 1,
*SET,M ( 1, 1, 1), 313.5904886888
*SET,M ( 2, 1, 1), 257.7456071415
*SET,M ( 3, 1, 1), 654.6473642849
*SET,ML , 20.00000000000
*SET,MT , 500.0000000000
*SET,N , 13.00000000000
*SET,NEL , 1.000000000000
*SET,NFR , 10.00000000000
*SET,NKP1 , 12.00000000000
*SET,NKP2 , 27.00000000000
*SET,NKP3 , 43.00000000000
*SET,NKP4 , 59.00000000000

*DIM,NN ,ARRAY, 3, 1, 1,
*SET,NN ( 1, 1, 1), 5.000000000000
*SET,NN ( 2, 1, 1), 10.00000000000
*SET,NN ( 3, 1, 1), 13.00000000000

*SET,NOP , 3.000000000000
*SET,NU , 0.6297412173516
*SET,PHI , 0.2121891301980
*SET,R1 , 0.1580000000000E-01
*SET,R2 , 0.9800000000000E-02
*SET,R3 , 0.9800000000000E-02
*SET,R4 , 0.1380000000000E-01
*SET,R5 , 0.1380000000000E-01
*DIM,W ,ARRAY, 3, 1, 1,
*SET,W ( 1, 1, 1), 4648.059339068
*SET,W ( 2, 1, 1), 4332.834747996
*SET,W ( 3, 1, 1), 4076.288641469
*SET,W0WIND , 380.0000000000
*SET,Y , 10.23076923077
*SET,Y1 , 10.23076923077
*SET,Y2 , 13.00000000000
*SET,YMID , 11.61538461538
*SET,_BUTTON , 0.000000000000
*SET,_RETURN , 0.000000000000
*SET,_STATUS , 1.000000000000
*SET,_UIQR , 92.00000000000
*SET,_ZX ,' '
/GO

Из того же файла данные прекрасно считываются командой

PARRES, Lab, Fname, Ext, --
Reads parameters from a file.

Все что я хочу это устроить запись параметров в аналогичный файл без "*SET" и прочих ансисовских маркировок.
И мой вопрос состоит в том, могу ли при этом избежать сложностей
фортрановского оператора Format ?
alle вне форума  
 
Непрочитано 05.10.2005, 12:35
#5
СергейД

расчеты МКЭ и CFD. ктн
 
Регистрация: 11.05.2005
Подмосковье
Сообщений: 2,170


УЖЕ ИМЕЮЩИЕСЯ
проще всего наверное-записать и прочитать
*cfopen,wse,txt
*vwrite,a1,a2,a3
%14.7e %14.7e %14.7e
*vlen,1! не забудь
*vwrite,g(1),g(2),g(3)
%14.7e %14.7e %14.7e
!........... и тд
*cfclos
! В ФАЙЛЕ БУДЕТ ВСЕ В НУЖНОМ ФОРМАТЕ
! МОЖНО СДЕЛАТЬ И ЦИКЛ ПО ВСЕМ СУЩЕСТВУЮЩИМ ПЕРЕМЕННЫМ


*dim,par,,100
*vread,par(1),wse,txt
(10E14.7)

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

а вообще бесформатный ввод я делаю через *tread
затем читаю из табличного массива
например переношу числа в обычный массив
(ну будет в макросе не строка а две-три..)
*dim,ww,table,1,1
*tread...
a=ww(1)
СергейД вне форума  
 
Автор темы   Непрочитано 05.10.2005, 12:48
#6
alle


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


Спасибо, Сергей.
Я там на вашем форуме этот же вопрос задал (нужно срочно).
alle вне форума  
 
Автор темы   Непрочитано 05.10.2005, 14:25
#7
alle


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


Этот способ подкупает своей простотой.
В связи с этим еще вопрос
ww(1) - это первый элемент таблицы.
А как получить где нибудь в середине.
Для массива все ясно WW(1,1,3)
есть скаляр.
А для таблицы какое обозначение?

Цитата:
Сообщение от СергейД
а вообще бесформатный ввод я делаю через *tread
затем читаю из табличного массива
например переношу числа в обычный массив
(ну будет в макросе не строка а две-три..)
*dim,ww,table,1,1
*tread...
a=ww(1)
alle вне форума  
 
Непрочитано 05.10.2005, 15:13
#8
СергейД

расчеты МКЭ и CFD. ктн
 
Регистрация: 11.05.2005
Подмосковье
Сообщений: 2,170


да также --w(1,1,3)
просто
табличный массив- массив у которого номера строк (столбцов.плоскостей) могут быть не только целыми но и
дробными
применяется линейная аппроксимация.
скажем для расчета w(3.5,7.2)
применяются w(3,7) w(4,7) w(3,8) w(4,8)

формирование такого массива чуть сложнее, чем обычного но описано в HELP
надо задать номера строк и столбцов -
заполнить нулевую строку и столбец

в обычном массиве подразумевается что номера равны 12345...
посмотри в help - будет непонятно- подскажу.
СергейД вне форума  
 
Автор темы   Непрочитано 06.10.2005, 06:02
#9
alle


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


Спасибо Сергей.
Все оказывается очень просто. you're a wizard!
То есть при задании table для целей передачи данных в array следует задать аргументы по x и по y = 1,2,3 и так далее...
Вот так:
!********************
m=414
n=325
I=1
*DIM,A,TABLE,m,n,1, , ,
*DO,I,1,m,1
A(I,0)=I
*ENDDO
*DO,I,1,n,1
A(0,I)=I
*ENDDO
!********************
Ну это положим уже не две - три строчки кода , но все равно принципиально несложно...
alle вне форума  
 
Автор темы   Непрочитано 06.10.2005, 06:15
#10
alle


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


Да, я почти никогда не пользовался table для пре- постпроцессорной обработки, только для задания нагрузок...
Оказывается очень удобно, многие свои предыдущие задачи я могу существенно упростить.
Поясню свою задачу. Мне нужно за короткий срок посчитать 15 башен и я решил написать код, который бы из произвольной плоской схемки,
набросанной в AUToCAd и упрощенных исходных данных разворачивал пространственную, при этом собирал нагрузки, считал, проверял сечения и выдавал отчет с выкладкой. Раньше я решал эту задачу, но с привязкой к конкретном типам башни. Теперь хочу обобщить на более-менее произвольный случай...
alle вне форума  
 
Непрочитано 06.10.2005, 09:43
#11
СергейД

расчеты МКЭ и CFD. ктн
 
Регистрация: 11.05.2005
Подмосковье
Сообщений: 2,170


на самом деле все указанное можно разместить в двух трех строчках- как я и говорил
скажем
заполнение массива *vfill
*taxis заполнение строчки заголовка
да и писать я привык, объединя несколько строк через $ для удобства восприятия
тогда все можно вообще поместить в одну строку....


как приятно встретить на этом форуме кого-то знающего ansys
и понимающего чем он отличается от scad и тп программ
СергейД вне форума  
 
Автор темы   Непрочитано 06.10.2005, 11:03
#12
alle


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


Да я пытался спорить даже на этом форуме, о преимуществах ANSYS против Скад, и удобствах полноценного макроязыка.
Но в общем и целом, спор не получился, потому что ANSYS мало кто владеет, и все вылилось в пустую перепалку типа "сам дурак".
Для массового не особо искушенного инженера, и стандартных инженерных задач СКАД - нормальная программа.
Единственно, кому бы я не рекомендовал инженерные программы, вроде Скада, так это аспирантам. Все таки для научных и вообще штучных и углубленных работ и исследований нужны программные продукты классом повыше.
А кстати, возвращаясь к программе по импорту моделей - я находил ссылку для аналогичной проги к FEMAP.

http://www.helpstud.narod.ru/

Закачать не удалось. А Вы знакомы с ней?
alle вне форума  
 
Непрочитано 06.10.2005, 12:05
#13
СергейД

расчеты МКЭ и CFD. ктн
 
Регистрация: 11.05.2005
Подмосковье
Сообщений: 2,170


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

у меня вроде сделано больше
да и с точки ansys там вроде правильно. + Работать думаю будет побыстрее, поскольку ввод из FEMAр скажем делается для больших моделей в 10-20 раз быстрее (там поузловой-поэлементный а меня массивом)

а насчет макросов для типовых конструкций
я их все время пишу и именно для подобных целей
Удачи!
СергейД вне форума  
 
Автор темы   Непрочитано 06.10.2005, 12:32
#14
alle


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


Вы потихоньку совершенствуете свою программку, как я понял, и не собираетесь бросать это занятие?

Цитата:
Сообщение от СергейД
Удачи!
alle вне форума  
 
Непрочитано 06.10.2005, 13:14
#15
СергейД

расчеты МКЭ и CFD. ктн
 
Регистрация: 11.05.2005
Подмосковье
Сообщений: 2,170


планирую сделать общую оболочку для загрузки
из Лиры scad microfe robot
МБ включить это в civilfem

в конверторе из ЛирыСКАД осталось (если ктото попросит)
доделать нагрузки, РСУ и профиля

сделал ограниченный конвертор из ansys в microfe (там формат проще)

можно наладить обмен microfe <> robot

Уже пользовались конвертором? Что посоветуете?
СергейД вне форума  
 
Автор темы   Непрочитано 06.10.2005, 13:31
#16
alle


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


Да, немного пользовался, но пока ради пробы а не на практике.
Тут тоже есть такая штука - я привык по своему работать в ANSYS, к примеру .db никогда не пользуюсь, строю всегда твердотельную модель с последующей дискретизацией и так далее, и мне как то неловко работать с непривычной для меня моделью, которая получается после импорта... Для меня расчет всегда немного больше чем расчет - как некое таинство, есть привычный порядок работы, нарушать который чреват тем, что я могу что то выпустить из вида и т.д. Хотя наверняка можно предположить, что будет такая срочная работка, где импорт поможет сэкономить время по передаче модели.
Кстати, а есть ли специальные программки по импорту dxf в IGES помимо через автокад?

Цитата:
Сообщение от СергейД
Уже пользовались конвертором? Что посоветуете?
alle вне форума  
 
Непрочитано 06.10.2005, 13:44
#17
СергейД

расчеты МКЭ и CFD. ктн
 
Регистрация: 11.05.2005
Подмосковье
Сообщений: 2,170


icem например берет dxf

После конвертации...
написал давно макрос на месте выбранных КЭ создающий геометрию.
вместо балки- линия
вместо пластины- плоскость
вместо солида- объем
геометрия создается с присвоенными атрибутами (теми что были у элементов)
далее либо просто разбивка со сгущением сетки либо
переделка геометрии
СергейД вне форума  
 
Автор темы   Непрочитано 06.10.2005, 14:11
#18
alle


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


То есть Areas получается фрагментами - по элементам, а потом
Add ится?

Цитата:
Сообщение от СергейД
вместо пластины- плоскость
alle вне форума  
 
Непрочитано 06.10.2005, 15:22
#19
СергейД

расчеты МКЭ и CFD. ктн
 
Регистрация: 11.05.2005
Подмосковье
Сообщений: 2,170


много add долго и не всегда выполняется (для кривых пов не годится)

если собираюсь подобное делать
пересоздаю поверхности по внешним линиям
asel,s...
lsel,s,ext
adel,all
al,all

или создаю по точкам
а что еще делать?

Но
чаще я сетку просто местами сгущаю
смотреть на то что сгенерировалось в Лире и тп- для больших моделей
порой даже боязно (стена одним элементом...)

или меняю элементы на shell93- beam189 с промежуточными узлами
это делается несложно
(тоже макрос)
и позволяет для сравнения просчитать с увеличенным числом узлов.
(а sh93 + учитывает сдвиг)
СергейД вне форума  
 
Автор темы   Непрочитано 07.10.2005, 06:36
#20
alle


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


В Москве наверно много пользователей и ANSYS и SivilFEM? В провинции, где я живу, это диковинка по большому счету...
Если бы не моя причастность, в свое время, к машиностроительным задачам, то я тоже вряд ли бы взялся за эту тему.
alle вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > программирование в ANSYS

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

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