Есть ли в Dymola сборник или справочник команд? Например, если я хочу узнать текущий рабочий каталог, какую команду мне следует использовать? Я пробовал pwd
и dir
, но они не работали.
Командный мануал в Дымоле
Ответы (2)
В браузере пакетов должен быть пакет под названием «Dymola Commands» или «DymolaCommands» (по крайней мере, с Dymola 2018).
Вы можете открыть его, как любой другой пакет, либо в браузере с помощью команд, либо щелкнуть правой кнопкой мыши и использовать «Поиск» (отметьте «Полная документация»).
person
Hans Olsson
schedule
10.12.2019
Есть несколько источников для поиска команд, которые я проверяю - без особого порядка - когда дело доходит до поиска новой команды:
- В Dymola 2020x «Руководство пользователя 1B» содержит раздел «2.5.19 Встроенные функции в Dymola», который дает хороший обзор по теме.
- При запуске Dymola автоматически загружается библиотека с именем
DymolaCommands
. Это можно найти с помощью записи "Поиск" в обозревателе пакетов (щелкнув правой кнопкой мышиDymolaCommands
- ›Поиск). - В окне «Команды» вы можете вызвать функцию
listfunctions()
, чтобы получить обзор функций, которые могут быть вызваны изначально из командной строки Dymola. Обычно имеет смысл искать текст с помощью CTRL + F после этого. - Библиотеки также могут предоставлять полезные функции. В качестве примера Стандартная библиотека Modelica предоставляет пакет
Modelica.Utilities
, в котором, например,Modelica.Utilities.Streams.print
можно использовать для отладки моделей путем нанесения строк в журнал моделирования. Еще одна полезная библиотека -ModelManagement
.
Есть несколько возможностей получить текущий каталог.
cd()
: К сожалению, это только распечатает каталог в выводе команды и вернетtrue
. Так что это больше для проверок вручную, хотя результат можно получить с помощьюgetLastError()
. И это специфично для Дмитрия.- При использовании стандартной библиотеки Modelica для управления рабочим каталогом используются следующие команды:
Modelica.Utilities.System.getWorkDirectory()
иModelica.Utilities.System.setWorkDirectory()
- Если вы хотите получить каталог исполняемого в данный момент скрипта, функция
classDirectory()
сделает это, используя Dymola ›2021.
person
Markus A.
schedule
10.12.2019
И в каком из всех этих ресурсов можно найти команды
pwd()
и ls()
, по запросу OP ...?
- person kotchwane; 22.04.2021
Добавил в ответ.
- person Markus A.; 22.04.2021
Спасибо! Итак, насколько я понимаю, не существует команды
ls()
, которая перечисляла бы файлы в текущей папке, как это делает dir
в Windows?
- person kotchwane; 22.04.2021
Вы можете использовать
Modelica.Utilities.System.command()
, который позволит вам запускать любую команду из командной строки ОС. Но вывод будет только true
или false
, поэтому потребуются некоторые дополнительные усилия, чтобы получить желаемый результат. Попробую узнать, есть ли более действенный способ ...
- person Markus A.; 26.04.2021
Чтобы вывод системных команд, таких как
ls
, был доступен в инструменте Modelica, вы должны перенаправить вывод в файл, а затем прочитать файл: Modelica.Utilities.System.command("ls > out.txt"); Modelica.Utilities.Streams.readFile("out.txt")
- person marco; 26.04.2021