Токарный цикл резьбонарезания
INCT_LatheThreadCuttingCycleFormer - интерфейс SprutCAM, который реализует функциональность по упрощению формирования перемещений токарного цикла нарезания резьбы. Объект, реализующий этот интерфейс возвращает функция INCT_CLData.CreateLatheCycleFormer, INCT_GeomCLData.CreateLatheCycleFormer при её выполнении с параметром lctThreadCutting.
Предназначение:
Выполнение перемещений в различных типах токарных циклов нарезания резьбы, для разных стоек в общем случае повторяют одинаковую траекторию:
Подвод инструмента к стартовой точке или точке следующего захода в плоскости отвода на ускоренной подаче.
Перемещение к начальной точке резьбы на рабочей подаче.
Нарезание резьбы до конечной точки на рабочей подаче.
Возврат к плоскости отвода на подаче с ускоренным перемещением.
Если количество заходов (черновых и чистовых) не закончилось, вернуться к пункту 1.
Примеры таких циклов, Sinumerik: CYCLE97.
Использование формирователя позволяет по заданным параметрам: начальная и конечная точки резьбы, плоскость отвода, количество заходов резьбы, способ врезания, угол врезания и пр. сформировать траекторию движения инструмента. А так же добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности, изменить тип или значение подачи, либо пропустить перемещение инструмента подготовленное формирователем.
Использование формирователя:
Рекомендуем создавать новый формирователь токарного цикла для каждого нового цикла в кадре управляющей программы, кроме случаев повторения работы цикла в новом кадре. Таким образом, интерфейс старого формирователя должен освобождаться при создании нового или завершении работы интерпретатора.
Для формирования команд движения инструмента по траектории цикла, необходимо выполнить следующие шаги:
Получить интерфейс формирователя (INCT_CLData.CreateLatheCycleFormer, INCT_GeomCLData.CreateLatheCycleFormer).
Задать индексы продольной и поперечной осей по которым будут производиться перемещения (Set_AxisIndexes).
Установить параметры цикла (Set_ThreadOrientation, Set_ThreadDepth, Set_ThreadStep, Set_ThreadStartAngle, Set_StartPoint и пр. описание см. ниже).
Назначить обработчик событий цикла (Set_Events), если в траекторию цикла нужно вносить изменения.
Сформировать команды движения инструмента по траектории цикла (MakeWorkpath).
Описание методов интерфейса:
| 
     Метод  | 
                
     Описание метода  | 
        
| 
     Set_AxisIndexes  | 
                
     Метод устанавливает индексы продольной и поперечной осей по которым будут производиться перемещения при формировании траектории цикла. Входные параметры: Value (TNCLCAxisIndexes) - Transverse (целое число) - индекс поперечной оси, Longitudinal (целое число) - индекс продольной оси. Выходных параметров нет.  | 
        
| 
     Get_AxisIndexes  | 
                
     Функция возвращает индексы продольной и поперечной осей в которых будут производиться перемещения при формировании траектории цикла (TNCLCAxisIndexes). Входных параметров нет.  | 
        
| 
     Set_Direction  | 
                
     Метод устанавливает направление цикла нарезания резьбы. Входной параметр: Value (TNCThreadCuttingDirection) - направление цикла: drLongitudinal - продольное, drTransverse - поперечное. Выходных параметров нет.  | 
        
| 
     Get_Direction  | 
                
     Функция возвращает направление цикла (TNCThreadCuttingDirection). Входных параметров нет.  | 
        
| 
     Set_ThreadOrientation  | 
                
     Метод устанавливает тип ориентации резьбы. Входной параметр: Value (TNCThreadOrientation см. INCT_CLData.AddSinglePassThread) - тип ориентации резьбы. Выходных параметров нет.  | 
        
| 
     Get_ThreadOrientation  | 
                
     Функция возвращает тип ориентации резьбы (TNCThreadOrientation). Входных параметров нет.  | 
        
| 
     Set_ThreadDepth  | 
                
     Метод устанавливает значение глубины резьбы. Входной параметр: Value (вещественное число) - значение глубины резьбы. Выходных параметров нет.  | 
        
| 
     Get_ThreadDepth  | 
                
     Функция возвращает значение глубины резьбы (вещественное число). Входных параметров нет.  | 
        
