Документация Engee

Интеграция с T-FLEX DOCs

Страница в процессе разработки.

T-FLEX DOCs — это система управления жизненным циклом изделия (PLM), разработанная компанией «TOP SYSTEMS». Она предоставляет централизованные возможности для хранения, управления версиями, жизненными циклами и организации совместной работы над проектной документацией, чертежами и 3D-моделями.

Модуль интеграции T-FLEX DOCs предназначен для организации автоматизированного обмена данными между вычислительными задачами в Engee и объектами расчетов в T-FLEX DOCs. Это позволяет создать сквозной цифровой цикл: выгружать исходные данные для проведения расчетов из T-FLEX DOCs в Engee, выполнять расчеты с помощью вычислительных мощностей и инструментов Engee и затем загружать результаты расчетов обратно в T-FLEX DOCs для дальнейшего использования, анализа и управления версиями.

Начало работы с модулем T-FLEX DOCs в Engee

Для начала работы с модулем T-FLEX DOCs в Engee необходима предварительная настройка на стороне T-FLEX DOCs и установка подсистемы Engee.Интеграции.

  1. Подготовка T-FLEX DOCs:

    • Импортируйте в свою базу данных T-FLEX DOCs справочники из файла Справочники для расчетов.ddx.

    • Импортируйте макрос для обращения к T-FLEX DOCs из файла Интеграция с Engee 1D Lite.ddx.

    • Поместите исполняемый файл TflexDocsEngee.exe в папку Program вашей установленной версии T-FLEX DOCs.

  2. Установка подсистемы Engee.Интеграции:

    • Для установки пакета поддержки оборудования, запуска клиентской программы и ее подключения к серверу Engee следуйте инструкциям, описанным в статье Engee.Интеграции.

  3. Импорт модуля и создание объекта: После успешного подключения пакета поддержки вернитесь в Engee и выполните следующую команду:

    using Main.EngeeDeviceManager.Devices.TFLEXDOCS

    Далее создайте объект TFLEXDOCS, который будет использоваться для взаимодействия с системой:

    tdocs = TFLEXDOCS.Tflexdocs()

Основные методы работы с T-FLEX DOCs

Для взаимодействия с системой T-FLEX DOCs используются следующие методы:

  • TFLEXDOCS.start_work — инициализирует сессию для работы с T-FLEX DOCs.

  • TFLEXDOCS.new_calculation — создает новый объект расчета в T-FLEX DOCs.

  • TFLEXDOCS.upload_files — загружает файлы с результатами расчета в указанный объект расчета.

  • TFLEXDOCS.download_files — выгружает файлы с исходными данными из указанного объекта расчета.

  • TFLEXDOCS.stop_work — завершает сессию работы с T-FLEX DOCs.

Пошаговый пример работы с T-FLEX DOCs

Рассмотрим пример полного цикла работы: от создания сессии и объекта расчета до выгрузки данных, проведения вычислений в Engee и загрузки результатов обратно в T-FLEX DOCs.

  1. Создание сессии для работы с T-FLEX DOCs — запустите сессию, при необходимости указав пути. Если пути не указаны, будут использованы значения по умолчанию.

    # Запуск сессии с путями по умолчанию
    TFLEXDOCS.start_work(tdocs)
    
    # Альтернативный вариант с указанием путей
    # docs_path = raw"C:\Program Files (x86)\T-FLEX DOCs 18\Program"
    # exe_path = raw"C:\Program Files (x86)\T-FLEX DOCs 18\Program\TflexDocsEngee\TflexDocsEngee.exe"
    # TFLEXDOCS.start_work(tdocs, docs_path, exe_path)
  2. Создание нового объекта расчета — создайте в T-FLEX DOCs новый объект с именем и описанием.

    TFLEXDOCS.new_calculation(tdocs, "new_calc", "Расчет для тестирования интеграции с Engee")
  3. Выгрузка исходных данных для расчета — получите файлы из созданного объекта расчета. Перед этим убедитесь, что необходимые исходные данные размещены в объекте расчета в T-FLEX DOCs.

    # Получаем файлы из объекта расчета "new_calc"
    download_files = TFLEXDOCS.download_files(tdocs, "new_calc")
    
    # Функция для сохранения полученных файлов в рабочую директорию Engee
    function prepare_files_for_engee(calc_files::Dict{String, Vector{UInt8}})
        for (file_name, file_content) in calc_files
            write(file_name, file_content)
        end
    end
    
    # Сохраняем файлы
    prepare_files_for_engee(download_files)
  4. Проведение расчета — используйте выгруженные файлы для проведения необходимых вычислений в Engee. В данном примере расчет имитируется.

    # Имитация проведения расчета и генерации результата
    path = "results.txt"
    result_content = ""
    for i in 1:10
        calculation_result = i * 100 / i^3
        result_content *= string(calculation_result) * "\n"
    end
    
    # Запись результата расчета в файл
    write(path, result_content)
  5. Подготовка и загрузка результатов расчета — подготовьте полученные файлы результатов и загрузите их обратно в объект расчета в T-FLEX DOCs.

    # Функция для подготовки файлов к отправке в T-FLEX DOCs
    function prepare_files_for_docs(paths::Vector{String})
        files_dict::Dict{String, Vector{UInt8}} = Dict()
        for path in paths
            file_content = read(path)
            base_name = basename(path)
            files_dict[base_name] = file_content
        end
        return files_dict
    end
    
    # Подготавливаем файл с результатами
    files_to_upload = prepare_files_for_docs([path])
    
    # Загружаем результаты в объект расчета "new_calc" в T-FLEX DOCs
    TFLEXDOCS.upload_files(tdocs, files_to_upload, "new_calc")
  6. Завершение сессии — по окончании работы закройте сессию.

    TFLEXDOCS.stop_work(tdocs)

Возможные проблемы и их решение

  1. Ошибка инициализации — если сессия не запускается (TFLEXDOCS.start_work завершается с ошибкой), то убедитесь в следующем:

    • Пути к директории Program и исполняемому файлу TflexDocsEngee.exe указаны верно.

    • Директория TflexDocsEngee скопирована в папку Program установленной версии T-FLEX DOCs.

    • Необходимые справочники (.ddx-файлы) импортированы в проект.

  2. Объект расчета не найден — при вызове TFLEXDOCS.download_files или TFLEXDOCS.upload_files убедитесь, что объект расчета с указанным именем существует в T-FLEX DOCs.

  3. Проблемы с передачей файлов — модуль ожидает, что файлы представлены в виде словаря Dict{String, Vector{UInt8}}, где ключ — это имя файла, а значение — его содержимое в виде массива байтов. Убедитесь, что ваши функции подготовки файлов (prepare_files_for_engee, prepare_files_for_docs) корректно преобразуют данные.