Многокоординатное перемещение по окружности <MULTIARC>
Команда <MULTIARC> задает перемещение по дуге окружности, проходящей через три точки, с заданной ориентацией инструмента в пространстве для каждой из этих точек. На рисунке ниже SP - начальная позиция, в которой находится инструмент перед выполнением команды, MP - промежуточное положение инструмента на дуге, EP - конечное положение инструмента.
    
Команда:
MULTIARC EPX ep.X, EPY ep.Y, EPZ ep.Z, EPRX ep.Rx, EPRY ep.Ry, EPRZ ep.Rz, EPRW ep.Rw, MPX mp.X, MPY mp.Y, MPZ mp.Z, MPRX mp.Rx, MPRY mp.Ry, MPRZ mp.Rz, MPRW mp.Rw)
Параметры:
| 
     Параметр  | 
                
     Описание  | 
        ||
| 
     ep.X  | 
                
     CLD[1]  | 
                
     CLD.EPX  | 
                
     Декартовы координаты X, Y и Z конечной точки дуги  | 
        
| 
     ep.Y  | 
                
     CLD[2]  | 
                
     CLD.EPY  | 
        |
| 
     ep.Z  | 
                
     CLD[3]  | 
                
     CLD.EPZ  | 
        |
| 
     ep.Rx  | 
                
     CLD[4]  | 
                
     CLD.EPRX  | 
                
     Параметры, определяющие ориентацию инструмента в конечной точке дуги относительно текущей системы координат (поля RX, RY, RZ и RW). В зависимости от настроек системы (определяются в схеме станка) ориентация инструмента может задаваться: 
  | 
        
| 
     ep.Ry  | 
                
     CLD[5]  | 
                
     CLD.EPRY  | 
        |
| 
     ep.Rz  | 
                
     CLD[6]  | 
                
     CLD.EPRZ  | 
        |
| 
     ep.Rw  | 
                
     CLD[7]  | 
                
     CLD.EPRW  | 
        |
| 
     mp.X  | 
                
     CLD[8]  | 
                
     CLD.MPX  | 
                
     Декартовы координаты X, Y и Z промежуточной точки дуги  | 
        
| 
     mp.Y  | 
                
     CLD[9]  | 
                
     CLD.MPY  | 
        |
| 
     mp.Z  | 
                
     CLD[10]  | 
                
     CLD.MPZ  | 
        |
| 
     mp.Rx  | 
                
     CLD[11]  | 
                
     CLD.MPRX  | 
                
     Параметры, определяющие ориентацию инструмента в промежуточной точке дуги относительно текущей системы координат (поля RX, RY, RZ и RW). В зависимости от настроек системы (определяются в схеме станка) ориентация инструмента может задаваться: 
  | 
        
| 
     mp.Ry  | 
                
     CLD[12]  | 
                
     CLD.MPRY  | 
        |
| 
     mp.Rz  | 
                
     CLD[13]  | 
                
     CLD.MPRZ  | 
        |
| 
     mp.Rw  | 
                
     CLD[14]  | 
                
     CLD.MPRW  | 
        |
Параметры, доступные через оператор Cmd
| 
     TCLDMultiArc: ComplexType  | 
                
     Команда перемещения по окружности, задаваемой тремя точками в пространстве.  | 
        ||||
| 
     EndPos: ComplexType  | 
                
     Cmd.Ptr["EndPos"] - структура, поля которой задают расположение инструмента в конечной точке окружности.  | 
        ||||
| 
     Axes: Array, Key="AxisID"  | 
                
     Cmd.Ptr["Axes"] - Массив структур типа Axis. Одна команда может содержать перемещения сразу по нескольким осям станка, положение каждой из которых хранится в данном массиве.  | 
        ||||
| 
     Axis: ComplexType  | 
                
     Cmd.Ptr["Axes"].Item[Index] или Cmd.Ptr["Axes(<AxisName>)"] - Отдельный элемент массива Axes. Содержит информацию о перемещении по одной оси станка. Доступ к элементам массива возможен либо по индексу, либо по ключевому полю. Здесь <AxisName> - значение ключевого поля, которое должно совпадать со значением поля AxisID.  | 
        ||||