| 
     Set_ThreadStep  | 
                
     Метод устанавливает значение шага резьбы. Входной параметр: Value (вещественное число) - значение шага резьбы. Выходных параметров нет.  | 
        
| 
     Get_ThreadStep  | 
                
     Функция возвращает значение шага резьбы (вещественное число). Входных параметров нет.  | 
        
| 
     Set_ThreadStartAngle  | 
                
     Метод устанавливает значение начального угла резьбы. Входной параметр: Value (вещественное число) - значение начального угла резьбы. Выходных параметров нет.  | 
        
| 
     Get_ThreadStartAngle  | 
                
     Функция возвращает значение начального угла резьбы (вещественное число). Входных параметров нет.  | 
        
| 
     Set_ThreadStartCount  | 
                
     Метод устанавливает количество заходов резьбы. Входной параметр: Value (целое число) - количество заходов резьбы. Выходных параметров нет.  | 
        
| 
     Get_ThreadStartCount  | 
                
     Функция возвращает количество заходов резьбы (целое число). Входных параметров нет.  | 
        
| 
     Set_StartPoint  | 
                
     Метод устанавливает значения координат начальной точки резьбы. Входной параметр: Value (TNC2DPoint) - значения координат начальной точки резьбы. Выходных параметров нет.  | 
        
| 
     Get_StartPoint  | 
                
     Функция возвращает значения координат начальной точки резьбы (TNC2DPoint). Входных параметров нет.  | 
        
| 
     Set_EndPoint  | 
                
     Метод устанавливает значения координат конечной точки резьбы. Входной параметр: Value (TNC2DPoint) - значения координат конечной точки резьбы. Выходных параметров нет.  | 
        
| 
     Get_EndPoint  | 
                
     Функция возвращает значения координат конечной точки резьбы (TNC2DPoint). Входных параметров нет.  | 
        
| 
     Set_TaperDist  | 
                
     Метод устанавливает значение конусности между начальной и конечной точкой резьбы. Входной параметр: Value (вещественное число) - значение конусности между начальной и конечной точкой резьбы. Выходных параметров нет.  | 
        
| 
     Get_TaperDist  | 
                
     Функция возвращает значение значение конусности между начальной и конечной точкой резьбы (вещественное число). Входных параметров нет.  | 
        
| 
     Set_ChamferLength  | 
                
     Метод устанавливает длину фаски для выхода инструмента в конце резьбы. Входной параметр: Value (вещественное число) - длина фаски для выхода инструмента в конце резьбы. Выходных параметров нет.  | 
        
| 
     Get_ChamferLength  | 
                
     Функция возвращает длину фаски для выхода инструмента в конце резьбы (вещественное число). Входных параметров нет.  | 
        
| 
     Set_ChamferAngle  | 
                
     Метод устанавливает значение угла фаски в градусах. Входной параметр: Value (вещественное число) - значение угла фаски в градусах. Выходных параметров нет.  | 
        
| 
     Get_ChamferAngle  | 
                
     Функция возвращает значение угла фаски в градусах (вещественное число). Входных параметров нет.  | 
        
| 
     Set_RetractionPath  | 
                
     Метод устанавливает уровень плоскости отвода. Входной параметр: Value (вещественное число) - уровень плоскости отвода. Выходных параметров нет.  | 
        
| 
     Get_RetractionPath  | 
                
     Функция возвращает заданный уровень плоскости отвода (вещественное число). Входных параметров нет.  | 
        
| 
     Set_RunInPath  | 
                
     Метод устанавливает значение входного участка. Входной параметр: Value (вещественное число) - значение входного участка. Выходных параметров нет.  | 
        
| 
     Get_RunInPath  | 
                
     Функция возвращает значение входного участка (вещественное число). Входных параметров нет.  | 
        
| 
     Set_RunOutPath  | 
                
     Метод устанавливает значение выходного участка. Входной параметр: Value (вещественное число) - значение выходного участка. Выходных параметров нет.  | 
        
| 
     Get_RunOutPath  | 
                
     Функция возвращает значение выходного участка (вещественное число). Входных параметров нет.  | 
        
| 
     Set_ThreadAngle  | 
                
     Метод устанавливает значение угла профиля резьбы. Входной параметр: Value (вещественное число) - значение угла профиля резьбы. Выходных параметров нет.  | 
        
| 
     Get_ThreadAngle  | 
                
     Функция возвращает значение угла профиля резьбы (вещественное число). Входных параметров нет.  | 
        
