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

Запись результатов в отдельный файл и циклы


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

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

У меня два насущных вопроса:

1) Пусть есть какая-то моделька. Совершенно любая. Для примера во вложенном файле кронштейн.

Я хочу, чтобы ansys записал мне в отдельный файл значения экв напряжений в двух точках. Для этого пишу

*GET, sigma1, node, 2, s, eqv,,

*GET, sigma2, node, 42, s, eqv,,

*CREATE,ansuitmp

*CFOPEN, 'D:\result', txt,,

*VWRITE,sigma1,sigma2,,, , ,, ,,, , , , ,, , , ,

(f10.4)

*CFCLOS

*END

/INPUT,ansuitmp

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

13.9722

0.4401

Затем я хочу, чтобы он мне записал напряжения в двух других точках в этот же текстовый файл во второй столбец. как это сделать? сколько не возился с синтаксисом - не получается.

Т.е. опять должно быть

*GET, sigma3, node, 3, s, eqv,,

*GET, sigma4, node, 40, s, eqv,,

*CREATE,ansuitmp

*CFOPEN, 'D:\result', txt,,append - чтобы не затирался старый файл

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

13.9722 sigma3

0.4401 sigma4

2) Есть ли возможность в adpl писать циклы? Т.е. допустим есть круглая пластинка с радиусом равным 3;4;5;6;7. Можно ли написать цикл, чтобы вручную не писать каждый раз новое значение радиуса?

Я почитал help, но конкретно там ничего не сказано кроме того, что есть команды *CYCLE, *ENDDO , *DO. Т.е. непонятно как их использовать.

На счёт этого вроде понял, как делать. Но если у кого есть наглядный примерчик - буду рад :)

Заранее благодарю)

ADPL.txt

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


"кроме того, что есть команды *CYCLE, *ENDDO , *DO. Т.е. непонятно как их использовать.

" - в примерах то посмотрите или хелпе. Все разжевано и элементарно. :)

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

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

У меня два насущных вопроса:

1) Пусть есть какая-то моделька. Совершенно любая. Для примера во вложенном файле кронштейн.

.....

2) Есть ли возможность в adpl писать циклы? Т.е. допустим есть круглая пластинка с радиусом равным 3;4;5;6;7. Можно ли написать цикл, чтобы вручную не писать каждый раз новое значение радиуса?

ADPL.txt

1. Предлагаю прописать этот макрос вначале, а потом просто его использовать, чтобы не загромождать текст программы

*CREATE,ansuitmp

*CFOPEN, 'D:\result', txt,,append

*VWRITE,sigma1,sigma2,,, , ,, ,,, , , , ,, , , ,

(f10.4)

*CFCLOS

*END

.....

текст программы

......

*GET, sigma1, node, 2, s, eqv,,

*GET, sigma2, node, 42, s, eqv,,

*use, ansuitmp

*GET, sigma1, node, 3, s, eqv,,

*GET, sigma2, node, 40, s, eqv,,

*use, ansuitmp

2. Циклы писать можно и нужно )))

*do,r,3,7,1

......

*enddo

Если планируется менять геометрию, то в цикле придется удалять сетку и геометрию и перестраивать все заново, т.е.

*do,r,3,7,1

....

CYL4, , ,r

...моделирование и расчет....

...вывод результатов...

allsel,all

aclear,alll ! удаляем сетку

adele,all,,,1 ! удаляем геометрию

*enddo

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

1. Предлагаю прописать этот макрос вначале, а потом просто его использовать, чтобы не загромождать текст программы

2. Циклы писать можно и нужно )))

Спасибо за разъяснения про циклы :smile: Действительно синтаксис понятен и не сложен.

На счёт первого ответа не совсем понял. Т.е. согласен, что так не загромождается текст и выглядит красивее. Но вы не знаете, как сделать, чтобы первые два числа были записаны в первый столбец, а вторые два во второй столбец? Тут просто синтаксис fortrana используется, а его я не знаю :(

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

<noindex>http://www.eng.umd.edu/~nsw/ench250/fortran1.htm</noindex> тут есть

Спасибо, за первую ссылку с гугла ;)

Но я задал конкретный вопрос про написание второго столбца. Я, конечно, перед тем как написать здесь, потратил некоторое время, чтобы справиться самостоятельно и продолжаю пробовать и сейчас. Пока не срастается. Поэтому и спрашиваю тут, сталкивался ли с этим кто-нибудь :)

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

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

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

А в чем в принципе разница? Выводите результаты в строку и дело с концом. А если уж так необходимо, чтобы значения были в столбцах, выведите сначала в строку, а потом полученный список обработайте какой-нибудь другой программой.

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

(f10.4, f10.4) - попробуйте записать так, а потом транспонируйте где-нибудь

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

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

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

Dandy, sergeyd

Спасибо за советы. Видимо буду выводить в строчки, а потом с помощью программки в matlab преобразовывать в нужный мне вид.

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

Что бы не открывать новую тему, решил задать вопрос в этой ветке, т.к. он также связан с циклами.

