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

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


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

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

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

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

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




  • Сообщения

    • boomeeeer
      Не помню чтобы у меня такое спрашивали при регистрации.
    • Snake 60
      @eljer0n  Откройте макрос SaveDRW.swp редактором VBA Найдите вот эти строки: Поменяйте выделенную цифру на нужную вам 3 или 4 - это количество символов которое останется от имени конфигурации. PS При сохранении в PDF тоже ругается на неправильное название чертежа, т.к. тоже обрезает название конфигурации до двух знаков, там тоже надо править при желании...
    • eljer0n
      @malvi.dp в общем порядок следующий (на каждое исполнение свой чертеж и позиция в спецификации):   Для исполнения с 2мя знаками. 1. Есть деталь с именем формата ХХ-01.01-01 (последнее -01 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации (как у вас на картинке). Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с корректным именем. 5. В спецификации сборки все отображается корректно.     Для исполнения с 3мя знаками. 1. Есть деталь с именем формата ХХ-01.01-011 (последнее -011 это исполнение) 2. В Мпроп детали назначается исполнение из конфигурации. Отображается корректно 3. Создается чертеж по модели, исполнение в основной надписи чертежа детали отображается корректно. 4. Сохраняется через SaveDRW с некорректным именем, а именно - с обрезанным до двух знаков исполнением (-01). 5. В спецификации сборки шифр отображается (внезапно! может какой глюк был: у солида или у меня ) корректно, как и у вас на рисунке.     Выходит, загвоздка все-таки только в сохранялке чертежа.
    • gudstartup
      да информация о решенной проблеме очень важна так что будем ждать хороших новостей!
    • mrVladimir
      @gudstartup Спасибо Вам за помощь. Теперь дело в приобретении платы. Как что-то получится (сперва приобрести, потом поставить) обязательно отпишусь.
    • gudstartup
      а как вы taxid фирмы нашли?
    • gudstartup
      все что я написал в цитате выше по теме полная фигня в связи с вновь приобретённой информацией. можно менять любые компоненты в пределах серии чпу если только не меняете по или записываете oprminf но  всегда могут быть нюансы  @mrVladimir все должно получиться извините за то что выдал непроверенную информацию за мнение типа знающего эксперта оказывается я 
    • malvi.dp
      Какое у детали имя файла и как формируете Обозначение и Наименование? Вы каждое исполнение сохраняете в новый чертеж? Или это групповой чертеж? Если групповой-то имя конфигурации в нем быть не должно. Стоит ли галочка "Исполнение" "Из конфигурации"? На сколько мне не изменяет память макрос сохраняет файл чертежа с тем же именем что и файл модели в папке модели. В спецификации все правильно отображается, даже если знаков исполнений больше трех  
    • gudstartup
      и главная деталь чтобы на системе была remote option system а именно файл oprminf.000 c сертификатами и были ли проблемы с ними после замены компонентов.
    • boomeeeer
      с него родимого
×
×
  • Создать...