| 
     Set_InclinationAngle  | 
                
     Метод устанавливает значение угла одной из стенок профиля резьбы относительно вертикали. Входной параметр: Value (вещественное число) - значение. Выходных параметров нет.  | 
        
| 
     Get_InclinationAngle  | 
                
     Функция возвращает значение угла одной из стенок профиля резьбы относительно вертикали (вещественное число). Входных параметров нет.  | 
        
| 
     Set_SequenceType  | 
                
     Метод устанавливает способ врезания на черновых проходах. Входной параметр: Value (TNCThreadSequenceType) - способ врезания на черновых проходах. stRadial - радиально; Выходных параметров нет.  | 
        
| 
     Get_SequenceType  | 
                
     Функция возвращает значение способа врезания на черновых проходах (TNCThreadSequenceType). Входных параметров нет.  | 
        
| 
     Set_PlungeAngle  | 
                
     Метод устанавливает значение угла врезания для стратегии stModifiedFlank. Входной параметр: Value (вещественное число) - значение угла врезания в градусах. Выходных параметров нет.  | 
        
| 
     Get_PlungeAngle  | 
                
     Функция возвращает значение угла врезания для стратегии stModifiedFlank (вещественное число). Входных параметров нет.  | 
        
| 
     Set_DepthIsEqual  | 
                
     Метод устанавливает способ определения глубины резания. Входной параметр: Value (логическое) - способ определения глубины резания. Истина - постоянная глубина, Ложь - постоянная площадь резания. Выходных параметров нет.  | 
        
| 
     Get_DepthIsEqual  | 
                
     Функция возвращает способ определения глубины резания (логическое). Входных параметров нет.  | 
        
| 
     Set_IsPassCountDefined  | 
                
     Метод устанавливает метод определения глубины резания. Входной параметр: Value (логическое) - метод определения глубины резания. Истина - по количеству проходов, Ложь - по начальной глубине. Выходных параметров нет.  | 
        
| 
     Get_IsPassCountDefined  | 
                
     Функция возвращает метод определения глубины резания (логическое). Входных параметров нет.  | 
        
| 
     Set_MinCutDepth  | 
                
     Метод устанавливает значение минимально возможной глубины чернового прохода. Входной параметр: Value (вещественное число) - значение минимально возможной глубины чернового прохода. Выходных параметров нет.  | 
        
| 
     Get_MinCutDepth  | 
                
     Функция возвращает значение минимально возможной глубины чернового прохода (вещественное число). Входных параметров нет.  | 
        
| 
     Set_FirstCutDepth  | 
                
     Метод устанавливает значение глубины первого чернового прохода. Входной параметр: Value (вещественное число) - значение глубины первого чернового прохода. Выходных параметров нет.  | 
        
| 
     Get_FirstCutDepth  | 
                
     Функция возвращает значение глубины первого чернового прохода (вещественное число). Входных параметров нет.  | 
        
| 
     Set_RoughPassCount  | 
                
     Метод устанавливает количество черновых проходов. Входной параметр: Value (целое число) - количество черновых проходов. Выходных параметров нет.  | 
        
| 
     Get_RoughPassCount  | 
                
     Функция возвращает количество черновых проходов (целое число). Входных параметров нет.  | 
        
| 
     Set_FinishPassCount  | 
                
     Метод устанавливает количество чистовых проходов. Входной параметр: Value (целое число) - количество чистовых проходов. Выходных параметров нет.  | 
        
| 
     Get_FinishPassCount  | 
                
     Функция возвращает количество чистовых проходов (целое число). Входных параметров нет.  | 
        
| 
     Set_FinishPassDepth  | 
                
     Метод устанавливает значение глубины чистовых проходов. Входной параметр: Value (вещественное число) - значение глубины чистовых проходов. Выходных параметров нет.  | 
        
| 
     Get_FinishPassDepth  | 
                
     Функция возвращает значение глубины чистовых проходов (вещественное число). Входных параметров нет.  | 
        
| 
     Set_Feedrate  | 
                
     Метод устанавливает значение рабочей подачи. Входной параметр: Value (вещественное число) - значение рабочей подачи. Выходных параметров нет.  | 
        
| 
     Get_Feedrate  | 
                
     Функция возвращает значение рабочей подачи. Входных параметров нет.  | 
        
