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

Выбор нужных узлов


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

День добрый!

Подскажите, пожалуйста, как задать массив данным по координатам для выделенных узлов?

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

Спасибо!

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


Вот в этой теме <noindex>http://fsapr2000.ru/index.php?showtopic=43254</noindex> я приводил код для перебора узлов по выделенному множеству.

Координаты узлов определяются командами NX(номер_узла), NY(...), NZ(...)

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

Борман, спасибо за подсказку, а можно по подробней, пожалуйста. Допустим, я создал множество как теперь для каждого узла этого множества определить координаты :confused_1: ?(я не очень силен в программировании :blush: , только учусь, и буду признателен за подсказки)

///

ksel,s,loc,y,0,-2*a

nslk,s

cm,n1,node

I=1

NV=0

*DOWHILE,I ! - перебираем

CMSEL,S,n1 ! - по этому множемству

*GET,NV,NODE,NV,NXTH !- берем на каждом шаге "следующий узел NV", начиная с условного нуля

*IF,NV,EQ,0,THEN

*EXIT ! - если что, выходим

*ENDIF

ALLSEL,all

NX(n1)-????

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

Если я правильно понимаю то после выполнения цикла dowhile он должен выводить список выделенных узлов, но этого не происходит, ведь *get создает скалярный параметр а не массив и в результате он выводит NV=0??? Что не так?

finish

/clear

/prep7

/title,Capacitence of beams

a=10e-3

b=100e-3

et,1,182

mp,ex,1,210e9

mp,nuxy,1,0.2

mp,dens,1,7850

rectng,b/2,b/2+b,a/2,a/2+a

rectng,b/2,b/2+b,-a/2,-a/2-a

mshape,0 ! Mesh air region

amesh,all

lsel,s,loc,x,,b/2,,1

d,all,all

allsel

lsel,s,loc,x,b/2+b,,,1

d,all,UY,5e-3

allsel

finish

/replot

/solve

antype,static

deltim,1,1,1

solve

finish

ksel,s,loc,y,0,-2*a

nslk,s

cm,n1,node

*get,nn,node,,count

I=1

NV=0

*DOWHILE,I ! - перебираем

CMSEL,S,n1 ! - по этому множемству

*GET,NV,NODE,NV,NXTH !- берем на каждом шаге "следующий узел NV", начиная с условного нуля

*IF,NV,EQ,0,THEN

*EXIT ! - если что, выходим

*ENDIF

I=I+1!- расчет окончен. :)

*ENDDO

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

Уважаемые!

Ещё один маленький вопросик, как в цикле записывать значение в массив, чтоб в дальнейшем строить график, например изменения емкости:

*do,zz,1,25,12

.....

.....

/solu

cmatrix,50,'conder',3,0,'plotr'

finish

Как правиьно записать эту часть?

/post1

*dim,plotc,,3

*vread,plotc(zz),plotr,txt,,,3

finish

*enddo

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

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

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

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

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

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

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

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

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

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

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




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