SINGLETHREAD - Однопроходная резьба
Отображение команды
Как команда отображается в списке команд CLData:
SINGLETHREAD OD(0) | ID(1) | FACE(2), STEP(0) | COUNT(1), s, ANGLE a
Команда SINGLETHREAD используется при непрерывном нарезании цилиндрической или конической резьбы с постоянным шагом токарным резцом. Обычно этому соответствуют G-коды G32 или G33 в управляющей программе.

При активации режима нарезания резьбы включается режим синхронизации перемещения инструмента и вращения шпинделя. Все последующие перемещения инструмента выполняются в этом режиме до получения команды изменения подачи (FEDRAT) или команды ускоренного перемещения (RAPID). Если инструмент перемещается вдоль оси шпинделя, формируется цилиндрическая резьба. Если инструмент перемещается вдоль оси шпинделя и одновременно перпендикулярно ей, обрабатывается коническая резьба. Возможна обработка торцевой резьбы перемещением инструмента только перпендикулярно оси шпинделя.
Параметры команды SINGLETHREAD определяют ориентацию резьбы, шаг резьбы и начальный угол шпинделя.
Шаг резьбы можно задать двумя способами: значением шага или количеством витков резьбы на единицу длины.
Начальный угол шпинделя задаётся в градусах и определяет угол, откладываемый от нулевого сигнала датчика шпинделя перед началом нарезания резьбы. Для нарезания многозаходной резьбы задавайте разные значения угла для разных проходов.
Доступ из sppx
Обработчик: program SingleThread
| Параметр | Массив CLD | Имя CLD | Описание |
|---|---|---|---|
| OD(0) ID(1) FACE(2) |
CLD[1] | CLD.Orientation | Ориентация резьбы: OD(0) - наружная, ID(1) - внутренняя, FACE(2) - торцевая. |
| STEP(0) COUNT(1) |
CLD[2] | CLD.IsCount | Способ задания шага резьбы: STEP(0) - значением, COUNT(1) - количеством витков резьбы на единицу длины. |
| s | CLD[3] | CLD.Value | Значение шага резьбы. |
| a | CLD[4] | CLD.StartAngle | Начальный угол шпинделя (для многозаходной резьбы). |
Пример (из постпроцессора Fanuc (30i)_Mill):
program SingleThread
Feed_ = cld[3]; Feed_@ = MaxReal
QStartAngle = cld[4]; QStartAngle@ = MaxReal
Interp_ = 33; Interp_@ = MaxReal
end
Доступ из .NET
Обработчик:
public override void OnSinglePassThread(ICLDSinglePassThreadCommand cmd, CLDArray cld)
Наследование: ICLDSinglePassThreadCommand : ICLDCommand.
Читайте параметры из строго типизированного объекта cmd (рекомендуется); также доступны «сырой» массив cld[i] (те же индексы, что и в sppx) и именованные помощники cmd["..."]. В таблице перечислены члены команды, включая унаследованные от базовых интерфейсов; общие члены ICLDCommand (навигация, CLD, CLDFile, TechOperation, ...) описаны в разделе Модель доступа к CLData.
| Член | Тип | Описание |
|---|---|---|
cmd.Orientation |
CLDThreadOrient |
Ориентация резьбы (OD, ID, Face) |
cmd.IsODThread |
bool |
Возвращает "True", если это команда нарезания наружной резьбы. |
cmd.IsIDThread |
bool |
Возвращает "True", если это команда нарезания внутренней резьбы. |
cmd.IsFaceThread |
bool |
Возвращает "True", если это команда нарезания торцевой резьбы. |
cmd.Units |
CLDThreadUnits |
Единицы измерения шага резьбы (мм или TPI). |
cmd.StepIsDistance |
bool |
Возвращает "True", если шаг резьбы задан в линейных единицах (обычно в мм). |
cmd.StepIsTPU |
bool |
Возвращает "True", если шаг резьбы задан как число ниток на единицу длины (обычно в нитках на дюйм). |
cmd.Step |
double |
Значение шага резьбы. |
cmd.StartAngle |
double |
Начальный угол резьбы в градусах. Часто используется для многозаходной резьбы. |
Пример - OnSinglePassThread (из постпроцессора Goodway SW):
public override void OnSinglePassThread(ICLDSinglePassThreadCommand cmd, CLDArray cld)
{
nc.GInterp.v = 32;
if (cmd.StepIsTPU)
nc.F.v = 1.0/cmd.Step;
else
nc.F.v = cmd.Step;
nc.QThreadAngle.v = cmd.StartAngle;
nc.QThreadAngle.v0 = 0;
}