Создание Дополнения CAM-системы
  • Создание Дополнения CAM-системы
Search Results for

    Show / Hide Table of Contents
    • Creating a CAM-system Add-in
    • Введение
      • Глоссарий
      • Требования
    • Устройство Панели инструментов
      • Описание компонентов
        • Мастер дополнений
        • Файлы дистрибуции
        • Транслятор
        • Файл XML дополнения
        • Файл CAMInfo.ini
        • Утилита CheckLockToolbar
        • Панель инструментов
      • Сценарии взаимодействия
        • Установка Дополнения
        • Удаление Дополнения
        • Импорт из CAD-системы в CAM-систему
        • Импорт CAD-файла в CAM-систему
    • Импорт геометрии в CAM
      • Структура CAD-модели
      • Интерфейсы импорта
      • Подключение STGeomFile.dll
      • Формирование файла SGF
      • Структуры данных SGF
      • Работа со сборкой
      • Работа с деталью
      • Кривые и точки
        • Точка и аналитические кривые
          • 3D-точка
          • Система координат
          • Отрезок
          • Окружность
          • Дуга окружности
          • Эллипс
          • Дуга эллипса
          • Коническая спираль
          • NURBS-кривая
          • Составная кривая
        • Производные кривые
          • Кривая на поверхности
          • Обрезанная кривая
          • Инвертированная кривая
          • Кривая пересечения
          • Граница скругления
        • Параметризация кривых
      • Грань (обрезанная поверхность)
      • Поверхности
        • Аналитические поверхности
          • Плоскость
          • Цилиндр
          • Конус
          • Сфера
          • Тор
          • NURBS-поверхность
          • Полигональная сетка
        • Производные поверхности
          • Поверхность вращения
          • Поверхность выдавливания
          • Транспонированная UV-поверхность
          • Поверхность скругления
          • Эквидистантная поверхность
        • Параметризация поверхностей
      • PMI (Product Manufacturing Information)
        • IPMIGeomThread
      • Устаревшие и неиспользуемые методы

    Интерфейсы импорта

    Импорт геометрии опирается на два интерфейса одного и того же COM-объекта библиотеки STGeomFile.dll (как его получить — см. Подключение STGeomFile.dll): ISTGeomFiler (sgf) управляет самим файлом, а ISTGeomReceiver (sgr) записывает в него геометрию.

    ISTGeomFiler

    Указатель на интерфейс ISTGeomFiler возвращает экспортируемая функция CreateGeomFiler (см. Подключение STGeomFile.dll); этот интерфейс управляет файлом:

    Метод Описание
    StartFile(FileName: string) Начать формирование SGF-файла (открыть на запись). Вложенный вызов StartFile при уже открытом файле недопустим.
    CloseFile() Закрыть SGF-файл. Именно при этом вызове файл физически формируется (записывается на диск).
    OpenFile(FileName: string; Receiver: ISTGeomReceiver) Открыть SGF-файл на чтение; команды воспроизводятся в указанный ISTGeomReceiver. Данный метод используется CAM-системой.

    Порядок работы с файлом описан в главе Формирование файла SGF.

    ISTGeomReceiver

    Основной интерфейс импорта: принимает геометрию в виде последовательности команд. Все методы возвращают boolean — статус успешности (в сигнатурах далее он опущен). Объекты создаются под уникальным строковым идентификатором ID — по нему на них ссылаются последующие вызовы. Типы параметров (STFloat, TST3DPoint, TST2DPoint и др.) описаны в Структуры данных.

    Локальная система координат объекта обычно задаётся тройкой точек: vT — положение (начало координат), vZ — ось Z, vX — ось X. Если ось Y среди параметров не передаётся, то она вычисляется внутри как векторное произведение vZ × vX, что автоматически даёт правую систему координат. При этом vZ и vX должны быть взаимно перпендикулярны, иначе ориентация осей определяется неоднозначно.

    Часть методов парные: метод с префиксом Start… открывает составной объект, внутри которого вызываются вложенные методы (например, добавление точек, рёбер, узлов), а в конце объект обязательно закрывается одноимённым методом с префиксом Close…. Например: StartNurbsCurve → SetNurbsCurveControlPoint / SetNurbsCurveKnot / … → CloseNurbsCurve; StartFace → StartFaceLoop → AddFaceEdge2d → CloseFaceLoop → CloseFace. Такие пары могут быть вложенными. Если открытый Start… не закрыть парным Close…, в лучшем случае объект сформируется некорректно, а в худшем — структура файла SGF будет нарушена, а чтение невозможно.

    Опорный объект — раньше зависимого. Независимо от порядка изложения, при записи в SGF каждый объект должен быть создан раньше того, что на него ссылается: кривая — раньше ребра, поверхность — раньше грани, грани — раньше тела. В примерах это обеспечивается рекурсией: метод верхнего уровня (SaveClosedShell, SaveTrimmedFace, …) сначала сохраняет дочерние объекты, а затем оформляет составной объект поверх них.

    In this article
    Back to top Generated by DocFX