У меня есть собственный пакет, который я постоянно использую в моделях Dymola, и я хотел бы поместить этот пакет в общий каталог, который автоматически загружается при запуске Dymola. Моя текущая стратегия - загрузить пользовательский пакет при загрузке модели, над которой я работаю, а затем сохранить общую сумму. Это не изящно, потому что содержимое настраиваемого пакета в конечном итоге сохраняется в нескольких местах на моем жестком диске, и если я изменю одно из них, изменения не отразятся повсюду. Я хотел бы более надежный способ распространения этого специального пакета на все мои модели. Есть ли способ указать Dymola автоматически загружать мои индивидуальные пакеты каждый раз?
Как я могу добавить собственный пакет в путь запуска в Dymola / Modelica?
Ответы (5)
Хитрость заключается в том, чтобы добавить следующие строки в settings.mos в c: / Users / USERNAME / AppData / Roaming / Dynasim:
Utilities.setenv("MODELICAPATH", "C:\Users\USERNAME\Documents\Dymola");
openModel("c:\Users\USERNAME\Documents\Dymola\UserDefined\package.mo")
Первая строка добавляет каталог к пути, который Dymola использует для поиска пакетов, которые не были загружены до первого запуска модели, а вторая строка загружает указанный пакет. Эти две команды могут быть несколько избыточными, но я делаю обе, потому что хочу убедиться, что мои пользовательские пакеты находятся на пути в дополнение к загрузке пакета UserDefined.
openModelFile("Fully.Qualified.Model.Name")
(например, openModelFile("Modelica")
).
- person Michael Tiller; 08.08.2013
Два предложения. Во-первых, вам нужно добавить свой пакет в MODELICAPATH. Вам нужно будет обратиться к документации Dymola, чтобы точно определить, что вам нужно делать. Но обычно это означает, что вы должны установить переменную среды, которая дает список каталогов (разделенных ;
) для поиска вашего пакета. Теперь это поместит его на ваш путь, чтобы он мог найти его автоматически, но он не будет загружать его, пока он не понадобится.
Если вы хотите, чтобы он всегда отображался в браузере пакетов, вам, вероятно, потребуется настроить файл .mos (скрипт) для его загрузки. У Димолы есть такая возможность, но вам придется прочитать руководство, чтобы выяснить, как этот скрипт должен называться и где Димола ожидает его найти.
Надеюсь, это поможет.
В папке установки Dymola 2018 -> insert -> dymola.mos я добавил строки:
Utilities.setenv("MODELICAPATH", "C:\Users\XXXX\Documents\Dymola");
openModel("C:\Users\XXXX\Documents\Dymola\DCOL\package.mo");
openModel(“C:\Users\XXXX\Documents\Dymola\Annex60 1.0.0\package.mo”);
Теперь я не понимаю предложения об утилитах, так как пакет DCOL отлично загружается без него, а добавленный пакет «утилит» в меню пакетов бесполезен. Но он не открывает пакет Annex60.
Я пробовал много разных комбинаций и не могу загрузить несколько пакетов. Сомневаюсь, что "cd" и "Advanced.ParallelizeCode", которые тоже добавлены в текст, работают.
Ответ принято не работает с Dymola 2017 FD01, поскольку файл settings.mos больше не используется. Вместо этого пользовательские настройки хранятся в файле setup.dymx, расположенном в
C:\Users\USERNAME\AppData\Roaming\DassaultSystemes\Dymola
В отличие от файла setup.mos, вы не можете включать пользовательские строки в сценарий modelica в setup.dymx.
answer с использованием dymola.mos по-прежнему работает, но вам нужны права администратора для изменения этого файла.
Вот простое решение, которое работает со всеми версиями Dyomola: вы можете передать .mos-скрипт в качестве первого параметра в dymola.exe.
Это может, например, сделать так:
- Создайте где-нибудь сценарий .mos с такими командами, как openModel () и т. Д.
- Создайте ярлык для Dymola.exe на рабочем столе.
- Откройте свойства ярлыка и добавьте путь к сценарию .mos в текстовое поле Target. Тогда это будет выглядеть примерно так:
"C:\Program Files\Dymola 2018 FD01\bin64\Dymola.exe" "C:\<some-path>\startup.mos"
- Запустите Dymola с помощью ярлыка на рабочем столе. Сценарий будет выполнен, а возможные ошибки или сообщения отобразятся в окне команд.
Другое предложение, когда вам не нужно жестко кодировать ваш пакет в переменной среды вашей операционной системы (и, возможно, более безопасно для неопытных программистов):
- Перейдите в папку, в которой установлена Dymola (например, C: \ Program Files \ Dymola 2020).
- Найдите файл Dymola.mos во вложенной папке. 'вставить' папку
- Откройте скрипт (например, в блокноте ++)
- Добавьте сюда ссылку (-ы) на ваш файл (-ы) Dymola-library-package.mo с помощью оператора openModel, например, openModel ("C: /IDEAS/package.mo"); Скрипт Dymola.mos
- Сохраните сценарий. Теперь каждый раз, когда вы открываете Dymola, ваши библиотеки загружаются автоматически.