Совместное использование файлов в нескольких проектах

Если для файлов данных требуется периодическое обновление или они используются в нескольких проектах Configurator 360, то загружать копии таких файлов для каждого проекта необязательно. Вместо этого можно загрузить такой файл как общий файл. В правилах проектирования можно считывать содержимое общего файла, используя стандартные функции .NET или Intent. Общий файл можно в любое время обновить, не изменяя и не обновляя сами проекты.

Файлы данных могут поступать из любых источников, включая базы данных, таблицы Excel или отредактированные вручную файлы CSV или XML.

Обмен файлами

  1. В интерфейсе администратора Configurator 360 перейдите на вкладку «Свойства» «Общие файлы».

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

Прим.: Если администраторов несколько, папка будет доступна всем администраторам. При создании вложенных папок в этой папке данных необходимо создать соответствующие вложенные папки в локальной папке в соответствии с инструкциями в следующем разделе.

Использование общих файлов в правилах iLogic и ETO

  1. Переместите файлы данных в локальную папку с именем C:\C360_A360\.
    Прим.: Чтобы использовать другую папку, создайте файл с именем C:\C360_A360\LocalFolderPath.txt. В этом текстовом файле добавьте одну строку, которая содержит полный путь к выбранной папке.
  2. Установите вспомогательную функцию. Autodesk предоставляет версии функции GetSharedDataFile, выполняемой на локальном компьютере, для iLogic и ETO. Для ETO установите два проектных файла Intent. Эти файлы можно загрузить на странице Autodesk Configurator 360 Samples.

    Для iLogic

    Скопируйте файл iLogicVb в папку за пределами рабочего пространства проекта Inventor (например, C:\iLogicRules). Это глобальная папка для внешних правил iLogic.

    Перейдите в меню "Сервис" "Параметры" "Конфигурация iLogic", чтобы поместить правила iLogic в эту папку. Эта команда доступна в раскрывающемся меню в нижней части панели "Параметры".

    Прим.: Не добавляйте этот файл в данные, которые выгружаются в Configurator 360.

    Для ETO

    Добавьте три файла IKS в путь для поиска в Intent. Рекомендуется использовать папку ivHostlib (например, C:\Program Files\Autodesk\Inventor ETO 20xx\Library\Inventor\ivhostlib).

  3. Доступ к общему файлу осуществляется с помощью функции GetSharedDataFile().

    Определение функции:

    Function GetSharedDataFile(sharedFilePath As String) As String

    sharedFilePath — это путь к общедоступному файлу (относительно корневой папки). В качестве разделителя каталогов в пути можно использовать прямую косую черту или обратную косую черту. Если файл находится непосредственно в корневой папке, следует указать его имя и расширение в виде «имя_файла.расширение». Функция возвращает полный путь Windows к файлу.

    В iLogic

    1. Вызовите эту функцию из правила с именем C360_RefreshSharedData.

    2. Создайте правило в документе, где содержатся параметры, отображаемые в C360. Из этого правила необходимо извлечь все общие данные. При загрузке проекта правило будет запущено в Configurator 360. Это необходимо, чтобы подтвердить использование актуальной версии общих данных.

    3. Используйте любую функцию чтения для доступа к содержимому файла.

    4. Для продолжения выберите одно из следующих действий.
    • Все данные, полученные из файла, можно сразу сохранить в постоянные структуры данных Inventor, например параметры, свойства и атрибуты. Такие данные хранятся не только в памяти, но и в файле Inventor. Этот метод наиболее удобен и надежен, однако в отдельных случаях он менее эффективен, чем следующий способ.
    • Данные, полученные из файла, можно частично или полностью сохранить в общие переменные iLogic (или другие объекты временной памяти), чтобы сделать их доступными для использования другими правилами в будущем. В дальнейшем в правилах можно просто ссылаться на эти общие переменные. При получении новых данных правила следует вызывать из команды C360_RefreshSharedData. Таким образом можно минимизировать количество продолжительных операций с файлами, но при этом повышается риск ошибок, если правила не вызываются из команды C360_RefreshSharedData.

    В ETO Intent

    Вызов функции GetSharedDataFile() выполняется из определенных деталей-оболочек. Выполните следующие действия:

    1. Создайте проект в рабочем пространстве. Извлеките его из проекта C360CommonFileCollection. Далее представлен пример.
      Design MySharedFileCollection : C360CommonFileCollection
         Child MySharedFile As :C360SharedDataFile
           SharedPath = "MyFile.txt"
         End Child
      End Design
      

      В данном проекте каждая дочерняя деталь содержит единый общий файл. Добавьте необходимые детали. Параметр SharedPath используется системой как аргумент для функции GetSharedDataFile().

    2. Добавьте в корневой проект дочернюю деталь, которая обеспечивает реализацию проекта MySharedFileCollection.
    3. Чтобы получить полный путь Windows для общего файла, прочтите значение правила LocalPath в дочерней детали C360SharedDataFile. Далее представлен пример.
      Dim localPath As String = MySharedFileCollection.MySharedFile.LocalPath

      В ETO Intent доступ к общим данным можно получить в любой точке кода. Ни одно из указанных выше ограничений для iLogic не применимо к ETO.

  4. После локальной проверки загрузите общие файлы данных в Configurator 360, как описано выше.
  5. Выгрузите проект в Configurator 360.
    Прим.: Файлы общедоступных данных следует выгружать перед выгрузкой проектов, которые пытаются получить доступ к этим файлам.

Версии файлов

Обновить общие файлы в Configurator 360 можно в любое время. При первом создании ссылки на общий файл в сеансе моделирования Configurator 360 программа проверяет наличие новой версии файла. В новых сеансах всегда используются последние версии файлов. Если файл обновлен уже во время сеанса, то проверка новых версий в течение этого сеанса не выполняется. В этом случае новые версии будут отображаться только в последующих сеансах.

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

Configurator 360 не проверяет зависимости между общими файлами. Для удобства обновления рекомендуется объединить все зависимые данные (например две таблицы в одной и той же базе данных) в один файл. Это поможет избежать возможных проблем. В этом случае в ходе одного сеанса Configurator 360 новую версию одного файла нельзя будет загрузить одновременно с несовместимой устаревшей версией другого. Однако если две таблицы сохранены в два отдельных файла, эта ошибка может возникнуть.

Ограничения

ETO и iLogic не должны одновременно иметь доступ к общим данным в одном проекте. Если проект ETO содержит детали или узлы с правилами iLogic, то такие правила не должны обращаться к общим файлам данных. Вместо этого следует получить общие данные из правил Intent и передать требуемые значения в компоненты iLogic.

Пример правила iLogic

Из правила C360_RefreshSharedData в iLogic можно прочитать один или несколько общих файлов.

Ниже приведен простой пример правила C360_RefreshSharedData.

Оператор AddVbRule обеспечивает выполнение функции GetSharedDataFile.

AddVbFile "C360SharedFilesAccess.iLogicVb"

Dim localPath As String = GetSharedDataFile("WidthFactor.txt")
Dim fileContents As String = IO.File.ReadAllText(localPath)

Dim widthFactorX As Double
If Double.TryParse(fileContents, widthFactorX) Then
 Parameter("WidthFactor") = widthFactorX
End If

Это правило выполняет чтение текстового файла, который содержит одну строку с одним числовым значением. Затем правило назначает это значение параметру с именем WidthFactor. Данный параметр можно использовать в другом правиле, чтобы установить связь между двумя параметрами:

Width = Length * WidthFactor