Все ответы об инженерном анализе

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

Многоразмерные таблицы в ANSYS

MaryMadeleine
Аватар пользователя MaryMadeleine

Доброго времени суток!

 

Мне нужна помощь по индексированию заголовков многомерных таблиц. Возьмем, к примеру 2D, 3D и 4D таблицы с переменными X, Y, Z и TEMP.

Для 2D таблицы с индексами все просто: TABLE(i,0) задает значение заголовка i-й строки (X); TABLE(0,j) задает значение j-го столбца (Y).

Для 3D таблицы, судя по визуализации и коду в логе, получается, что каждый компонент 3-го измерения (Z) содержит 2D таблицу X/Y, потому что индексы по Z задаются как TABLE(0,0,k), а индексы X/Y задаются для каждого 'k' как TABLE(i,0,k) and TABLE(0,j,k). См. код и скриншот:

 

*dim,test3d,table,5,4,3,x,y,z

 

*do,k,1,3

*set,test3d(0,0,k),k*100

 

*do,i,1,5

*set,test3d(i,0,k),k*100+i

*enddo

*do,j,1,4

*set,test3d(0,j,k),k*100+j*10

*enddo

*enddo

 

По аналогии я предположил, что каждый компонент 4-го измерения (TEMP) должен содержать 3D таблицу и задаваться его заголовок должен как TABLE(0,0,0,g), поэтому я добавил внешний цикл:

 

*do,g,1,2

! Вот тут ошибка -->

*set,test4d(0,0,0,g),g*1000

 

*do,k,1,3

*set,test4d(0,0,k,g),g*1000+k*100

 

*do,i,1,5

*set,test4d(i,0,k,g),g*1000+k*100+i

*enddo

*do,j,1,4

*set,test4d(0,j,k,g),g*1000+k*100+j*10

*enddo

*enddo

*enddo

 

Но в этом случае в указанной линии я получил ошибку "Subscript 3 is out of range for parameter TEST4D. Specified value is 0 Maximum value is 3." кривого индекса, в результате чего у меня возникли вопросы:

Как устроена 4D таблица и как ее правильно заполнить?

ВложениеРазмер
Иконка изображения table_3d.jpg305.3 КБ
Ruslan Abdrahimov
Аватар пользователя Ruslan Abdrahimov

Добрый день!

Предполагаю, что для 4 и 5d таблиц заголовки нужно заполнять через команду *taxis, а остальные данные можно ввести через *set. Для примера посмотрите статью по ссылке https://www.padtinc.com/blog/other-stuff-every-user-should-know-about-tables-in-ansys-mechanical-apdl-nesting-and-4-or-5-dimension-tables/

MaryMadeleine
Аватар пользователя MaryMadeleine

Да, я видел эту статью, но с *TAXIS есть непонятный момент, на котором я и заступорился. В эту команду можно писать любые числа в индекс, с которым в данный момент не идет работа. Например, в 3D таблице для записи числа в третью ячейку по Y можно написать вполне рабочие команды:

*taxis,test3d(-1,3,0),2,666

*taxis,test3d(999,3,-777),2,666

И все будет ок, 666 запишется. В этом плане *SET с нулевыми индексами кажется надежнее. Плюсом к этому, если через GUI вписать туда же число руками, то, судя по логу, оно впиcывается автоматом во все ячейки по Z:

*SET,TEST3D(0,3,1) , 666
*SET,TEST3D(0,3,2) , 666
*SET,TEST3D(0,3,3) , 666

Если считывать код, такого не происходит (см. скрин):

*dim,test3d,table,5,4,3,x,y,z
*taxis,test3d(0,3,0),2,666

 

Остается надеяться, что ANSYS сам дописывает внутри себя эти заголовки, просто они не отображаются =(

Добавить комментарий

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

Максимальный размер файла: 999 МБ.
Допустимые типы файлов: txt doc docx xls xlsx pdf rar zip 7zip tar.