FEDRAT - Подача
Отображение команды
Как команда отображается в списке команд CLData:
FEDRAT NM nm, K k, MMPM(315) | MMPR(316)
Команда FEDRAT задаёт значение и тип подачи инструмента. Значение подачи сохраняется до следующей команды FEDRAT или команды RAPID.
CAM-система использует FEDRAT для передачи кода условий обработки.
Доступ из sppx
Обработчик: program Fedrat
| Параметр | Массив CLD | Имя CLD | Описание |
|---|---|---|---|
| nm | CLD[1] | CLD.NM | Значение подачи. |
| k | CLD[2] | CLD.K | Тип подачи (рабочая подача, подача подвода, подача отвода, подача перехода, подача врезания и т. д.). 0 - рабочая, 2 - подача первого прохода, 4 - подача подвода, 8 - подача отвода, 16 - подача врезания, 32 - подача чистового прохода 64 - переход на следующий проход, 128 - подача возврата, 256 - подача подхода. Для операций электроэрозионной обработки CAM-система использует этот параметр для передачи кода условий обработки. |
| MMPM(315) MMPR(316) |
CLD[3] | CLD.MMPM | Единицы измерения подачи: MMPM(315) - мм в минуту, MMPR(316) - мм на оборот |
Пример (из постпроцессора Fanuc (30i)_Mill):
program Fedrat
FEED_ = cld[1] ! заполнение регистра FEED_
if INTERP_ = 0 then INTERP_ = 1 ! G1
if cld[3]=315 then GFeed = 94
else GFeed = 95
end
Доступ из .NET
Обработчики:
public override void OnMoveVelocity(ICLDMoveVelocityCommand cmd, CLDArray cld) // общий обработчик скорости (FEDRAT и RAPID)
public override void OnFeedrate(ICLDFeedrateCommand cmd, CLDArray cld) // рабочая подача
Наследование: ICLDFeedrateCommand : ICLDMoveVelocityCommand : ICLDCommand.
Читайте параметры из строго типизированного объекта cmd (рекомендуется); также доступны «сырой» массив cld[i] (те же индексы, что и в sppx) и именованные помощники cmd["..."]. В таблице перечислены члены команды, включая унаследованные от базовых интерфейсов; общие члены ICLDCommand (навигация, CLD, CLDFile, TechOperation, ...) описаны в разделе Модель доступа к CLData.
| Член | Тип | Описание |
|---|---|---|
cmd.IsRapid |
bool |
Содержит "true", если команда является командой RAPID, иначе - "false". |
cmd.FeedKind |
CLDFeedKind |
Вид подачи (рабочая, ускоренная, подвод, возврат, чистовая и т. д.). Возможные значения: Working (0) - Вид подачи для базовых рабочих перемещений.Rapid (1) - Вид подачи для ускоренных перемещений.First (2) - Вид подачи для рабочих перемещений на первом (черновом) проходе.Engage (4) - Вид подачи для перемещений, входящих в первую точку обработки (резания).Retract (8) - Вид подачи для перемещений, покидающих последнюю точку обработки (резания).Plunge (16) - Вид подачи для перемещений, вертикально врезающихся в зону обработки.Finish (32) - Вид подачи для рабочих перемещений на последнем (чистовом) проходе.Next (64) - Вид подачи для коротких связующих перемещений.Return (128) - Вид подачи для перемещений, уводящих инструмент от места обработки.Approach (256) - Вид подачи для перемещений, приближающих инструмент к месту обработки.Rapid5D (512) - Значение вида подачи, зарезервированное для внутреннего использования.TransitionOnSafe (1024) - Вид подачи для перемещений, выполняемых в безопасной зоне.ApproachFromSafe (2048) - Вид подачи для перемещений из безопасной зоны к месту обработки.ReturnToSafe (4096) - Вид подачи для перемещений от места обработки в безопасную зону.LongNext (8192) - Вид подачи для длинных связующих перемещений.ThreadPitch (16384) - Вид подачи для перемещений при нарезании резьбы.Overload (1073741824) - Значение вида подачи, зарезервированное для внутреннего использования. |
cmd.FeedCode |
int |
Числовое представление флага "FeedKind", определяющего вид подачи (рабочая, ускоренная, подвод, возврат, чистовая и т. д.). Для проволочной электроэрозионной обработки содержит числовой код строки в таблице условий обработки. |
cmd.FeedUnits |
CLDFeedUnits |
Единицы измерения подачи (мм/мин, мм/об и т. д.) Возможные значения: MPM (0) - Текущие линейные единицы (мм или дюйм) в минуту.MPR (1) - Текущие линейные единицы (мм или дюйм) на оборот.ConditionCode (2) - Числовой код строки в таблице условий обработки (для проволочной электроэрозионной обработки). |
cmd.FeedValue |
double |
Значение подачи. |
Пример - OnMoveVelocity (из постпроцессора Fanuc (30i)_Mill_DN):
public override void OnMoveVelocity(ICLDMoveVelocityCommand cmd, CLDArray cld)
{
if (cmd.IsRapid) {
nc.GInterp.v = 0;
} else {
if (nc.GInterp == 0)
nc.GInterp.v = 1;
nc.F.v = cmd.FeedValue;
if (cmd.FeedUnits==CLDFeedUnits.MPR)
nc.GFeed.v = 95;
else
nc.GFeed.v = 94;
if (IsFirstFeed)
{
nc.F.Show();
nc.GFeed.Show();
IsFirstFeed = false;
}
}
}