| 
     Set_MPM  | 
                
     Метод устанавливает тип рабочей подачи. Входной параметр: Value (логическое) - тип рабочей подачи. Истина - мм/мин, Ложь - об/мин. Выходных параметров нет.  | 
        
| 
     Get_MPM  | 
                
     Функция возвращает тип рабочей подачи. Входных параметров нет.  | 
        
| 
     Set_Events  | 
                
     Метод назначает события для управления поведением цикла. При использовании событий можно добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности: выстой, ориентированный останов и прочее, изменить тип или значение подачи, либо пропустить перемещение инструмента подготовленное формирователем. Входной параметр: Value (интерфейс) - объект, реализующий интерфейсы INCT_LatheCycleEvents, INCT_LatheThreadCuttingCycleEvents. Подробное описание ниже. Выходных параметров нет.  | 
        
| 
     Get_Events  | 
                
     Функция возвращает объект, реализующий события, связанный с формирователем цикла (INCT_LatheCycleEvents, INCT_LatheThreadCuttingCycleEvents). Выходных параметров нет.  | 
        
| 
     MakeWorkpath  | 
                
     Метод формирует траекторию цикла по заданным параметрам.  | 
        
INCT_LatheCycleEvents - интерфейс реализуемый в интерпретаторе, который позволяет управлять поведением токарного цикла. Подробно описан в статье Turning cycle threading.
INCT_LatheThreadCuttingCycleEvents - интерфейс реализуемый в интерпретаторе, который позволяет управлять нарезанием резьбы. В интерфейсе описан один метод-событие OnThread, который выполняется при выполнении нарезания резьбы внутри формирователя.
Описание методов интерфейса:
| 
     Метод  | 
                
     Описание метода  | 
                
     Описание использования  | 
        
| 
     OnThread  | 
                
     Метод будет выполнен перед каждым нарезанием резьбы при формировании траектории цикла. Реализация этого метода позволяет изменить параметры резьбы для выбранной итерации. Входные параметры: Orient (TNCThreadOrientation) - ориентация резьбы; LeadType (TNCThreadLeadType) - способ задания шага резьбы; Step (вещественное число) - значение шага резьбы; StartAngle (вещественное число) - начальное угловое положение шпинделя в градусах (используется для многозаходной резьбы). См. INCT_CLData.AddSinglePassThread. Входные и выходные параметры: Handled (логическое) - признак выполнения перемещения внутри реализации (Истина - перемещение выполнено, Ложь - перемещение не выполнено). Если после вызова OnThread параметр Handled принимает значение Истина, это значит, что нарезание резьбы было выполнено внутри реализации метода OnThread и формирователь цикла не добавляет команду нарезания резьбы в траекторию движения инструмента. Если после вызова OnThread параметр Handled принимает значение Ложь, формирователь считает, что нарезание резьбы не было выполнено внутри реализации метода OnThread и добавляет в траекторию движения инструмента команду нарезания резьбы.  | 
                
     При необходимости замены параметров нарезания резьбы. Либо задания алгоритма изменения резьбы на различных заходах, не реализованных в формирователе.  | 
        
| 
     OnCalcBaseDepth  | 
                
     Метод будет выполнен для режима IsPassCountDefined = Истина после расчёта базовой (первой) глубины. Реализация этого метода позволяет изменить значение базовой глубины. Входной и выходной параметр: BaseDepth (вещественное число) - базовая глубина.  | 
        |
| 
     OnCalcCount  | 
                
     Метод будет выполнен для режима IsPassCountDefined = Ложь после расчёта количества проходов. Реализация этого метода позволяет изменить значение количества проходов. Входной и выходной параметр: Count (целое число) - количество проходов.  | 
        |
| 
     OnCalcNextDepth  | 
                
     Метод будет выполнен при расчёте очередной глубины (если количество проходов больше или равно одному). Реализация этого метода позволяет изменить значение глубины для итерации. Входной параметр: Iteration (целое число) - номер итерации (прохода); Входной и выходной параметр: Depth (вещественное число) - глубина на итерации.  | 
        |
| 
     OnCalcPoint  | 
                
     Метод будет выполнен при расчёте координат положения инструмента для очередного перемещения. Реализация этого метода позволяет изменить значение координат для итерации. Входной параметр: Iteration (целое число) - номер итерации (прохода); Входной и выходной параметр: APoint (TNC2DPoint) - координаты положения инструмента на итерации.  |