Навигация:
<< >> Оглавление Указатель

Описание пользователя

Глава 3. Использование стандартных модулей автокомпиляции

§3.4. Копирование блоков и схем с автокомпилируемыми моделями и совместное использование моделей

Описывается особенности копирования блоков с автокомпилируемыми моделями в пределах одной схемы и между схемами. Рассматривается совместное использование одной модели несколькими блоками и схемами, а также связанные с этим возможные проблемы и способы их решения.

Хранение автокомпилируемых моделей блоков не внутри файла схемы, а в отдельных файлах дает возможность использовать одну и ту же модель в разных блоках разных схем. В файле схемы запоминается не сам текст модели, а только имя файла модели и путь к нему. При этом необходимо следить за тем, чтобы у RDS был доступ к файлам моделей: произвольное их перемещение и переименование, а также перемещение самого файла схемы может привести к неработоспособности этой схемы. Если, например, файл схемы был перемещен в другую папку средствами файлового менеджера Windows, при загрузке этой схемы RDS может не найти связанные с ней файлы моделей. Эту ошибку легко исправить, вручную скопировав файлы моделей в новую папку или изменив пути к ним в окнах параметров всех затронутых блоков (см. рис. 322, список всех используемых схемой автокомпилируемых моделей можно узнать в окне информации о схеме). Кроме того, в некоторых случаях RDS может автоматически скопировать файл модели в новую папку – об этом пользователю выдаются соответствующие сообщения, в которых он может согласиться на такое копирование или отказаться от него. Ниже эти сообщения будут рассмотрены подробно.

Если автокомпилируемая модель находится в одной папке с использующей ее схемой, в файле схемы запоминается только имя файла модели без пути – это позволяет перемещать всю папку со схемой и ее моделями без потери работоспособности. Однако, полный путь к файлу модели тоже запоминается скрыто от пользователя (для этого используется так называемое «альтернативное» имя модели, к которому имеют доступ только программисты, создающие модули автокомпиляции – этот параметр описан в §3.1 руководства программиста). Запомненный полный путь в некоторых случаях позволяет модулю автокомпиляции находить «потерянные» модели. Если, например, переместить или скопировать файл схемы, в одной папке с которой находились файлы ее автокомпилируемых моделей, а сами файлы моделей не скопировать, при загрузке схемы модулю не удастся найти эти модели в новой папке. Потерпев неудачу, он попытается найти их по запомненному для каждой модели полному пути. Если файлы модели все еще находятся на старом месте, пользователю будет выдано сообщение, в котором ему будет предложено либо привязать схему к старым моделям, либо сделать для них копию в новой папке (рис. 329).

Запрос, выдающийся пользователю при загрузке схемы, не нашедшей свой файл модели

Рис. 329. Запрос, выдающийся пользователю при загрузке схемы,
не нашедшей свой файл модели

Пользователь может установить один из двух взаимоисключающих флажков:

При копировании блока с автокомпилируемой моделью через буфер обмена также возможно несколько вариантов: пользователь должен решить, будет ли копия блока связана с тем же самым файлом модели (у двух блоков будет общая модель), или необходимо сделать для нее копию модели, чтобы модели исходного и скопированного блока можно было изменять независимо. Об этом пользователю выдается соответствующий запрос (рис. 330).

Запрос, выдающийся пользователю при вставке блока с автокомпилируемой моделью из буфера обмена

Рис. 330. Запрос, выдающийся пользователю при вставке блока с
автокомпилируемой моделью из буфера обмена

Пользователь должен установить один из трех взаимоисключающих флажков:

В нижней части окна запроса находится дополнительный флажок «запомнить ответ», при установке которого выбранный пользователем вариант будет запомнен и, в дальнейшем, будет автоматически применяться ко всем копируемым блокам без выдачи запроса. Запомнены могут быть только первый и второй варианты – третий требует ввода имени копии модели вручную, поэтому не может быть применен автоматически без запроса пользователю. Выбранный вариант запоминается только до конца текущей операции, то есть вставки группы блоков из буфера обмена.

Если пользователь закроет окно запроса не кнопкой «OK», а кнопкой «отмена», то, независимо от установленного флажка, копирование блока из буфера обмена будет отменено.

Следует учитывать, что при некоторых настройках совместного использования модели запрос при копировании выдаваться не будет, и файл модели будет копироваться автоматически.

Похожий запрос выдается пользователю в тех случаях, когда он сохраняет схему в другой файл при помощи пункта главного меню RDS «файл | сохранить как», если эта схема использует автокомпилируемые модели, находящиеся в одной с ней папке. Пользователь может либо оставить схему связанной со старыми файлами моделей, либо сделать их копии (рис. 331).

Запрос, выдающийся пользователю при сохранении схемы с автокомпилируемыми моделями под другим именем

Рис. 331. Запрос, выдающийся пользователю при сохранении схемы с
автокомпилируемыми моделями под другим именем

Пользователь должен установить один из двух взаимоисключающих флажков:

Дополнительный флажок «запомнить ответ» запоминает выбранный пользователем вариант и автоматически применяет его до следующего сохранения схемы.

При работе с моделями, которые используются в нескольких схемах одновременно, следует помнить, что для компиляции измененной модели модулю необходим монопольный доступ к файлу DLL, создаваемому в результате компиляции – в противном случае он не сможет заменить этот файл на новый. Такое может случиться, если две схемы, использующие одну и ту же модель, открыты в двух одновременно запущенных копиях RDS. Файл DLL при этом будет загружен в память обоих приложений и заблокирован от изменений, что приведет к невозможности компиляции модели. Решить эту проблему можно временно закрыв все одновременно работающие копии RDS кроме той, из которой вызван редактор модели. После внесения в модель изменений и успешной компиляции можно будет снова открыть схемы в нескольких копиях RDS.


<< >> Оглавление Указатель