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

    Точка и аналитические кривые

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

    Примитивы точки и аналитических кривых:

    • 3D-точка — CreatePoint.
    • Система координат — CreateCoordinateSystem.
    • Отрезок — CreateLineSeg.
    • Окружность — CreateCircle.
    • Дуга окружности — CreateArc.
    • Эллипс — CreateEllipse.
    • Дуга эллипса — CreateEllipseArc.
    • Коническая спираль — CreateConicalSpiral.
    • NURBS-кривая — StartNurbsCurve … CloseNurbsCurve.
    • Составная кривая — плоская (2D) и пространственная (3D).

    Пример сохранения аналитической кривой

    SaveCurve — диспетчер: получает кривую CAD-системы и, в зависимости от её типа, вызывает соответствующий обработчик (SaveLine, SaveCircle, …). Каждый обработчик пишет геометрию в SGF подходящим вызовом из Кривые и точки и возвращает флаг успеха. Ниже показаны сам диспетчер и один из обработчиков (SaveLine); остальные устроены аналогично.

    // Сохраняет кривую любого типа; возвращает признак успеха (Id уже задан в CADCurve)
    bool SaveCurve(CADCurve curve)
    {
        switch (curve.Type)
        {
            case "Line":    return SaveLine(curve.Id, curve.Param);
            case "Circle":  return SaveCircle(curve.Id, curve.Param);      // обработчики остальных
            case "Arc":     return SaveArc(curve.Id, curve.Param);         // типов устроены так же
            case "Ellipse": return SaveEllipse(curve.Id, curve.Param);
            case "Nurbs":   return SaveNurbsCurve(curve.Id, curve.Param);
            // … прочие типы кривых (см. «Кривые и точки»)
            default:        return false;                  // тип не поддерживается
        }
    }
    
    // Один из обработчиков — сохранение отрезка
    bool SaveLine(string id, CADLineParam param)
    {
        // координаты CAD-точек приводим к TST3DPoint
        return sgr.CreateLineSeg(id, ToPoint(param.Start), ToPoint(param.End));
    }
    
    In this article
    Back to top Generated by DocFX