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

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


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

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

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

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 пользователей

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




  • Сообщения

    • Sivolap36
      Нашёл параметры от одного из известных поставщиков поворотного стола. Может кому-то пригодится   Detron 210z.pdf
    • ID_Hacker
      Для обмена пользовательскими данными между NC и PLC зонами есть системная функция FC21. Позволяет читать и записывать данные в программе PLC из/в зону $A_DBB[x], $A_DBD[x] и т.д. Можно найти в документации по системным переменным NC PLC.   Программа PLC загруженная определённой версией TIA может быть выгружена только этой или более старшей версией TIA.  Step7 и TIA не совместимы даже на S300, S400 контролерах, в виду разных версий прошивок контроллеров.   Toolbox нужен для того, что в Sinumerik не просто PLC а связка PLC, CU, NC и CP, и стандартный Step или TIA просто не понимает аппаратную конфигурацию контроллера без ToolBox.   Здесь проблема программирования станка производителем. Он не ожидает завершения выполнения М команды от PLC. Либо проблемы в электроавтоматике и команда завершается до зажима патрона - например реле давления зажима всегда даёт сигнал.   Проекты реализованные на TIA хранят в контроллере не только программу, но и все комментарии и данные. Если не стоит защита паролем выгружается всё в том же виде в котором было загружено.
    • noindex
      Да, выбор второй плоскости помог, спасибо!     К счастью без понятия что сейчас проходят в школе, а что проходили в 80-90-х, когда я ходил в школу, уже не помню.   Да не, всё понятно, спасибо что заморочились с видео)!
    • ID_Hacker
      PROC CYCLE977(INT S_MVAR, INT S_KNUM, INT S_KNUM1, INT S_PRNUM, REAL S_SETV, REAL S_SETV0, REAL S_SETV1, REAL S_FA, REAL S_TSA, REAL S_STA1, REAL S_ID, REAL S_SZA, REAL S_SZO, INT S_MA, INT S_NMSP, STRING[32] S_TNAME, INT S_DLNUM, REAL S_TZL, REAL S_TDIF, REAL S_TUL, REAL S_TLL, REAL S_TMV, INT S_K, INT S_EVNUM, INT S_MCBIT, INT _DMODE, INT _AMODE, REAL S_XM, REAL_S_YM, INT _DP) Вызов функции со всеми возможными аргументами     Измерительные циклы Руководство по программированию, 01/2023, A5E52046203P AB - страница 355 - это для 828D SL     Здесь для 840D - SINUMERIK 840D/840Di/810D/FM-NC Measuring Cycles - страница 341 (6FC5298-3AA01-0BP0) артикул документации.
    • zwg
      Непонятно, где корректировать, эти самые 10 поправок, у CYBELEC... Где они для угла, в связке с толщиной листа? Коэффициент и тп...  И я не о корректировке индексных точек, а о реальном металле. Такое а системе есть? Например вижу наличие коррекции для каждого угла 30, 60,,, 90 и тд. Это же общая коррекция для всех толщин? 
    • Kelny
      Проверьте галочку (галочки быть не должно): Инструменты-Параметры...-Настройки пользователя-Качество изображения-Использовать программу OpenGL
    • maxx2000
      к сожалению это и есть весь пример. Только не бухти что интерфейс в видео незнакомый. Вместо отрезка можешь построить ось, использовать ребро тела и т.д. и т.п.   Видео 04-06-2024 172055.mp4
    • Ветерок
      Вообще-то, это не рисование, а банальная начертательная геометрия. Или её теперь не проходят в школе?
    • Kelny
      Вероятно разблокировку делает патч с официального сайта, но не смотря на то что позиционируется для профкарт, вероятно делает описанное в видео и с другими картами:  
    • Alexey8107
      Их официальный номер пока еще работает . На нем сейчас пока еще стоит переадресация. В общем не знаю что за организация, завтра займусь наверное этим. На словах и сервисный инженер у них катается по стране. Что-то мне подсказывает сервисники остались теже . Вобщем в ближайшее время займусь, гляну по реквизитам что за организация.
×
×
  • Создать...