| 
     AxisID: String  | 
                
     Cmd.Str["Axes(<AxisName>).AxisID"] - Идентификатор управляемой координаты (оси) станка, для которой задается новое положение. Определяется схемой станка.  | 
        ||||
| 
     Value: Double  | 
                
     Cmd.Flt["Axes(<AxisName>).Value"] - Новое положение оси станка, в которое она перемещается.  | 
        ||||
| 
     Pos5D: ComplexType  | 
                
     Cmd.Ptr["Pos5D"] - структура содержащая координаты, определяющие конечное положение инструмента в пространстве. Определяет не только положение настроечной точки инструмента (поля X, Y и Z - декартовы координаты), но и ориентацию инструмента относительно текущей системы координат (поля NX, NY, NZ и NW). В зависимости от настроек системы (определяются в схеме станка) ориентация инструмента может задаваться: 
  | 
        ||||
| 
     X: Double  | 
                
     Cmd.Flt["Pos5D.X"] - декартова координата X положения кончика инструмента.  | 
        ||||
| 
     Y: Double  | 
                
     Cmd.Flt["Pos5D.Y"] - декартова координата Y положения кончика инструмента.  | 
        ||||
| 
     Z: Double  | 
                
     Cmd.Flt["Pos5D.Z"] - декартова координата Z положения кончика инструмента.  | 
        ||||
| 
     NX: Double  | 
                
     Cmd.Flt["Pos5D.NX"] - в зависимости от настроек системы может содержать компонент NX вектора нормали инструмента, угол поворота вокруг одной из координатных осей, либо коэффициент кватерниона.  | 
        ||||
| 
     NY: Double  | 
                
     Cmd.Flt["Pos5D.NY"] - в зависимости от настроек системы может содержать компонент NY вектора нормали инструмента, угол поворота вокруг одной из координатных осей, либо коэффициент кватерниона.  | 
        ||||
| 
     NZ: Double  | 
                
     Cmd.Flt["Pos5D.NZ"] - в зависимости от настроек системы может содержать компонент NZ вектора нормали инструмента, угол поворота вокруг одной из координатных осей, либо коэффициент кватерниона.  | 
        ||||
| 
     NW: Double  | 
                
     Cmd.Flt["Pos5D.NW"] - при заданном способе вывода ориентации инструмента в виде кватерниона, представляет собой четвертый коэффициент кватерниона.  | 
        ||||
| 
     MachineStateFlags: Integer  | 
                
     Cmd.Ptr["MachineStateFlags"].Bit[i], i=(0..31). Цело число, которое представляет собой битовое поле из 32 бит от 0 до 31. При наличии нескольких вариантов расположения осей станка, обеспечивающих заданное положение инструмента в пространстве, каждый бит этого поля определяет выбор одного из возможных решений. Например, пятикоординатный станок с осями A и C для большинства положений инструмента имеет два возможных решения - с положительным значением оси A и с отрицательным значением оси A. Нулевой бит этого поля будет определять какое из этих решений выбрать. Для стандартного шести осевого робота многие положения инструмента в пространстве могут быть обеспечены различным сочетанием положений трех его ключевых сочленений - базы, локтя и кисти, что дает в общей сложности 8 возможных решений. В этом случае нулевой бит данного поля будет определять положение базы, первый бит - положение локтя, а третий бит будет задавать положение кисти робота. Таким образом, смысл каждого из битов данного поля целиком определяется используемой схемой станка. При использовании станков, в которых необходимости использования данных флагов нет, в схеме станка имеется возможность отключить вывод данного параметра в CLData.  | 
        ||||
| 
     MidPos: ComplexType  | 
                
     Cmd.Ptr["MidPos"] - структура, поля которой задают расположение инструмента в некоторой промежуточной точке окружности.  | 
        ||||
| 
     Axes: Array, Key="AxisID"  | 
                
     Cmd.Ptr["Axes"] - Массив структур типа Axis. Одна команда может содержать перемещения сразу по нескольким осям станка, положение каждой из которых хранится в данном массиве.  | 
        ||||
