Создание Дополнения 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
      • Устаревшие и неиспользуемые методы

    Кривая пересечения

    Кривая пересечения — это пространственная кривая, лежащая одновременно на двух поверхностях, вдоль линии их пересечения. Обе поверхности должны быть созданы заранее и передаются по идентификаторам.

    StartIntersectionCurve(ID: string; FirstSurfID, SecondSurfID: string; L1, L2: TSTLimitType; BaseParam, BaseScale: STFloat) — начать формирование кривой пересечения двух поверхностей.

    • ID — идентификатор создаваемой сущности;
    • FirstSurfID — идентификатор первой поверхности;
    • SecondSurfID — идентификатор второй поверхности;
    • L1 — тип начальной границы (см. TSTLimitType);
    • L2 — тип конечной границы (см. TSTLimitType);
    • BaseParam — параметр первой точки, лежащей на кривой пересечения;
    • BaseScale — масштаб параметризации.

    AddIntersectionCurvePoint(Position: TST3DPoint) — добавить точку пересечения.

    • Position — координаты точки.

    CloseIntersectionCurve() — завершить формирование кривой пересечения.

    Перечисление TSTLimitType задаёт тип границы на концах кривой пересечения (L1 — начало, L2 — конец) — как именно кривая ограничивается с каждой стороны:

    Значение Тип границы Описание
    H вспомогательный вектор Конец задаётся вспомогательным («help») вектором направления.
    T терминатор Кривая обрывается в явно заданной точке-терминаторе; для такой границы в кривую добавляют граничную точку методом AddIntersectionCurvePoint.
    L произвольная граница Произвольное ограничение конца кривой.
    B граница направляющей Конец ограничен краем области направляющей (spine).
    U не задана Граница не определена (ограничение отсутствует).

    Эти же типы границ используются и при создании поверхности скругления (CreateBlendedSurface, см. Поверхность скругления).

    Кривая пересечения двух поверхностей

    Пример импорта кривой пересечения. Предполагается, что обе поверхности уже сохранены, а точки кривой и параметры границ получены из CAD. Кривая пишется как последовательность точек; для границ типа T (терминаторов) дополнительно добавляются явные граничные точки.

    // Кривая пересечения CAD-системы: две опорные поверхности + точки
    class CADIntersectionCurve
    {
        public string       Id;         // идентификатор кривой в CAD
        public string       Surf1Id;    // идентификатор первой поверхности (уже сохранена)
        public string       Surf2Id;    // идентификатор второй поверхности (уже сохранена)
        public TSTLimitType StartLim;   // тип начальной границы
        public TSTLimitType EndLim;     // тип конечной границы
        public double       BaseParam;  // параметр первой точки на кривой
        public double       BaseScale;  // масштаб параметризации
        public CADPoint[]   Points;     // точки кривой пересечения
        public CADPoint     StartPoint; // граничная точка (для границы типа T)
        public CADPoint     EndPoint;   // граничная точка (для границы типа T)
    }
    
    bool SaveIntersectionCurve(CADIntersectionCurve curve)
    {
        sgr.StartIntersectionCurve(curve.Id, curve.Surf1Id, curve.Surf2Id,
                                   curve.StartLim, curve.EndLim, curve.BaseParam, curve.BaseScale);
        try
        {
            // координаты CAD-точек приводим к TST3DPoint
            if (curve.StartLim == TSTLimitType.T)
                sgr.AddIntersectionCurvePoint(ToPoint(curve.StartPoint));
    
            foreach (CADPoint v in curve.Points)
                sgr.AddIntersectionCurvePoint(ToPoint(v));
    
            if (curve.EndLim == TSTLimitType.T)
                sgr.AddIntersectionCurvePoint(ToPoint(curve.EndPoint));
        }
        finally
        {
            sgr.CloseIntersectionCurve();
        }
        return true;
    }
    
    In this article
    Back to top Generated by DocFX