Как добавить загрузочные библиотеки, изменить каталог и т. Д. При запуске?
Есть ли способ автоматически загружать библиотеки, переходить на определенный рабочий каталог и т. Д. При запуске Dymola?
2 ответа
Этот метод был протестирован для Dymola 2017FD01. Предыдущие версии использовали другой метод через setup.mos
скрипт, который больше не доступен. На данный момент нет возможности выполнить эти действия через графический интерфейс Dymola.
Это может быть легко выполнено через файл.mos с шагами, показанными ниже:
- Создайте файл.mos в месте, которое имеет смысл. Например,
C:\Users\USERNAME\Documents\Dymola\startup.mos
- Добавьте нужные действия
.mos
файл. Например, чтобы загрузить библиотеку добавитьopenModel("C:\\Users\\USERNAME\\Documents\\ModelicaLibrary\\package.mo");
- Dymola всегда помещает свои автоматически сгенерированные файлы в текущий рабочий каталог. Часто хорошей идеей является размещение этого местоположения в одном и том же месте, поэтому нет необходимости искать местоположение выходных файлов. Поэтому в конце
.mos
файл изменить текущий каталог:cd("C:\\Users\\USERNAME\\Documents\\Dymola");
- Если ярлыка для файла Dymola.exe не существует, создайте его.
- Щелкните правой кнопкой мыши ярлык и перейдите к
Properties
, ПодShortcut>Target
присоединять"C:\Users\USERNAME\Documents\Dymola\startup.mos"
в конце. Содержимое этой ячейки теперь должно выглядеть примерно так:"C:\Program Files (x86)\Dymola 2017 FD01\bin64\Dymola.exe" "C:\Users\vmg\Documents\Dymola\startup.mos"
- Вот и все. Когда Dymola запускается из этого ярлыка, действия, указанные в
.mos
файл должен быть выполнен.
Вопрос немного двусмысленный - другой ответ достаточно хорош для одного сценария. (Вызов openModel на шаге 2 можно изменить.)
Однако, если вы всегда хотите запустить Dymola в определенном каталоге и т. Д., Вы можете использовать графический интерфейс в Dymola 2017 FD01 (и немного отличаться от Dymola 2016 FD01):
- Изменить каталог (Файл> Изменить каталог)
- Добавить к пути Modelica (Файл> Путь Modelica)
- Сохраните эти настройки ("Правка"> "Параметры"> "Настройки": выберите "Запуск и путь Modelica").
Если вы хотите "предварительно загрузить" библиотеки, есть несколько вариантов: в скрипте запуска вы можете использовать import MyPackage;
или же openModel("...\\MyPackage.mo");
в качестве альтернативы, если вы являетесь администратором, вы можете изменить Dymola / insert / dymodraw.ini и добавить строку: Dymola5LibraryMenu "MyPackage"
(технически он не "загружается" - он просто показывает библиотеку в браузере пакетов).
Важным отличием является то, что изменение dymodraw.ini сохраняет библиотеку "загруженной" даже после "Очистить все".
В последние годы есть два варианта, которые могут вам помочь.
Файл> Управление библиотекой> Установить. Этот диалог позволяет вам открыть zip-файл или что-то подобное из распределенной библиотеки, установить его, обновить MODELICAPATH, чтобы найти его снова, и даже обновить меню Файл> Библиотеки, чтобы включить его для использования в будущем. Все за одну операцию.
Simulation> Edit startup.mos Если вы предпочитаете редактировать сценарий запуска, это удобный способ найти его и открыть для редактирования.
Вот процедура, которая позволяет одним щелчком загрузить набор библиотек. Он использует тот факт, чтоdymola.exe
может быть запущен с помощью сценария.mos в качестве первого аргумента.
Он разработан для таких ситуаций, как
- Вы используете Windows
- Вы работаете над одним или несколькими проектами
- Где каждый проект требует загрузки набора библиотек
- Каждый проект использует свой рабочий каталог
- Другие пользователи могут сотрудничать, поэтому им нужна такая же настройка
Требования
В первый раз настройка - это небольшая работа, но она выполняется очень быстро для дальнейших проектов. Тебе нужно:
- а
start.mos
файл в вашей библиотеке - переменные среды
DYMOLA_WD
а такжеMODELICA_LIBS
(Это требуется только для того, чтобы другие пользователи могли использовать разные пути для своих библиотек и рабочих каталогов) - ярлык для файла dymola.exe
Вот как start.mos
выглядит для конкретного проекта (обычно вы меняете только первые две строки):
// user setup
libs = {"Buildings 6.0.0", "PhotoVoltaics", "MyProject"}
wd = "myproject"
// open all libs
lib_dir = Modelica.Utilities.System.getEnvironmentVariable("MODELICA_LIBS");
lib_dir = Modelica.Utilities.Strings.replace(lib_dir, "\\", "/")
for l in libs loop
openModel(lib_dir + "/" + l + "/package.mo");
end for;
// change to wd
wd = Modelica.Utilities.System.getEnvironmentVariable("DYMOLA_WD") + "/" + wd;
wd = Modelica.Utilities.Strings.replace(wd, "\\", "/")
Modelica.Utilities.Files.createDirectory(wd)
cd(wd)
Теперь вы создаете ярлык для dymola.exe в проводнике файлов Windows. В полеTarget
Ты устанавливаешь
"C:\Program Files\Dymola 2020\bin64\Dymola.exe" "%MODELICA_LIBS%\MyProject\Resources\scripts\start.mos"
пример
Предполагая, что пользователь установил переменные среды
MODELICA_LIBS = E:\modelica
DYMOLA_WD = E:\dymola_wds
Для работы приведенного выше сценария структура папок на жестком диске пользователя должна выглядеть следующим образом:
E:\modelica
|- Buildings 6.0.0
|- package.mo
|- ...
|- PhotoVoltaics
|- package.mo
|- ...
|- MyProject
|- package.mo
|- ...
|- Resources
| |- scripts
| |- start.mos
|- ...
Теперь для запуска Dymola используется ярлык dymola.exe, который автоматически загружает необходимые библиотеки для проекта и меняет рабочий каталог.
Для другого проекта требуется новый ярлык, а также новый start.mos
сценарий.
Еще одно предложение, когда вам не нужно жестко кодировать ваш пакет в переменной среды вашей операционной системы (и, возможно, более безопасно для неопытных программистов):
- Перейдите в папку, в которой установлена Dymola (например, C:\Program Files\Dymola 2020).
- Найдите файл Dymola.mos во вложенной папке. 'вставить' папку
- Откройте скрипт (например, в блокноте ++)
- Добавьте сюда ссылку (ы) на ваш файл (ы) Dymola-library-package.mo с помощью оператора openModel, например openModel("C:/IDEAS/package.mo"); Скрипт Dymola.mos
- Сохраните сценарий. Теперь каждый раз, когда вы открываете Dymola, ваши библиотеки загружаются автоматически.