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

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


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

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

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

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

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




  • Сообщения

    • Bot
      Оригинал: Roopinder Tara. Watch this space: Here come manufacturable generative designs Такие кронштейны демонстрируют облегчение конструкции с помощью топологии. У этого кронштейна острые края и гладкие поверхности, это означает, что деталь еще можно подвергнуть машинной обработке, чтобы сделать ее максимально легкой Мы уже знакомы с Майклом Богомольным — мы встречались с ним на его предыдущем предприятии ParaMatters, которое было продано Carbon, компании по производству 3D-принтеров, в августе 2022 года. После этого он собрал свою команду ParaMatters (шестеро из них имеют докторскую степень) и получил инвестиции в размере 2,5 млн долларов для запуска InfinitForm. Эта компания вполне может создать первое генеративное программное обеспечение, которое проектирует подходящие для использования и производства детали. Крупные поставщики САПР могут заявить, что их программное обеспечение для генеративного проектирования имеет возможности для создания [...] View the full article
    • lux59
      построить дугами барашку я пробовал, не то слегка, он в списке выдаст количество сегментов, да норм сделаю покажу, что вышло, правда пришлось делать сборкой не единой деталью, в общем я понял как это работает, Спасибо за помощь!
    • lem_on
      Ага, особенно некоторых бестолочей со своим пониманием реальности.  По типу, я скачал программу, я так вижу, я пишу книгу. 
    • malvi.dp
      Так в чем проблема создать кривую и протянуть профиль? Единственная трудность это кривую сделать из дуг и отрезков, а не сплайном. Если же не использовать инструментарий сварных конструкций, то можно и сплайн использовать в качестве направляющей.  
    • Alexey0336
      Добрый день. Как то фигурировал тут вопрос с точкой в названии файла. У меня проблема, не могу захватить модель, пишет, что с этим символом нельзя. Обойти никак нельзя получается?
    • malvi.dp
      У вас там скорее всего скрыты размеры. Перетяните их дальше от штриховки, чтоб не пересекали.
    • Snake 60
      @Бестолковый С названием топика не ошиблись? Человек спрашивает: ' VBA ' 1. Open a document in SOLIDWORKS. ' 2. Run the macro below to set inch units with '     a fractional base of 16 and no rounding. Dim swApp As SldWorks.SldWorks Dim Part As SldWorks.ModelDoc2 Option Explicit Sub main()    Set swApp = Application.SldWorks    Set Part = swApp.ActiveDoc    Part.SetUnits swINCHES, swFRACTION, 16, 0, False End Sub   Код взят отсюда: https://help.solidworks.com/2019/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.imodeldoc2~setunits.html Вот еще описание всех методов: https://help.solidworks.com/2021/English/api/swconst/DP_Units.htm Ну и на вкусное, статья от Артема (см. через ВПН) https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://www.codestack.net/solidworks-api/options/document/set-units/&ved=2ahUKEwjgpL-apN6GAxU7HxAIHYO0D2IQFnoECBAQAQ&usg=AOvVaw15xq49gocoVQ5BzEA31qGf
    • Shvg
      IModelDocExtension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitSystem, swUserPreferenceOption_e.swDetailingNoOptionSpecified, swUnitSystem_e.<Value>), где swUnitSystem_e.<Value> перечисление swUnitSystem_CGS           1 = Centimeter, gram, second  swUnitSystem_Custom        4 = Lets you set length units, density units, and force  swUnitSystem_IPS           3 = Inch, pound, second  swUnitSystem_MKS           2 = Meter, kilogram, second  swUnitSystem_MMGS          5 = Millimeter, gram, second   
    • Ветерок
      Вопрос про "включение RGK". Если в модели какие-то функции сделаны с использованием RGK, эта модель будет работоспособной на другом компе, где RGK "не включен"? И вообще не понятно, получается система использует два разных ядра одновременно? Или включая RGK, автоматически выключается Прасолид? А обратно переключиться можно? Если можно итак, и так, и туда, и обратно, тогда не понятно зачем вообще это включение-выключение.
    • TVM
      Так на скорую руку строились. Ясно что такое воспроизвести в живую затруднительно. 
×
×
  • Создать...