Разработка интерпретаторов
  • Разработка интерпретаторов
v3.0.3
Search Results for

    Show / Hide Table of Contents

    Цикл фрезерования кругового кармана

    INCT_PocketCycleFormer — интерфейс CAM-системы, реализующий функционал для упрощения формирования движений для цикла фрезерования круглых карманов. Объект, реализующий этот интерфейс, возвращается методом INCT_CLData_PocketCycleFormer.CreatePocketCycleFormer

    123456

    Предназначение:

    Выполнение перемещений в различных типах цикла фрезерования круговых карманов, для разных стоек в общем случае повторяют одинаковую траекторию:

    1. Подвод к центру отверстия на начальном уровне
    2. Подвод к безопасной дистанции
    3. Подвод к базовой точке
    4. Врезание (по спирали или прямолинейное) до указанной глубины резания или до конца глубины
    5. Отход на безопасное расстояние и т. д. циклично до глубины кармана или сразу до глубины кармана при чистовой фрезеровке.
    6. Отход к центру отверстия до уровня с которого начиналась обработка в данном случае до начального уровня

    Примеры таких циклов, Sinumerik: POCKET4.

    Использование формирователя позволяет сформировать траекторию движения инструмента по заданным параметрам. А также добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности, изменить тип или значение подачи, либо пропустить перемещение инструмента, подготовленное формирователем.

    Использование формирователя:

    Рекомендуем создавать новый формирователь для каждого нового цикла в кадре управляющей программы. Таким образом, интерфейс старого формирователя должен освобождаться при создании нового или в случае завершения работы интерпретатора.

    1. Получить интерфейс формирователя (INCT_CLData_PocketCycleFormer.CreatePocketCycleFormer).
    2. Задать индексы осей, по которым будут производиться перемещения (Set_AxisIndexes).
    3. Задать текущую плоскость (Set_Plane).
    4. Задать центр отверстия (Set_HoleCenter).
    5. Задать безопасный уровень (Set_SafeLevel).
    6. Задать начало кармана (Set_BaseLevel).
    7. Задать уровень дна кармана (Set_BottomLevel).
    8. Задать диаметр кармана (Set_Diameter).
    9. Задать шаг плоской спирали (Set_FlatSpiralStep).
    10. Задать тип шага плоской спирали (Set_FlatSpiralStepType).
    11. Задать направление плоской спирали (Set_FlatSpiralDirection).
    12. Задать направление обычной спирали (Set_SpiralDirection).
    13. Задать шаг обычной спирали (Set_SpiralStep).
    14. Задать тип обработки (Set_TypeOfHoleProcessing).
    15. Задать глубину резания за проход (Set_Degression).
    16. Задать радиус врезания (Set_PlungeRadius).
    17. Задать припуск края кармана (Set_EdgeStock).
    18. Задать припуск дна кармана (Set_BottomStock).
    19. Назначить обработчик событий цикла (Set_Events), если в траекторию цикла нужно вносить изменения.
    20. Сформировать команды движения инструмента по траектории цикла (MakeWorkpath).

    Описание методов интерфейса:

    Метод Описание метода
    Set_AxisIndexes Метод устанавливает индексы осей X, Y, Z в которых будут производиться перемещения при формировании траектории цикла.
    Входные параметры: Value (TNCDCAxisIndexes) - X (целое число) - индекс оси X, Y (целое число) - индекс оси Y, Z (целое число) - индекс оси Z.
    Выходных параметров нет.
    Get_AxisIndexes Функция возвращает индексы осей X, Y, Z в которых будут производиться перемещения при формировании траектории цикла (TNCDCAxisIndexes).
    Входных параметров нет.
    Set_Plane Метод устанавливает текущую плоскость.
    Входной параметр: Value (TNCPlaneType) - текущая плоскость.
    ptXY - плоскость XY, обработка кармана производится вдоль оси Z.
    ptYZ - плоскость YZ, обработка кармана производится вдоль оси X.
    ptZX - плоскость ZX, обработка кармана производится вдоль оси Y.
    Выходных параметров нет.
    Get_Plane Функция возвращает текущую плоскость (TNCPlaneType).
    Входных параметров нет.
    Set_HoleCenter Метод устанавливает точку центра кармана.
    Входной параметр: Value (TNC3DPoint) - точка центра кармана.
    Выходных параметров нет.
    Get_HoleCenter Функция возвращает точку центра кармана(TNC3DPoint).
    Входных параметров нет.
    Set_SafeLevel Метод устанавливает значение безопасного расстояния
    Входной параметр: Value (вещественное число) - значение безопасного расстояния
    Выходных параметров нет.
    Get_SafeLevel Функция возвращает значение безопасного расстояния.
    Входных параметров нет.
    Set_BaseLevel Метод устанавливает значение начала кармана.
    Входной параметр: Value (вещественное число) - значение начала кармана
    Выходных параметров нет.
    Get_BaseLevel Функция возвращает значение начала кармана.
    Входных параметров нет.
    Set_Diameter Метод устанавливает значение диаметра кармана.
    Входной параметр: Value (вещественное число) - значение диаметра кармана.
    Выходных параметров нет.
    Get_Diameter Функция возвращает значение диаметра кармана.
    Входных параметров нет.
    Set_FlatSpiralStep Метод устанавливает значение шага плоской спирали.
    Входной параметр: Value (вещественное число) - значение шага плоской спирали
    Выходных параметров нет.
    Get_FlatSpiralStep Функция возвращает значение шага плоской спирали.
    Входных параметров нет.
    Set_BottomLevel Метод устанавливает значение уровня дна кармана.
    Входной параметр: Value (вещественное число) - значение уровня дна кармана.
    Выходных параметров нет.
    Get_BottomLevel Функция возвращает значение уровня дна кармана.
    Входных параметров нет.
    Set_FlatSpiralStepType Метод устанавливает значение типа шага плоской спирали.
    Входной параметр: Value (TNCFlatSpiralStepType) - значение типа шага плоской спирали.
    fsByMillimeters - Расчет шага спирали производится в миллиметрах.
    fsByPersentOfToolDiameter - Расчет шага спирали производится в процентах от диаметра инструмента.
    Выходных параметров нет.
    Get_FlatSpiralStepType Функция возвращает значение типа шага плоской спирали (TNCFlatSpiralStepType)
    Входных параметров нет.
    Set_FlatSpiralDirection Метод устанавливает значение направления плоской спирали.
    Входной параметр: Value (TNCSpiralDirection) - значение направления плоской спирали.
    sdCW - По часовой стрелке.
    sdCCW - Против часовой стрелки.
    Выходных параметров нет.
    Get_FlatSpiralDirection Функция возвращает значение направления плоской спирали (TNCSpiralDirection)
    Входных параметров нет.
    Set_SpiralDirection Метод устанавливает значение направления обычной спирали.
    Входной параметр: Value (TNCSpiralDirection) - значение направления обычной спирали.
    sdCW - По часовой стрелке.
    sdCCW - Против часовой стрелки.
    Выходных параметров нет.
    Get_SpiralDirection Функция возвращает значение направления обычной спирали (TNCSpiralDirection)
    Входных параметров нет.
    Set_TypeOfHoleProcessing Метод устанавливает значение типа обработки кармана.
    Входной параметр: Value (TNCTypeOfProcessing) - значение типа обработки кармана.
    tpHelicalPlungeRoughing - Черновое, врезание по спирали, обработка плоской спиралью
    tpLinearPlungeRoughing - Черновое, линейное врезание, обработка плоской спиралью
    tpOnlyHelicalRoughing - Черновое, полностью спиральная обработка
    tpOnlyHelicalFinishing - Чистовая, спиральная обработка по краю
    tpOnlyCircularFinishing - Чистовая, обработка по краю окружностями
    tpOnlyHelicalFinishingAndBottom - Чистовая, спиральная обработка по краю, обработка дна плоской спиралью.
    Выходных параметров нет.
    Get_TypeOfHoleProcessing Функция возвращает значение типа обработки кармана (TNCTypeOfProcessing)
    Входных параметров нет.
    Set_SpiralStep Метод устанавливает значение шага обычной спирали.
    Входной параметр: Value (вещественное число) - значение шага обычной спирали
    Выходных параметров нет.
    Get_SpiralStep Функция возвращает значение шага обычной спирали
    Входных параметров нет.
    Set_Degression Метод устанавливает значение глубины резания.
    Входной параметр: Value (вещественное число) - значение глубины резания
    Выходных параметров нет.
    Get_Degression Функция возвращает значение глубины резания.
    Входных параметров нет.
    Set_DepthOfCut Метод сохраняет значение глубины резания.
    Входной параметр: Value (вещественное число) - значение глубины резания.
    Внимание! В текущей версии значение только хранится и на траекторию не влияет. Глубину резания задаёт Set_Degression.
    Выходных параметров нет.
    Get_DepthOfCut Функция возвращает значение, заданное методом Set_DepthOfCut (вещественное число).
    Входных параметров нет.
    Set_PlungeRadius Метод устанавливает радиус врезания: боковой сдвиг от центра кармана перед врезанием по спирали (тип обработки tpHelicalPlungeRoughing).
    Входной параметр: Value (вещественное число) - радиус врезания.
    Выходных параметров нет.
    Get_PlungeRadius Функция возвращает радиус врезания.
    Входных параметров нет.
    Set_EdgeStock Метод устанавливает значение припуска по краю для черновой обработки.
    Входной параметр: Value (вещественное число) - значение припуска по краю для черновой обработки
    Выходных параметров нет.
    Get_EdgeStock Функция возвращает значение припуска по краю для черновой обработки
    Входных параметров нет.
    Set_BottomStock Метод устанавливает значение припуска по дну кармана для черновой обработки.
    Входной параметр: Value (вещественное число) - значение припуска по дну кармана для черновой обработки
    Выходных параметров нет.
    Get_BottomStock Функция возвращает значение припуска по дну кармана для черновой обработки
    Входных параметров нет.
    Set_Events Метод назначает события для управления поведением цикла. При использовании событий можно добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности, изменить тип или значение подачи, либо пропустить перемещение инструмента, подготовленное формирователем.
    Входной параметр: Value (INCT_PocketCycleEvents) - объект, реализующий события. Подробное описание ниже.
    Выходных параметров нет.
    Get_Events Функция возвращает объект, реализующий события, связанный с формирователем цикла (INCT_PocketCycleEvents).
    Входных параметров нет.
    MakeWorkpath Метод формирует траекторию цикла по заданным параметрам.

    INCT_PocketCycleEvents - интерфейс, реализуемый в интерпретаторе, который позволяет управлять поведением цикла фрезерования кругового кармана. Интерфейс представляет из себя набор методов-событий, которые выполняются при перемещении инструмента внутри формирователя траектории цикла. Используя методы интерфейса можно добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности: выстой, ориентированный останов и прочее, изменить тип подачи, либо пропустить перемещение инструмента, подготовленное формирователем.

    Если для формирователя траектории цикла назначены события, то любое перемещение инструмента внутри формирователя состоит из 3-х этапов:

    1. Выполняется метод INCT_PocketCycleEvents.BeforeMove. В качестве параметров методу передаются заданные циклом: тип перемещения, координаты точки перемещения, тип подачи.
    2. Выполняется метод INCT_PocketCycleEvents.OnMove.
      Для OnMove в качестве параметров методу передаются: тип перемещения, координаты точки перемещения, тип подачи, признак выполнения перемещения. Все параметры, кроме типа перемещения, в реализации метода могут быть изменены. В зависимости от заданного в OnMove признака, производится выполнение перемещения инструмента в заданную точку с указанной подачей, или перемещение не производится.
    3. Выполняется метод INCT_PocketCycleEvents.AfterMove. В качестве параметров методу передаются: тип перемещения, координаты точки перемещения, тип подачи, возвращённые методом OnMove.

    Описание методов интерфейса:

    Метод Описание метода Описание использования
    BeforeMove Метод будет выполнен перед каждым перемещением инструмента при формировании траектории цикла.
    Входные параметры: MoveType (TNCPocketCycleMoveType ) - тип перемещения, описание см. ниже; Point (TNC3DPoint) - координаты точки перемещения; Feed (TNCFeedType) - тип подачи.
    pcmMoveToHoleCenter - Перемещение к центру кармана
    pcmMoveToSafeLevel - Перемещение к безопасной дистанции
    pcmMoveToCutOfDepthByLine - Перемещение по линейной траектории до следующего уровня реза
    pcmMoveToCutOfDepthByHelic - Перемещение по спиральной траектории до следующего уровня реза
    pcmMoveToAside - Перемещение от центра в сторону края кармана
    pcmMoveToHoleEdge - Перемещение на край кармана
    pcmMoveOnHoleEdge - Перемещение непосредственно на траектории края кармана
    pcmMoveToTopLevel - Перемещение к начальной точке
    pcmMoveFromHoleEdgeToCenter - Перемещение от края в центр кармана.
    Выходных параметров нет.
    При необходимости добавления тех или иных команд перед выполнением перемещения, их нужно добавить в реализацию метода.
    Например, если есть необходимость включить систему охлаждения станка перед созданием кругового кармана, сделать это можно добавив в реализацию метода BeforeMove вызов INCT_CLData.AddCoolant с соответствующими параметрами по условию MoveType = pcmMoveToSafeLevel
    OnMove Метод будет выполнен непосредственно перед каждым перемещением инструмента при формировании траектории цикла.
    Входные параметры: MoveType (TNCPocketCycleMoveType) - тип перемещения, описание см. выше;
    Входные и выходные параметры: Point (TNC3DPoint) - координаты точки перемещения; Feed (TNCFeedType) - тип подачи; Handled (логическое) - признак выполнения перемещения внутри реализации (Истина - перемещение выполнено, Ложь - перемещение не выполнено).
    Если после вызова OnMove параметр Handled принимает значение Истина, это значит, что перемещение было выполнено внутри реализации метода OnMove и формирователь цикла не добавляет команду перемещения в траекторию движения инструмента.
    Если после вызова OnMove параметр Handled принимает значение Ложь, формирователь считает, что перемещение не было выполнено внутри реализации метода OnMove и добавляет в траекторию движения инструмента команду перемещения в точку Point с типом подачи Feed.
    При необходимости переопределения значений точки перемещения или подачи, либо для отказа от перемещения (пропуска).
    Например, если нужно изменить тип подачи на ускоренную, при возврате на начальный уровень, после фрезерования, то в реализации метода OnMove необходимо изменить значение возвращаемого методом параметра Feed на ffRapid по условию MoveType = pcmMoveToTopLevel (типы подачи см. в описании OutStandardFeed).
    Если нужно выполнить перемещение инструмента в точку, отличную от рассчитанной циклом, необходимо изменить значение возвращаемого методом OnMove параметра Point.
    Если перемещение в рассчитанную циклом точку выполнять не нужно, тогда внутри реализации метода OnMove нужно изменить значение параметра Handled на Истина.
    AfterMove Метод будет выполнен после каждого перемещения инструмента при формировании траектории цикла, даже если перемещение было отменено в OnMove
    Входные параметры: MoveType (TNCPocketCycleMoveType) - тип перемещения, описание см. выше; Point (TNC3DPoint) - координаты точки перемещения; Feed (TNCFeedType) - тип подачи.
    Выходных параметров нет.
    При необходимости добавления тех или иных команд после выполнения перемещения, их нужно добавить в реализацию метода.
    In this article