Как добавить загрузочные библиотеки, изменить каталог и т. Д. При запуске?

Есть ли способ автоматически загружать библиотеки, переходить на определенный рабочий каталог и т. Д. При запуске Dymola?

2 ответа

Решение

Этот метод был протестирован для Dymola 2017FD01. Предыдущие версии использовали другой метод через setup.mos скрипт, который больше не доступен. На данный момент нет возможности выполнить эти действия через графический интерфейс Dymola.

Это может быть легко выполнено через файл.mos с шагами, показанными ниже:

  1. Создайте файл.mos в месте, которое имеет смысл. Например, C:\Users\USERNAME\Documents\Dymola\startup.mos
  2. Добавьте нужные действия .mos файл. Например, чтобы загрузить библиотеку добавить openModel("C:\\Users\\USERNAME\\Documents\\ModelicaLibrary\\package.mo");
  3. Dymola всегда помещает свои автоматически сгенерированные файлы в текущий рабочий каталог. Часто хорошей идеей является размещение этого местоположения в одном и том же месте, поэтому нет необходимости искать местоположение выходных файлов. Поэтому в конце .mos файл изменить текущий каталог: cd("C:\\Users\\USERNAME\\Documents\\Dymola");
  4. Если ярлыка для файла Dymola.exe не существует, создайте его.
  5. Щелкните правой кнопкой мыши ярлык и перейдите к 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"
  6. Вот и все. Когда Dymola запускается из этого ярлыка, действия, указанные в .mos файл должен быть выполнен.

Вопрос немного двусмысленный - другой ответ достаточно хорош для одного сценария. (Вызов openModel на шаге 2 можно изменить.)

Однако, если вы всегда хотите запустить Dymola в определенном каталоге и т. Д., Вы можете использовать графический интерфейс в Dymola 2017 FD01 (и немного отличаться от Dymola 2016 FD01):

  1. Изменить каталог (Файл> Изменить каталог)
  2. Добавить к пути Modelica (Файл> Путь Modelica)
  3. Сохраните эти настройки ("Правка"> "Параметры"> "Настройки": выберите "Запуск и путь Modelica").

Если вы хотите "предварительно загрузить" библиотеки, есть несколько вариантов: в скрипте запуска вы можете использовать import MyPackage; или же openModel("...\\MyPackage.mo"); в качестве альтернативы, если вы являетесь администратором, вы можете изменить Dymola / insert / dymodraw.ini и добавить строку: Dymola5LibraryMenu "MyPackage" (технически он не "загружается" - он просто показывает библиотеку в браузере пакетов).

Важным отличием является то, что изменение dymodraw.ini сохраняет библиотеку "загруженной" даже после "Очистить все".

В последние годы есть два варианта, которые могут вам помочь.

  1. Файл> Управление библиотекой> Установить. Этот диалог позволяет вам открыть zip-файл или что-то подобное из распределенной библиотеки, установить его, обновить MODELICAPATH, чтобы найти его снова, и даже обновить меню Файл> Библиотеки, чтобы включить его для использования в будущем. Все за одну операцию.

  2. 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 сценарий.

Еще одно предложение, когда вам не нужно жестко кодировать ваш пакет в переменной среды вашей операционной системы (и, возможно, более безопасно для неопытных программистов):

  1. Перейдите в папку, в которой установлена ​​Dymola (например, C:\Program Files\Dymola 2020).
  2. Найдите файл Dymola.mos во вложенной папке. 'вставить' папку
  3. Откройте скрипт (например, в блокноте ++)
  4. Добавьте сюда ссылку (ы) на ваш файл (ы) Dymola-library-package.mo с помощью оператора openModel, например openModel("C:/IDEAS/package.mo"); Скрипт Dymola.mos
  5. Сохраните сценарий. Теперь каждый раз, когда вы открываете Dymola, ваши библиотеки загружаются автоматически.
Другие вопросы по тегам