Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ansys_release_10_0_documentation_apdl.pdf
Скачиваний:
890
Добавлен:
12.03.2015
Размер:
1.6 Mб
Скачать

ANSYS Release 10.0 Documentation / APDL Programmer's Guide

1 для примечания

2 для предупреждения

3 для ошибки

4.7.Использование макросов с отдельными компонентами и блоками

Чтобы сделать большие модели легко управляемыми, Вы можете разделить модель на отдельные компоненты, основанные на различных типах объектов: узлах, элементах, точках, линиях, поверхностях или объемах. Каждый компонент может содержать только один тип объекта. Это даст Вам возможность легко выполнить задачи типа приложения нагрузок или создания графических видов по отдельности на различных частях модели.

Вы можете также создать блоки, которые являются группами скомбинированными из двух или более компонентов или даже мультиблоки. Вы можете вкладывать блоки до пятого уровня вложенности. Например, Вы можете построить блок, названный motor из компонентов по имени STATOR, PERMMAG, ROTOR, и WINDINGS.

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

носительно компонентов и сборок см. Selecting and Components в ANSYS Basic Analysis Guide.

СМ

Группы элементы геометрии в компонент.

CMDELE

Удаляет компонент или блок.

CMEDIT

Редактирует существующий компонент или блок. ANSYS обновляет

 

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

 

блоков.

CMGRP

Компоненты групп и блоки в один блок. Однажды определенный блок

 

может быть выведен в листинг, удален, селектирован или анселектиро-

 

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

CMLIST

Листинг объектов, содержащихся в компоненте или блоке.

CMSEL

Выбирает подмножество компонентов и блоков.

4.8. Примеры макросов

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

!Макрос смещает выбранные узлы в PREP7

!Следующий ниже файл сохранен как: offset.mac (нижний регистр)

!Использование: offset,dx,dy,dz

/nop

! подавление вывода команд для этого макроса

 

*get,nnode,node,,num,max

! получить количество узлов

 

*dim,x,,nnode

! определение массивов для координат узлов

 

*dim,y,,nnode

 

 

 

*dim,z,,nnode

 

 

 

*dim,sel,,nnode

! определение массива для выбранного вектора

*vget,x(1),node,1,loc,x

! получение координат

 

 

 

Буквари для Инженеров http://cyberkolbasa.com1.ru

стр. 65 из 76

ANSYS Release 10.0 Documentation / APDL Programmer's Guide

*vget,y(1),node,1,loc,y

*vget,z(1),node,1,loc,z

*vget,sel(1),node,1,nsel ! получение выбранного набора данных

*voper,x(1),x(1),add,arg1 ! местоположение смещения *voper,y(1),y(1),add,arg2

*voper,z(1),z(1),add,arg3

!

*do,i,1,nnode

!

сохранение нового положения

!

*if,sel(i),gt,0,then

!

такая форма требует 98 сек. для 100000 узлов

!n,i,x(i),y(i),z(i)

!*endif

!*enddo

*vmask,sel(1)

! требуется 3 сек. для

100000 узлов

n,(1:NNODE),x(1:NNODE),y(1:NNODE),z(1:NNODE)

 

x(1) = ! удаление параметров

y(1) =

z(1) = sel(1) = i= nnode=

/go

! отмена подавления вывода команд

Следующий пример макроса, названный bilinear.mac, создает два билинейных материала. Это полезный макрос, который может быть выполнен после выполнения статического анализа. Материал 1 - свойства растяжения и Материал 2 - свойства сжатия. ARG1 - число итераций (значение по умолчанию - 2).

/nop

_niter = arg1 *if,_niter,lt,2,then

_Niter = 2 *endif *do,iter,1,_niter /post1

set,1,1

*get,ar11,elem,,num,maxd *dim,_s1,,ar11 *dim,_s3,,ar11 etable,sigmax,s,1 etable,sigmin,s,3

*vget,_s1(1),elem,1,etab,sigmax *vget,_s3(1),elem,1,etab,sigmin *dim,_mask,,ar11 *voper,_mask(1),_s1(1),lt,0 *vcum,1

*vabs,0,1 *voper,_mask(1),_s3(1),gt,_s1(1) finish

!ввод количества итераций

!цикл с заданным числом итераций

!получение количества элементов

!массив для элемента s1

!массив для элемента s3

!s1 is in element table sigmax

!s3 is in element table sigmin

!get element maximum stress in s1

!get element minimum stress in s3

!array for mask vector

!true if max. stress < 0

!accumulate compression elements

!absolute value of s3

!true if abs(minstr) > maxstr

/prep7

 

! go to prep7 for element material mods

mat,1

! set all materials to tension properties

emod,all

 

 

*vput,_mask(1),elem,1,esel

! select compression elements

mat,2

! change selected elements to compression

emod,all

 

 

 

 

Буквари для Инженеров http://cyberkolbasa.com1.ru

стр. 66 из 76

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]