| 
     Axis: ComplexType  | 
                
     Cmd.Ptr["Axes"].Item[Index] или Cmd.Ptr["Axes(<AxisName>)"] - Отдельный элемент массива Axes. Содержит информацию о перемещении по одной оси станка. Доступ к элементам массива возможен либо по индексу, либо по ключевому полю. Здесь <AxisName> - значение ключевого поля, которое должно совпадать со значением поля AxisID.  | 
        ||||
| 
     AxisID: String  | 
                
     Cmd.Str["Axes(<AxisName>).AxisID"] - Идентификатор управляемой координаты (оси) станка, для которой задается новое положение. Определяется схемой станка.  | 
        ||||
| 
     Value: Double  | 
                
     Cmd.Flt["Axes(<AxisName>).Value"] - Новое положение оси станка, в которое она перемещается.  | 
        ||||
| 
     Pos5D: ComplexType  | 
                
     Cmd.Ptr["Pos5D"] - структура содержащая координаты, определяющие положение инструмента в пространстве в момент прохождения некоторой промежуточной точки дуги. Определяет не только положение настроечной точки инструмента (поля X, Y и Z - декартовы координаты), но и ориентацию инструмента относительно текущей системы координат (поля NX, NY, NZ и NW). В зависимости от настроек системы (определяются в схеме станка) ориентация инструмента может задаваться: 
  | 
        ||||
| 
     X: Double  | 
                
     Cmd.Flt["Pos5D.X"] - декартова координата X положения кончика инструмента.  | 
        ||||
| 
     Y: Double  | 
                
     Cmd.Flt["Pos5D.Y"] - декартова координата Y положения кончика инструмента.  | 
        ||||
| 
     Z: Double  | 
                
     Cmd.Flt["Pos5D.Z"] - декартова координата Z положения кончика инструмента.  | 
        ||||
| 
     NX: Double  | 
                
     Cmd.Flt["Pos5D.NX"] - в зависимости от настроек системы может содержать компонент NX вектора нормали инструмента, угол поворота вокруг одной из координатных осей, либо коэффициент кватерниона.  | 
        ||||
| 
     NY: Double  | 
                
     Cmd.Flt["Pos5D.NY"] - в зависимости от настроек системы может содержать компонент NY вектора нормали инструмента, угол поворота вокруг одной из координатных осей, либо коэффициент кватерниона.  | 
        ||||
| 
     NZ: Double  | 
                
     Cmd.Flt["Pos5D.NZ"] - в зависимости от настроек системы может содержать компонент NZ вектора нормали инструмента, угол поворота вокруг одной из координатных осей, либо коэффициент кватерниона.  | 
        ||||
| 
     NW: Double  | 
                
     Cmd.Flt["Pos5D.NW"] - при заданном способе вывода ориентации инструмента в виде кватерниона, представляет собой четвертый коэффициент кватерниона.  | 
        ||||
| 
     MachineStateFlags: Integer  | 
                
     Cmd.Ptr["MachineStateFlags"].Bit[i], i=(0..31). Цело число, которое представляет собой битовое поле из 32 бит от 0 до 31. При наличии нескольких вариантов расположения осей станка, обеспечивающих заданное положение инструмента в пространстве, каждый бит этого поля определяет выбор одного из возможных решений. Например, пятикоординатный станок с осями A и C для большинства положений инструмента имеет два возможных решения - с положительным значением оси A и с отрицательным значением оси A. Нулевой бит этого поля будет определять какое из этих решений выбрать. Для стандартного шести осевого робота многие положения инструмента в пространстве могут быть обеспечены различным сочетанием положений трех его ключевых сочленений - базы, локтя и кисти, что дает в общей сложности 8 возможных решений. В этом случае нулевой бит данного поля будет определять положение базы, первый бит - положение локтя, а третий бит будет задавать положение кисти робота. Таким образом, смысл каждого из битов данного поля целиком определяется используемой схемой станка. При использовании станков, в которых необходимости использования данных флагов нет, в схеме станка имеется возможность отключить вывод данного параметра в CLData.  | 
        ||||
| 
     Time: Double  | 
                
     Время выполнения перемещения в минутах.  | 
        ||||
Список управляемых координат передаваемых в CLData определяется кинематической схемой станка SprutCAM.
Сопутствующие ссылки: