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

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

Здравствуйте.

Есть вопрос по поводу цикла do

далее привожу текст APDL

!Топологическая оптимизация

/OPT

TOCOMP,COMP,SINGLE,1

TOVAR,COMP,OBJ

TOVAR,VOLUME,CON,,25

TOTYPE,OC

TODEF,1.0e-4

*DO,n,1,100,1

TOLOOP,n,

*GET, S, TOPO, 0,CONV,

*IF,S,EQ,1,EXIT

*ELSE

*ENDIF

*ENDDO

Ансис почему то отказывактся считать.!!!!

Подскажите где косяк

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


Ансис почему то отказывактся считать.!!!!

Подскажите где косяк

Лично я ничего не понял, но все должно быть написано в логах.
Ссылка на сообщение
Поделиться на других сайтах

DO,n,1,100,1

TOLOOP,n,

*GET, S, TOPO, 0,CONV,

*IF,S,EQ,1,EXIT

*ENDDO

нельзя *else без *if,...,Then

2 Борман.

если не понял, зачем об этом всем сообщать...

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

Здравствуйте.

Вопрос такой. Нужно просчитать пять раз модель.

Задаю цикл ДУ.

Соответсвенно меняется сила. После каждого решени просчтывается рекации и пермещения. И так далее. Проблема в том что задача виснет в конце второго шага.

*DO,i,1,5,1,

/SOLU

!Расчет для случая 1

Sila=1960*i

F,124930,FZ,Sila

!Решение задачи

SOLV

/POST1

*IF,i,EQ,1,THEN

*GET,RES(1,1),NODE,124930,U,SUM,

*GET,RES(2,1),NODE,124932,RF,FZ,

*GET,RES(3,1),NODE,124933,RF,FZ,

*ENDIF

SAVE

*ENDDO

*ElSEIF,i,EQ,2

*GET,RES(1,2),NODE,124930,U,SUM,

*GET,RES(2,2),NODE,124932,RF,FZ,

*GET,RES(3,2),NODE,124933,RF,FZ,

*ENDIF

SAVE

*ENDDO

*ElSEIF,i,EQ,3

*GET,RES(1,3),NODE,124930,U,SUM,

*GET,RES(2,3),NODE,124932,RF,FZ,

*GET,RES(3,3),NODE,124933,RF,FZ,

*ENDIF

SAVE

*ENDDO

*ElSEIF,i,EQ,4

*GET,RES(1,4),NODE,124930,U,SUM,

*GET,RES(2,4),NODE,124932,RF,FZ,

*GET,RES(3,4),NODE,124933,RF,FZ,

*ENDIF

SAVE

*ENDDO

*ElSEIF,i,EQ,5

*GET,RES(1,5),NODE,124930,U,SUM,

*GET,RES(2,5),NODE,124932,RF,FZ,

*GET,RES(3,5),NODE,124933,RF,FZ,

*ENDIF

SAVE

*ENDDO

*ELSE

*ENDIF

*ENDDO

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

не могу догадаться, зачем столько раз делать save

для чего? ничего же не меняется в модели,

а резултаты дописываются в rst

виснет. возможно, пытаясь записать вместе с результатами

a если записать один раз по окончании цикла?

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

Можно попробовать так..

/SOLU

TIME,i

*DO,i,1,5,1,

Sila=1960*i

F,124930,FZ,Sila

SOLVE

*ENDDO

А затем выдергивать реакции и перемещения с нужного шага.. Тож циклом можно.

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

Вопрос в другом. Вот возьмем часть цикла.

В конце внутренего цикла находятся *ENDIF ,*ENDDO а нужны ли они здесь?????

*IF,i,EQ,1,THEN

*GET,RES(1,1),NODE,124930,U,SUM,

*GET,RES(2,1),NODE,124932,RF,FZ,

*GET,RES(3,1),NODE,124933,RF,FZ,

*ENDIF

*ENDDO

и еще просто у меня почему то в процессе решения только условие с i=1 работает остальные нет.

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

и еще просто у меня почему то в процессе решения только условие с i=1 работает остальные нет.

В принт-скрине чёрного окна можно увидеть на каком этапе зависает.
Ссылка на сообщение
Поделиться на других сайтах

У тебя слишком много ендифоф и ендду. Удали все отмеченное. В школе программирования не было?

*DO,i,1,5,1,

/SOLU

!Расчет для случая 1

Sila=1960*i

F,124930,FZ,Sila

!Решение задачи

SOLV

/POST1

*IF,i,EQ,1,THEN

*GET,RES(1,1),NODE,124930,U,SUM,

*GET,RES(2,1),NODE,124932,RF,FZ,

*GET,RES(3,1),NODE,124933,RF,FZ,

*ENDIF - убрать

SAVE

*ENDDO - убрать

*ElSEIF,i,EQ,2

