Токарный цикл обработки резанием
INCT_LatheStockRemovalCycleFormer - интерфейс CAM системы, который реализует функциональность по упрощению формирования перемещений токарного цикла точения по заданному контуру. Объект, реализующий этот интерфейс возвращает функция INCT_CLData.CreateLatheCycleFormer, INCT_GeomCLData.CreateLatheCycleFormer при её выполнении с параметром lctStockRemoval.
Интерфейс INCT_LatheStockRemovalCycleFormer2 расширяет возможности формирователя перемещений токарного цикла по заданному контуру. Описание новых свойств и методов представлено ниже. Объект, реализующий этот интерфейс возвращает функция CreateLatheCycleFormer (аналогично INCT_LatheStockRemovalCycleFormer).
Предназначение:
Выполнение перемещений в различных типах токарных циклов точения по заданному контуру, для разных стоек в общем случае повторяют одинаковую траекторию:
- Подвод инструмента к стартовой точке или точке следующего захода на ускоренной подаче.
- Подвод к уровню чернового прохода на ускоренной подаче.
- Подвод к точке чернового прохода параллельно продольной оси на рабочей подаче (черновой проход).
- Возврат параллельно контуру вдоль контура с учётом чистового припуска до последней точки чернового прохода на рабочей подаче (завершение чернового прохода).
- Возврат к плоскости отвода на подаче с ускоренным перемещением.
- Возврат к пункту 1, если глубина обработки не достигнута.
- Чистовая обработка контура (подвод к стартовой точке на ускоренной подаче, чистовая обработка вдоль контура на рабочей подаче, отвод на ускоренной подаче).
Примеры таких циклов, Sinumerik: CYCLE95.
Использование формирователя позволяет по заданным параметрам: траектория контура, плоскость отвода, шаг обработки, тип и направление обработки и пр. сформировать траекторию движения инструмента. А так же добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности, изменить тип или значение подачи, либо пропустить перемещение инструмента подготовленное формирователем.
Использование формирователя:
Рекомендуем создавать новый формирователь токарного цикла для каждого нового цикла в кадре управляющей программы, кроме случаев повторения работы цикла в новом кадре. Таким образом, интерфейс старого формирователя должен освобождаться при создании нового или завершении работы интерпретатора.
Для формирования команд движения инструмента по траектории цикла, необходимо выполнить следующие шаги:
- Получить интерфейс формирователя (INCT_CLData.CreateLatheCycleFormer, INCT_GeomCLData.CreateLatheCycleFormer).
- Задать индексы продольной и поперечной осей по которым будут производиться перемещения (Set_AxisIndexes).
- Установить параметры цикла (Set_NCProgram, Set_MachiningType, Set_MachiningDirection, Set_Overlap и пр., описание см. ниже).
- Назначить обработчик событий цикла (Set_Events), если в траекторию цикла нужно вносить изменения.
- Сформировать команды движения инструмента по траектории цикла (MakeWorkpath).
Описание методов интерфейса:
| Метод | Описание метода |
|---|---|
| Set_AxisIndexes | Метод устанавливает индексы продольной и поперечной осей по которым будут производиться перемещения при формировании траектории цикла. Входные параметры: Value (TNCLCAxisIndexes) - Transverse (целое число) - индекс поперечной оси, Longitudinal (целое число) - индекс продольной оси. Выходных параметров нет. |
| Get_AxisIndexes | Функция возвращает индексы продольной и поперечной осей в которых будут производиться перемещения при формировании траектории цикла (TNCLCAxisIndexes). Входных параметров нет. |
| Set_Plane | Метод устанавливает текущую плоскость для управляющей программы контура, если плоскость не задана, то используется текущая плоскость на момент получения геометрии контура. Входные параметры: Value (TNCPlaneType) - текущая плоскость для управляющей программы контура. Выходных параметров нет. |
| Get_Plane | Функция возвращает текущую плоскость для управляющей программы контура. Входных параметров нет. |
| Set_NCProgram | Метод передаёт в формирователь интерфейс, реализующий текст контура управляющей программы. Входной параметр: Value (INCT_Program) - интерфейс, реализующий текст контура управляющей программы. Текст контура можно получить при помощи метода INCT_ProgramManager.GetPartByIndex, INCT_ProgramManager.GetPartByLabels. Выходных параметров нет. |
| Get_NCProgram | Функция возвращает интерфейс, реализующий текст контура управляющей программы (INCT_Program). Входных параметров нет. |
| Set_RecalcContourGeometry | Метод задаёт признак необходимости выполнения интерпретации управляющей программы контура. Входной параметр: Value (логический) - Ложь - не выполнять интерпретацию УП контура, если она уже выполнена, Истина - выполнить интерпретацию УП контура в любом случае. |
| Get_RecalcContourGeometry | Функция возвращает признак необходимости выполнения интерпретации управляющей программы контура. Входных параметров нет. |
| Set_MachiningProcessing | Метод устанавливает тип обработки. Входной параметр: Value (TNCMachiningProcessing) - тип обработки. mpRoughing - черновая (выполняется несколько проходов с учётом заданных параметров припуска, шага и пр.); Выходных параметров нет. |
| Get_MachiningProcessing | Функция возвращает тип обработки. Входных параметров нет. |
| Set_MachiningType | Метод устанавливает тип обработки. Входной параметр: Value (TNCLatheMachiningType) - тип обработки. mtInside - внутри; Выходных параметров нет. |
| Get_MachiningType | Функция возвращает тип обработки (TNCLatheMachiningType). Входных параметров нет. |
| Set_MachiningDirection | Метод устанавливает значение направления обработки. Входной параметр: Value (TNCLatheMachiningDirection) - значение направления обработки. mdLongitudinal - продольная; Выходных параметров нет. |
| Get_MachiningDirection | Функция возвращает значение направления обработки (TNCLatheMachiningDirection). Входных параметров нет. |
| Set_MachiningStyle | Метод устанавливает стиль обработки контура при черновой обработке. Входные параметры: Value (TNCLatheMachiningStyle) - стиль обработки. msBars - на каждой итерации обработка параллельно оси (продольной или поперечной в зависимости от MachiningDirection); msCopyContour - на каждой итерации обработка параллельно контуру (повтор контура). Выходных параметров нет. |
| Get_MachiningStyle | Функция возвращает стиль обработки контура при черновой обработке. Входных параметров нет. |
| Set_Overlap | Метод устанавливает значение типа перебега. Входной параметр: Value (логический) - значение типа перебега. Истина - с возвратом по контуру, Ложь - с прямым возвратом. Выходных параметров нет. |
| Get_Overlap | Функция возвращает значение типа перебега (логическое). Входных параметров нет. |
| Set_AxialStock | Метод устанавливает значение осевого припуска на контур. Входной параметр: Value (вещественное число) - значение осевого припуска на контур. Выходных параметров нет. |
| Get_AxialStock | Функция возвращает значение осевого припуска на контур (вещественное число). Входных параметров нет. |
| Set_RadialStock | Метод устанавливает значение радиального припуска на контур. Входной параметр: Value (вещественное число) - значение радиального припуска на контур. Выходных параметров нет. |
| Get_RadialStock | Функция возвращает значение радиального припуска на контур (вещественное число). Входных параметров нет. |
| Set_ProfileStock | Метод устанавливает значение эквидистантного припуска на контур. Входной параметр: Value (вещественное число) - значение эквидистантного припуска на контур. Выходных параметров нет. |
| Get_ProfileStock | Функция возвращает значение эквидистантного припуска на контур (вещественное число). Входных параметров нет. |
| Set_StartPointMode | Метод устанавливает режим задания начальной точки контура. Входные параметры: Value (TNCLatheStartPointMode) - режим задания начальной точки контура. spmCalcPoint - начальная точка рассчитывается циклом; spmSetPoint - начальная точка задаётся (см. StartPoint). Выходных параметров нет. |
| Get_StartPointMode | Функция возвращает режим задания начальной точки контура. Входных параметров нет. |
| Set_StartPoint | Метод устанавливает начальную точку цикла (для режима StartPointMode = spmSetPoint). Входные параметры: Value (TNC2DPoint) - начальная точка цикла. Выходных параметров нет. |
| Get_StartPoint | Функция возвращает начальную точку цикла. Входных параметров нет. |
| Set_EachReliefcutSeparately | Метод устанавливает значение признака обработки поднутрений. Входной параметр: Value (логическое) - Истина - каждое поднутрение обрабатывается отдельно, Ложь - все поднутрения обрабатываются за один проход. Выходных параметров нет. |
| Get_EachReliefcutSeparately | Функция возвращает значение признака обработки поднутрений. Входных параметров нет. |
| Set_DoReliefcutsInReverseOrder | Метод устанавливает признак порядка обработки поднутрений. Входные параметры: Value (логический) - признак порядка обработки поднутрений. Истина - обрабатывать поднутрения в обратном порядке. Ложь - обрабатывать поднутрения в прямом порядке. Выходных параметров нет. |
| Get_DoReliefcutsInReverseOrder | Функция возвращает признак порядка обработки поднутрений. Входных параметров нет. |
| Set_StepType | Метод устанавливает тип расчёта шага черновой обработки. Входной параметр: Value (TNCLatheStepType) - тип расчёта шага черновой обработки. stConst - при каждом проходе глубина обработки составляет значение шага обработки (Set_Step); Выходных параметров нет. |
| Get_StepType | Функция возвращает тип шага черновой обработки (TNCLatheStepType). Входных параметров нет. |
| Set_Step | Метод устанавливает значение шага обработки. Входной параметр: Value (вещественное число) - значение шага обработки. Выходных параметров нет. |
| Get_Step | Функция возвращает значение шага обработки (вещественное число). Входных параметров нет. |
| Set_SafeDist | Метод устанавливает значение отвода для возврата (значение отскока в бок перед выводом инструмента). Входной параметр: Value (вещественное число) - значение отвода. Выходных параметров нет. |
| Get_SafeDist | Функция возвращает значение отвода для возврата (вещественное число). Входных параметров нет. |
| Set_LengthChipBreaking | Метод устанавливает значение длины хода для ломки стружки. Входной параметр: Value (вещественное число) - значение длины хода для ломки стружки. Выходных параметров нет. |
| Get_LengthChipBreaking | Функция возвращает значение длины хода для ломки стружки (вещественное число). Входных параметров нет. |
| Set_Feedrate | Метод устанавливает значение рабочей подачи. Входной параметр: Value (вещественное число) - значение рабочей подачи. Выходных параметров нет. |
| Get_Feedrate | Функция возвращает значение рабочей подачи. Входных параметров нет. |
| Set_MPM | Метод устанавливает тип рабочей подачи. Входной параметр: Value (логическое) - тип рабочей подачи. Истина - мм/мин, Ложь - мм/об. Выходных параметров нет. |
| Get_MPM | Функция возвращает тип рабочей подачи. Входных параметров нет. |
| Set_UseContourFeedrate | Метод устанавливает признак использования подачи, установленной в управляющей программе задания контура. Входные параметры: Value (логическое) - признак использования подачи. Истина - подача, установленная в контуре управляющей программы используется при обработке этих же участков контура. Ложь - подача, установленная в контуре игнорируется. Выходных параметров нет. |
| Get_UseContourFeedrate | Функция возвращает признак использования подачи, установленной в управляющей программе задания контура. Входных параметров нет. |
| Set_Events | Метод назначает события для управления поведением цикла. При использовании событий можно добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности: выстой, ориентированный останов и прочее, изменить тип или значение подачи, либо пропустить перемещение инструмента подготовленное формирователем. Входной параметр: Value (интерфейс) - объект, реализующий интерфейсы INCT_LatheCycleEvents (подробно описан в статье Токарный цикл точения канавок), INCT_LatheCycleArcEvents (описан ниже), а также INCT_LatheStockRemovalCycleEvents, INCT_LatheStockRemovalCycleEvents2, INCT_LatheStockRemovalCycleEvents3 (описаны ниже). Формирователь запрашивает все эти интерфейсы у переданного объекта; объект может реализовать только нужные из них. Выходных параметров нет. |
| Get_Events | Функция возвращает объект, реализующий события, связанный с формирователем цикла (INCT_LatheCycleEvents, INCT_LatheCycleArcEvents). Входных параметров нет. |
| Get_SignLongitudinal | Функция возвращает знак продольной обработки (целое число). 1 - направление совпадает с продольной осью, 0 - направление не определено; -1 - направление обратное продольной оси. Входных параметров нет. |
| Get_SignTransverse | Функция возвращает знак поперечной обработки (целое число). 1 - направление совпадает с поперечной осью, 0 - направление не определено; -1 - направление обратное поперечной оси. Входных параметров нет. |
| MakeWorkpath | Метод формирует траекторию цикла по заданным параметрам. Процесс формирования траектории движения:
|
INCT_LatheStockRemovalCycleFormer2 расширяет возможности формирователя перемещений токарного цикла по заданному контуру.
| Метод | Описание метода |
|---|---|
| Set_PassReturnMethod | Метод задаёт порядок выполнения возврата к точке захода. Входной параметр: Value (TNCPassReturnMethod) - порядок выполнения возврата к точке захода. prmStepwise - Для каждой итерации цикла возврат сначала выполняется по нормали к оси подачи, а затем по нормали к оси обработки; prmDirect - Для каждой итерации цикла возврат выполняется напрямую в точку следующего захода. Выходных параметров нет. |
| Get_PassReturnMethod | Функция возвращает порядок выполнения возврата к точке захода (TNCPassReturnMethod). Входных параметров нет. |
| Set_CutDepthCalcMethod | Метод задаёт способ определения глубины резания. Входной параметр: Value (TNCCutDepthCalcMethod) - способ определения глубины резания. cdcByStep - Глубина каждого реза равна или меньше (на последней итерации цикла) заданному шагу обработки; cdcByCount - Глубина каждого реза рассчитывается на основе заданного количества повторов цикла. Выходных параметров нет. |
| Get_CutDepthCalcMethod | Функция возвращает способ определения глубины резания (TNCCutDepthCalcMethod). |
| Set_Count | Метод задаёт количество повторений цикла (для способа определения глубины резания - по количеству повторов cdcByCount) Входной параметр: Value (целое число) - количество повторений. Выходных параметров нет. |
| Get_Count | Функция возвращает количество повторений цикла (для способа определения глубины резания - по количеству повторов cdcByCount). Входных параметров нет. |
| Set_Offset | Метод задаёт смещение точки начала обработки контура на каждом проходе. Входной параметр: Value (вещественное число) - смещение точки начала контура. Выходных параметров нет. |
| Get_Offset | Функция возвращает смещение точки начала обработки контура на каждом проходе. Входных параметров нет. |
| Get_ContourStartPoint | Функция возвращает координаты точки начала контура с учётом заданного в формирователе припуска (TNC2DPoint) |
| Get_ContourEndPoint | Функция возвращает координаты точки окончания контура с учётом заданного в формирователе припуска (TNC2DPoint) |
| Set_AxialStockDependsOnContour | Метод задаёт способ учёта осевого и радиального припусков (Set_AxialStock, Set_RadialStock). Входной параметр: Value (логическое). Истина (по умолчанию) - припуски берутся по модулю, а направление смещения определяется контуром и направлением обработки; Ложь - припуски считаются сдвигами вдоль осей с заданным знаком. Выходных параметров нет. |
| Get_AxialStockDependsOnContour | Функция возвращает способ учёта осевого и радиального припусков (логическое). Входных параметров нет. |
| Set_StartPointContainsSafeDist | Метод задаёт, учитывать ли значение отвода (Set_SafeDist) при расчёте начальной точки цикла (для режима StartPointMode = spmCalcPoint). Входной параметр: Value (логическое). Истина (по умолчанию) - начальная точка отодвигается от контура с учётом припусков и значения отвода; Ложь - только с учётом припусков. Выходных параметров нет. |
| Get_StartPointContainsSafeDist | Функция возвращает признак учёта значения отвода при расчёте начальной точки цикла (логическое). Входных параметров нет. |
INCT_LatheCycleArcEvents - интерфейс, реализуемый в интерпретаторе, который позволяет управлять поведением токарного цикла при построении дуг. Интерфейс представляет из себя один метод-событие, которые выполняется при перемещении инструмента по дуге внутри формирователя траектории цикла. Используя метод интерфейса можно добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности: выстой, ориентированный останов и прочее, изменить тип подачи, либо пропустить перемещение инструмента подготовленное формирователем.
Описание метода интерфейса:
| Метод | Описание метода | Описание использования |
|---|---|---|
| OnArc | Метод будет выполнен перед каждым перемещением инструмента по дуге при формировании траектории цикла. Входные параметры: MoveType (TNCLatheCycleMoveType) - тип перемещения, описание см. Токарный цикл точения канавок; Входные и выходные параметры: Center (TNC2DPoint) - координаты центра дуги; Point (TNC2DPoint) - координаты конечной точки дуги; Radius (вещественное число) - радиус дуги; Feed (TNCFeedType) - тип подачи; Handled (логическое) - признак выполнения перемещения внутри реализации (Истина - перемещение выполнено, Ложь - перемещение не выполнено). Если после вызова OnArc параметр Handled принимает значение Истина, это значит, что перемещение было выполнено внутри реализации метода OnArc и формирователь цикла не добавляет команду перемещения по дуге в траекторию движения инструмента. Если после вызова OnArc параметр Handled принимает значение Ложь, формирователь считает, что перемещение по дуге не было выполнено внутри реализации метода OnArc и добавляет в траекторию движения инструмента команду перемещения по дуге в точку Point с типом подачи Feed. |
При необходимости переопределения перемещения по дуге или подачи, либо для отказа от перемещения (пропуска). Например, если нужно изменить тип подачи при проходе вдоль контура, то в реализации метода OnArc необходимо изменить значение возвращаемого методом параметра Feed по условию MoveType = lmOverlapContour (типы подачи см. в описании OutStandardFeed). Если нужно выполнить перемещение инструмента в точку, отличную от рассчитанной циклом, необходимо изменить значения возвращаемых методом OnArc параметров Center, Point, Radius. Если перемещение в рассчитанную циклом точку выполнять не нужно, тогда внутри реализации метода OnArc нужно изменить значение параметра Handled на Истина. |
INCT_LatheStockRemovalCycleEvents - интерфейс, реализуемый в интерпретаторе, который позволяет управлять поведением токарного цикла обработки резанием. Интерфейс представляет из себя один метод-событие, которые выполняется после получения геометрии контура и перед расчётом траектории цикла. Используя метод интерфейса и интерфейс INCT_InterpreterState можно получить из текста управляющей программы параметры контура и передать их формирователю траектории цикла для корректного формирования (например, направление обработки, если оно задаётся командой в траектории контура).
Описание методов интерфейса:
| Метод | Описание метода | Описание использования |
|---|---|---|
| OnCalcContourGeometry | Метод будет выполнен после получения геометрии контура и перед расчётом траектории цикла формирователем Параметров нет. |
Используя метод интерфейса и интерфейс INCT_InterpreterState можно получить из текста управляющей программы параметры контура и передать их формирователю траектории цикла для корректного формирования (например, направление обработки, если оно задаётся командой в траектории контура). |
INCT_LatheStockRemovalCycleEvents2 - интерфейс, реализуемый в интерпретаторе, который позволяет управлять поведением токарного цикла обработки резанием. Расширяет интерфейс INCT_LatheStockRemovalCycleEvents.
Описание методов интерфейса:
| Метод | Описание метода | Описание использования |
|---|---|---|
| OnCalcNextStep | Метод выполняется при расчёте траектории движения инструмента для каждого прохода. Предназначен для изменения шага и смещения, используемых при расчёте следующей точки начала прохода по контуру и точки возврата после прохода по контуру для текущей итерации. Входные параметры: Iteration (Целое число) - номер прохода, начиная с 1; PointType (TNCLSRPointType) - тип точки контура: ptProfilePoint - точка начала прохода по контуру; ptReturnPoint - точка возврата после прохода по контуру. Входные и выходные параметры: Step (Вещественное число) - шаг для расчёта текущего прохода (Ось врезания); Offset (Вещественное число) - смещение для расчёта текущего прохода (вторая ось, перпендикулярная оси врезания). |
Используя метод интерфейса можно задать собственный алгоритм расчёта точек начала прохода по контуру и возврата после прохода по контуру для каждого прохода, оперируя шагом и смещением на текущей итерации. |
| OnCalcNextPoint | Метод выполняется при расчёте траектории движения инструмента для каждого прохода. Предназначен для изменения координат точек начала прохода по контуру и возврата после прохода по контуру, рассчитанных для текущей итерации. Входные параметры: Iteration (Целое число) - номер прохода, начиная с 1; PointType (TNCLSRPointType) - тип точки контура: ptProfilePoint - точка начала прохода по контуру; ptReturnPoint - точка возврата после прохода по контуру. Входные и выходные параметры: Point (TNC2DPoint) - координаты точки. |
Используя метод интерфейса можно задать собственный алгоритм расчёта точек начала прохода по контуру и возврата после прохода по контуру для каждого прохода, оперируя координатами точек на текущей итерации. |
INCT_LatheStockRemovalCycleEvents3 - интерфейс, реализуемый в интерпретаторе, который позволяет управлять поведением токарного цикла обработки резанием. Расширяет интерфейс INCT_LatheStockRemovalCycleEvents2.
Описание методов интерфейса:
| Метод | Описание метода | Описание использования |
|---|---|---|
| OnCalcSafeCut | Метод выполняется при расчёте траектории движения инструмента. Предназначен для изменения рассчитанного внутри цикла значений отвода для возврата (значений отскока в бок перед выводом инструмента). Входные и выходные параметры: Point (TNC2DPoint) - координаты точки (относительные). |
Перед вызовом метода цикл рассчитывает отвод по значению Set_SafeDist вдоль обеих осей в сторону от контура. Используя метод интерфейса можно задать собственное значение отвода, например отвод только вдоль одной оси. Новое значение используется при подводе к началу обработки, при возврате на безопасное расстояние после прохода и при расчёте уровней проходов. |
INCT_InterpreterState - интерфейс, реализуемый интерпретатором (тем же объектом, который реализует интерфейс INCT_Interpreter), который позволяет сохранять текущее состояние интерпретатора и загружать его во вновь созданный экземпляр интерпретатора для корректного формирования траектории контура.
Например, для формирования траектории контура необходимо знать текущую плоскость. Для этого интерпретатор должен создать объект, сохранить в этот объект текущую плоскость (метод Save), а при создании нового экземпляра интерпретатора восстановить текущую плоскость из переданного ему объекта (метод Load).
Описание методов интерфейса:
| Метод | Описание метода | Описание использования |
|---|---|---|
| Save | Метод должен создать объект, реализующий свой собственный интерфейс, сохранить в объект данные текущего состояния, передать интерфейс на объект в выходном параметре. Входных параметров нет. Выходной параметр: State - интерфейс IUnknown. | Для формирования траектории контура необходимо знать текущую плоскость, заданную в тексте управляющей программы. При реализации метода Save необходимо сохранить текущую плоскость в созданный внутри метода объект. Ссылка на объект будет передана ядром CAM системы в новый экземпляр интерпретатора, путём вызова метода Load. При реализации которого необходимо получить значение текущей плоскости из переданного объекта. |
| Load | Метод должен получить собственный интерфейс от переданного во входном параметре объекта, получить текущее состояние интерпретатора, необходимое для формирования траектории контура. Входной параметр: State - интерфейс IUnknown. Выходных параметров нет. |