Требуется провести множество расчетов для геометрий, отличающихся между собой только местами вырезов. На входе есть готовая сетка в формате inp, которую я читаю

/INPUT,'1','inp','D:\models\',, 0

Вопрос в следующем: как в цикле использовать команду /INPUT, чтобе после одного расчета и вывода данных старая сетка удалялась, и опять же черех /INPUT забрасывалась новая?

P.S.

Если написать

*do,i,1,50,1

/INPUT,'i','inp','D:\models\',, 0

...

*enddo

то естественно не сработает :)

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

*do,i,1,50,1

/INPUT,'i','inp','D:\models\',, 0

...

*enddo

*do,i,1,50,1

/INPUT,'i','inp','D:\models\',, 0

...

<<ВЫТАЩИТЬ ВСЕ НУЖНЫЕ РЕЗУЛЬТАТЫ>>

FDELE,all

DDELE,all

EDELE,all

и т.п.

*enddo

Должно сработать.

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

*do,i,1,50,1

/INPUT,'i','inp','D:\models\',, 0

...

<<ВЫТАЩИТЬ ВСЕ НУЖНЫЕ РЕЗУЛЬТАТЫ>>

FDELE,all

DDELE,all

EDELE,all

и т.п.

*enddo

Должно сработать.

Как раз-таки счетчик по i не работает. В этом то и вся проблема. Он i понимает буквально, а не как число :(

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

пиши вместо `i`

%i%

В точку, все заработало !!! :clap_1:

Спасибо, Влад.. А откуда такие познания ? Мот посоветуете какой нить мануальчик по apdl :g: ?

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

Всякие руководства по APDL.

Влад, спасибо большое за информацию, с удовольствием поизучаю :)
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • ispite
      Уточнение: к стене крепить тоже можно, исправил картинку. Нашёл вот такой кронштейн, но складывается не в ту сторону.  
    • gudstartup
      так как же узнать какая версия тиа была использована в проекте который лежит в памяти контроллера вашего чпу? иначе придется иметь все тулбоксы и все версии тиа а это терабайты места да и как они уживутся на одном программаторе - это просто жесть! Сименсу надо за это  у фанука тоже есть несовместимость с ладдером но их программа хотя бы гигабайты не отъедает
    • vad0000
      Это Вы про рефракцию упоров? Там есть задержка ретракции
    • ispite
      Здравствуйте, подскажите кронштейн или петлю с креплением к "потолку" с двумя фиксированными положениями, как указано на рисунке, нагрузка примерно 8кг.   Ну или какие-нибудь похожие устройства порекомендуйте пожалуйста, не могу ничего найти. PS надеюсь правильный раздел выбрал
    • Srgwell
      нет, а что это за диковинная вещь. Предполагаю, что это штатные исполнения, но это дольше. Руками надо делать много, я ленивый. Блины печь не люблю, а есть люблю
    • nevyin
      Здравствуйте! Суть проблемы: был создан сборочный чертеж, при добавлении листа со спецификацией ей присваивается КОД, что она является сборочным листов и прописывается "СБ" в обозначении и "сборочный чертеж" в наименовании. Также на сборочном и в спецификации прописывается количество листов, что они связаны и спецификация как-будто идёт вторым листом. Если удалить со сборочного или спецификации код "СБ" или надпись "сборочный чертеж", то эти надписи пропадают на обоих чертежах.    Подскажите пожалуйста, можно ли убрать связь надписи "СБ" в обозначении и "сборочный чертеж" с листа спецификации без удаления его с сборочного, а также связь по листам?  Ну или можно ли отключать как-то связь листов и как?
    • Артур8991
      Опускания стало медленное и упоры уезжают до того как опустился плансон коснувшись металла
    • OutXL
      Есть на DMU 60T, могу выслать.  
    • ID_Hacker
      При попытке выгрузить программу из контроллера ТИА ругается на версию. Выдаёт сообщение о версии портала на котором написана ПО.   Именно так в ТИА и происходит - подбирать версию. У нас на производстве приходилось держать на программаторе 13, 14, 15, 16 версии ТИА из-за того, что между собой они не совместимы, а оборудование устанавливалось не единовременно, а на протяжении 5-10 лет. Ну а дать неделю на обновление, миграцию и пусконаладку производство не могло. Однажды вообще столкнулись с тем, что ТИА 15.1 не поддерживает один конкретный модуль в составе оборудования станка, пришлось обновляться до 16й версии и много что переписывать. Последние поколения оборудования поддерживаются только последними ТИА, некоторые старые контроллеры в новые версии ТИА уже не входят. А какой был треш при переходе с 12й версии на 13ю, это как в своё время с ProTool на WinCC Flexible перейти.   Я почти уверен, что версии тулбокса идут под конкретную версию ТИА, потому что дополнения для ТИА, модули и т.д. нельзя использовать не со своей версией ТИА
    • Rshevskiy
      Здравствуйте! Есть возможность отредактировать имеющийся мой пост под работу с симко? Циклы Блюм. МК22 Самому пока трудно разобраться  
×
×
  • Создать...