*GET,RES(1,2),NODE,124930,U,SUM,

*GET,RES(2,2),NODE,124932,RF,FZ,

*GET,RES(3,2),NODE,124933,RF,FZ,

*ENDIF - убрать

SAVE

*ENDDO - убрать

*ElSEIF,i,EQ,3

*GET,RES(1,3),NODE,124930,U,SUM,

*GET,RES(2,3),NODE,124932,RF,FZ,

*GET,RES(3,3),NODE,124933,RF,FZ,

*ENDIF - убрать

SAVE

*ENDDO - убрать

*ElSEIF,i,EQ,4

*GET,RES(1,4),NODE,124930,U,SUM,

*GET,RES(2,4),NODE,124932,RF,FZ,

*GET,RES(3,4),NODE,124933,RF,FZ,

*ENDIF - убрать

SAVE

*ENDDO - убрать

*ElSEIF,i,EQ,5

*GET,RES(1,5),NODE,124930,U,SUM,

*GET,RES(2,5),NODE,124932,RF,FZ,

*GET,RES(3,5),NODE,124933,RF,FZ,

*ENDIF - убрать

SAVE

*ENDDO - убрать

*ELSE - убрать

*ENDIF

*ENDDO

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

to Влад.

СПС я уже разобрался.))))))

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

to Влад.

А что будет если добавить THEN

*ElSEIF,i,EQ,4,Then

Изменено пользователем Dimarik_AK
Ссылка на сообщение
Поделиться на других сайтах

В хелпе написано, что Then в *elseif не используется - the Base field is not used.

Хелп используешь? Там куча полезных и интересных вещей написано.

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

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

Здравсвуйте.

У меня есть такой интересный вопрос. Как сделать так чтобы матрица перестраивалась автоматом и постоянно не спрашивала менять ли размер матрицы или нет. Мой косячный код представлен ниже:

! Задание таблицы для мнимых плотностей

ETABLE,psdo,TOPO,

!Задание начального шага приращения плотностей

*DO,i,0.5,1,0.1

ESEL,S,ETAB,PSDO,i,i, ,0

*GET,kol_e,ELEM,0,COUNT

*dim,EX_ELEM_NUMB,ARRAY,kol_e,1,

*dim,EX_ELEM_SURF,ARRAY,kol_e,1,

*GET,EX_ELEM_NUMB(1),ELEM,0,NUM,MIN,

*DO,m,2,kol_e,1,

EX_ELEM_NUMB(m)=ELNEXT(EX_ELEM_NUMB(m-1))

*ENDDO

*DO,k,1,kol_e,1

*GET,EX_ELEM_SURF(k),ELEM,EX_ELEM_NUMB(k),AREA,

*ENDDO

ALLSEL,ALL

*VSCFUN,AREA_SUM, SUM,EX_ELEM_SURF,

pogr=((S_Red-AREA_SUM)/S_Red)

*IF,pogr,LE,0.01,EXIT,

*ENDDO

Описание

1. задаю таблицу жесткостей

2. Выбираю елементы с соответсвующей жесткостью

3. Создаю таблицы куда записываю номера элементов далее матрицу со значением площадей

4. Далее высчитываю погрешность

5. После цикла до снова возвращаемся меняется число элементов и соответсвенно размер матрицы

Он постоянно спрашивает менять размер или нет

Ужас Помогите

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

скажите где ошибки народы!

*set,k1,3.55

*set,k2,-0.546

*GET,n_count,NODE,0,COUNT

*GET,n_num,NODE,0,NUM,MIN

*del,Se

*DIM,Se,TABLE,n_count,2

Se(0,1)=1

Se(0,2)=2

*do,i,1,n_count,1

*GET,s1,NODE,n_num,s,1

*GET,s2,NODE,n_num,s,2

*GET,s3,NODE,n_num,s,3

s123=(s1+s2+s3)/3

t=sqrt((s1-s2)**2+(s2-s3)**2+(s3-s1)**2)

t1=t/sqrt(6)

ch=s123/t1

lamdap=k1*exp(k2*ch)

Se(i,0)=i

Se(i,1)=n_num

Se(i,2)=lamdap

*GET,n_num,NODE,n_num,NXTH

dnsol,Se(i,1),S,int,lamdap

*endd

большое спасибо

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

на беглый взгляд не видно.

а как проверять? без задачи..

диагностика-то хоть какая?

что не получается?

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

Здравствуйте!

Возникла необходимость вывести в отдельный файл собственные вектора модели после модального анализа.

Исследование форума и хелпа ничего не дало.

Подскажите, как это можно сделать?

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

Здравствуйте!

Возникла необходимость вывести в отдельный файл собственные вектора модели после модального анализа.

Исследование форума и хелпа ничего не дало.

Подскажите, как это можно сделать?

А что это значит "записать в файл собственный вектор"?. Можете привести пример на пальцах ?
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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




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