Макросы MACH3

Mach3 имеет встроенный механизм макросов и сценариев, основанный на продукте Cypress ENABLE. Механизм сценариев позволяет редактировать стандартные M-коды, а также создавать собственные M-коды, которые можно вызывать из вашего G-кода. Типичным примером является изменение макросов M6 для работы автоматического устройства смены инструмента.

Другое использование скриптового движка — это скрипты кнопок. За некоторыми кнопками на экране Mach3 находится макрос, который запускается при нажатии этой кнопки (кнопка RefAll является одной из них). Эти макросы можно изменить, чтобы они работали иначе, чем они работают «из коробки». Кнопку RefAll, например, можно изменить так, чтобы исходные оси располагались в другом порядке или даже все одновременно. Также довольно легко добавлять свои собственные кнопки и встраивать в них макросы для выполнения нестандартных действий.

Макросы можно создавать и редактировать с помощью любого стандартного текстового редактора, например, «Блокнота», но Mach3 имеет встроенный редактор с приятными функциями, такими как раскраска синтаксиса, пошаговое выполнение и точки останова, которые могут оказаться большим подспорьем при написании, тестировании и отладке сложных макросов. Редактор, возможно, не выглядит «большим» по сравнению с современными IDE ( интегрированной средой разработки ), но он делает то, что от него можно ожидать. 

Редактор запускается выбором Operator/VB Script Editor 

и выглядит следующим образом:

Кроме того можно редактировать код кнопок, выбрав команду  Operator/Edit Button Script

При этом кнопки, которые можно редактировать будут мигать, нажав на кнопку мы попадем на редакор кода кнопки.

Mach3 Версия 3.x

Справочное руководство по созданию макросов

Draft Revision 0.23

22.08.2010

Для Mach3 v3 versions thru 3.43.19.

Версия перевода 1.03

Введение

Это Справочное руководство для программистов документирует наиболее часто используемые макропрограммистами функции Mach3 версии 3. Это руководство создано для того, чтобы помочь пользователям понять, как работают макросы в Mach3. Все описанные в данном руководстве функции будут поддерживаться и в последующих версиях Mach3, но скоро произойдет релиз Mach4  с совершенно новым, гораздо более функциональным интерфейсом для создания макросов. Рекомендуем использовать новый интерфейс, поскольку поддержка старого в ближайшем будущем может быть прекращена. К тому же маловероятно, что после выхода Mach4 устаревший интерфейс будет  получать регулярные обновления и исправления ошибок.

Это не исчерпывающее руководство, призванное охватить всю функциональность макроязыка Mach3. Есть множество новых функций, они не задокументированы или плохо задокументированы. Часть этих функций не включена в руководство. Есть ряд частично задокументированных функций, но они либо не функционируют так, как было объявлено, либо имеют существенные ограничения, некоторые из них весьма рискованно использовать, а другие использовать просто не имеет смысла. Подобные функции не включены в этот документ.

Описанный в руководстве функционал был протестирован на Mach3 версии 3.042.020.

Некоторые функции могут вести себя иначе в других версиях. Некоторые функции могут

полностью отсутствовать в более ранних версиях.

Функции, сгруппированные в алфавитном порядке

ActivateSignal

Sub ActivateSignal (SigNum As Integer)

Эта функция переводит указанный output сигнал Mach3 в активное состояние. (если

он определен в Config-> Ports & Pins как ActiveHigh, он будет переведен на логический

высокий уровень, в противном случае он будет переведен на логический низкий уровень).

Аргументы:

SigNum должен быть одной из предопределенных констант выходного сигнала Mach3 (см.

CB Constants) или должен иметь другое значение или выражение, которое оценивается как одно из этих значений.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также:

DeactivateSignal(), CB Constants

AppendTeachFile

Function AppendTeachFile(Filename As String) As Integer

Эта функция повторно открывает существующий файл Teach в Gcode \ Filename в каталоге Mach3, и добавляет в этот файл любые команды, впоследствии выполняемые через MDI или Code (), до тех пор, пока CloseTeachFile() выполняется. Указанный файл должен быть создан вручную.

Что такое Teach в Mach3.

Mach3 может запоминать введенную вручную через строку ручного ввода (Input) последовательность кадров  и записывать ее в файл. После, ее можно многократно выполнять, как обычный G-код.

Как это работает? На экране MDI (второй экран основного скринсета) нужно кликнуть по кнопке Start Teach. Замигает индикатор. Теперь вы можете ввести нужное количество кадров в экран ручного ввода. Mach3 будет выполнять каждый кадр сразу после ввода и сохранять его в файл с именем Teach file.

Аргументы:

Filename – имя файла Teach, который необходимо повторно открыть. Файл должен находиться в подкаталоге Gcode установочного каталога Mach3.

Возвращаемое значение:

Если операция прошла успешно, возвращается ненулевое значение.

Пример:

Смотрите также:

OpenTeachFile(), CloseTeachFile()

AskTextQuestion

Function AskTextQuestion(Prompt As String) As String

Эта функция отображает диалоговое окно, содержащее указанную строку приглашения, и ожидает  ввода пользователем текстовой строки в текстовом поле диалогового окна. Строка, введенная пользователем, возвращается функцией.

Аргументы:
Prompt – это строка, которая будет отображаться над текстовым полем при отображении диалогового окна.

Возвращаемое значение:

Текстовая строка введенная пользователем.

Пример:

Смотрите также:

Message(), Question(), AskTextQuestion(), MachMsg(), GetCoord()

CloseDigFile

Sub CloseDigFile()

Эта функция закрывает открытый digitizing file. Если его нет, функция ничего не делает.

Аргументы:

отсутствуют

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

OpenDigFile(), SetProbeActive(), IsProbing()

CloseTeachFile

Sub CloseTeachFile()

Эта функция закрывает открытый обучающий файл. Файл должен быть ранее открыт

либо с помощью OpenTeachFile, либо добавлен с помощью AppendTeachFile(). Если обучающий файл Teach не открыт в данный момент, функция ничего не делает.

Аргументы:

отсутствуют

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

OpenTeachFile(), AppendTeachFile()

CodeSub Code(Gcode As String)

Эта функция выполняет строку G-кода, переданную в качестве аргумента, так же, как если бы она были введены в строку MDI или обнаружена в программе G-кода. Обратите внимание, что строка G-кода помещается в очередь выполнения, и, как правило, функция Code () возвращает значение до того, как строка будет фактически выполнена. Если вам нужно, чтобы ваша программа знала, что строка была выполнена, цикл While должен использоваться с IsMoving (), как показано в примере ниже.

Также обратите внимание, что если в данный момент  будет открыт обучающий файл, строка G-кода не будет выполняется, она просто запишется в обучающий файл.

Следующие дополнительные режимы функции Code () описаны здесь только для

полноты картины. Их использование не рекомендуется, и их поддержка может быть прекращена в любой момент, без предупреждения.

Sub Code(“LOAD:” & FilePath)

Этот режим загружает файл G-кода из указанного FilePath. Рекомендуется использовать  функцию LoadFile () совместно с функцией Code() вместо данного режима.

Sub Code(“SAVE_XML”)


Этот метод немедленно сохраняет файл конфигурации XML.

Аргументы: Единичная срока G-кода (будет выполняться, как одна строка).

Возвращаемое значение:

отсутствует

Пример:

Смотрите также: связи отстутствуют

CoupleSlave

Sub Function CoupleSlave(State As Integer)

Эта функция подключает любую подчиненную ось к своей главной оси или отключает ее во время homing.

Аргументы:

Состояние – значение 0 или 1, которое определяет, должна ли подчиненная ось быть

соединена со своей главной осью во время homing. Если State равен 0, оси будут разъединены, если State равен 1, оси будут связаны.Возвращаемое значение: отсутствует.

Примеры:

Смотрите также:

связи отсутствуют 

.

DeactivateSignalSub DeactivateSignal (SigNum As Integer)

Эта функция переводит указанный output сигнал Mach3 в неактивное состояние. Если

сигнал определен в Config-> Ports & Pins как ActiveHigh, его состояние будет переведено на  логический низкий уровень, в противном случае состояние будет переведено на логический высокий уровень.

Аргументы:

SigNum должен быть одной из предопределенных констант output сигнала Mach3 (см. CB Constants) или иметь другое значение или выражение, которое должно оцениваться программой, как одна из этих констант.

Возвращаемое значение:

отсутствует.

Примеры:

Смотрите также:

ActivateSignal (), CB Constants

DoMenu

Sub DoMenu (MenuIndex As Integer, MenuItem As Integer)

Эта функция позволяет макросу-скрипту вызывать любую функцию, доступную в

любом меню Mach3 точно так же, как если бы пользователь щелкнул меню мышью. Конкретный вызываемый пункт меню определяется двумя аргументами.

Первый указывает, в каком меню находится вызываемый элемент.

Второй указывает, какой элемент этого меню должен быть вызван.

Аргументы:

MenuIndex – это индекс активируемого меню, отсчитываемый от 0. Меню “Файл” – это индекс 0, меню Config – это индекс 1 и т. д. MenuItem – это отсчитываемый от 0 индекс элемента меню для активации. Первый пункт данного меню имеет индекс 0, второй – индекс 1 и т. д.

Возвращаемое значение: отсутствует

Примеры:

Смотрите также:

DoButton(), DoOEMButton()

DoButton

Sub DoButton(ButtonNum As Integer)

Эта устаревшая функция позволяет макросу выполнять функцию экранной кнопки, посредством кода кнопки. Указанная функция работает так же, как если бы пользователь

щелкнул мышью по соответствующей экранной кнопке. Обратите внимание, что на экране не должна существовать кнопка, чтобы эта функция работала. Это просто способ выполнять любую из функций «Кнопки» через CB. Использование DoButton больше не рекомендуется, и эта функция существует только для поддержки уже существующих устаревших скриптов. Эта функция устарела, и ее использование настоятельно не рекомендуется.

Примечание: существовало две разные нумерации кнопок: «Номер кнопки» “Button number  и «OEMButton».

В этой функции используется нумерация «Номер кнопки».

В диапазоне «Номер кнопки» допустимые значения ButtonNums были от 0 до 31, что,

в свое время соответствовали OEM номерам светодиодов 1000 10 1031.

Числовое соответствие между рядами нумерации не гарантируется для будущих версий Mach. Используйте функцию DoOEMButton вместо этой функции.

Аргументы:

ButtonNum должен иметь один из предварительно заданных номеров OEM-кнопок Mach3. (см. Константы CB) или представлять из себя другое значение или выражение, которое оценивается как одна из этих констант.

Возвращаемое значение:

отсутствует.

Пример:

Смотрите также:

DoButton(), DoOEMButton()

DoOEMButton

Sub DoOEMButton(OEMButtonCode As Integer)

Эта функция позволяет макросу выполнять любую функцию экранной кнопки, которая имеет код OEM. Указанная функция вызывается точно так же, как если бы пользователь

щелкнул мышью по соответствующей экранной кнопке. Обратите внимание, что на экране не должна существовать кнопка, чтобы эта функция работала. Это просто способ

выполнять любую из функций «OEM-кнопки» через CB.

Аргументы: OEMButtonCode должен быть одним из предопределенных кодов OEM-кнопок Mach3 (см. Константы CB) или представлять из себя другое значение или выражение, которое оценивается как одна из этих констант.

Возвращаемое значение:

отсутствует.

Пример:

Смотрите также:

DoButton(), DoOEMButton(), DoMenu()

DoSpinCCW

Sub DoSpinCCW()

Эта функция включает шпиндель, вращающийся против часовой стрелки.

Аргументы:

отсутствуют

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

DoSpinCW(), DoSpinStop()

DoSpinCW

Sub DoSpinCW()

Эта функция включает шпиндель по часовой стрелке.

Аргументы:

отсутствуют

Возвращаемое значение:

отсутствует

Пример:

Смотрите также:

DoSpinCCW(), DoSpinStop()

DoSpinStop

Sub DoSpinStop()

Эта функция останавливает шпиндель

Аргументы:

отсутствуют

Возвращаемое значение:

отсутствует

Пример:

Смотрите также:

DoSpinCW(), DoSpindCCW()

EndTHC

Sub EndTHC()

Эта функция отключает контроль высоты резака. Функционально идентичен THCOff ().

Аргументы:

отсутствуют

Возвращаемое значение:

отсутствует

Пример:

Смотрите также:

StartTHC(), THCOn(), EndTHC(), THCOff(), ZeroTHC(), ResetTHC()

FeedRate

Sub FeedRate() As Double

Эта функция получает текущую скорость подачи. Обратите внимание, что скорость подачи указывается в единицах в минуту.

Аргументы:

отсутствуют

Возвращаемое значение:

скорость подачи указанная в единицах / мин (формат Double)

Пример:

Смотрите также:

SetFeedrate()

FileName

Function FileName() As String

Эта функция возвращает имя файла и путь к текущему загруженному файлу G-кода, если таковой имеется. Если ни один файл в данный момент не загружен, возвращается строка «Файл не загружен».

Аргументы:

отсутствуют

Возвращаемое значение: имя файла и путь к текущему загруженному файлу G-кода или строка «Файл не загружен».

Пример:

Смотрите также:

LoadFile(), LoadRun()

GetABSPosition

Function GetABSPosition(Axis As Integer) As Double

Эта функция возвращает координаты положения указанной оси станка.

Аргументы:

Axis – это ось:

0 = ось X

1 = ось Y

2 = ось Z

3 = ось A

4 = ось B

5 = ось C

Возвращаемое значение:

Машинные? координаты в формате Double

Пример:

Смотрите также:

SetMachZero(), MinX(), MaxX(), MinY(), MaxY()

GetACoor

Function GetACoor() As Double

Эта функция используется вместе с функцией GetCoord () для получения X, Y, Z и A

значений пользовательских  координат оси. Функция GetACoor () вернет значение для оси A

введенные пользователем при последнем вызове функции GetCoord (). Для других координат функция принимает вид: GetXCoor (), GetYCoor (), GetZCoor ()

Аргументы:

отсутствуют

 Возвращаемое значение:

Значение координаты оси A из последнего вызова GetCoord ()

Пример:

Смотрите также:

GetCoord(), GetXCoor(), GetYCoor(), GetZCoor()

GetActiveProfileDir

Function GetActiveProfileDir() As string

Эта функция используется для получения строки с полным путем к активному профилю.

Аргументы:

отсутствуют

Возвращаемое значение:

путь к активному профилю

Пример:

Смотрите также:

GetActiveProfileName()

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06.

GetActiveProfileName

Function GetActiveProfileName() As string

Эта функция используется для получения имени текущего рабочего профиля.

Аргументы:

отсутствуют

Возвращаемое значение:

имя текущего рабочего профиля

Пример:

Смотрите также:

GetActiveProfileDir()

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06.

GetActiveScreenSetName

Function GetActiveScreenSetName() As string

Эта функция используется для получения имени текущего активного ScreenSet.

Аргументы:

отсутствуют

Возвращаемое значение: имя текущего активного ScreenSet.

Пример:

Смотри также:

связи отсутствуют

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06.

GetCoord

Sub GetCoord(Prompt As String)

Эта функция отображает диалоговое окно, содержащее строку приветствия и четыре

текстовые поля с метками X, Y, Z и A, в которые пользователь может ввести четыре значения координат. Значения хранятся в переменных Mach3, которые можно получить с помощью

функций GetXCoor (), GetYCoor (), GetZCoor () и GetACoor ().

Аргументы: строка приветствия, отображаемая в диалоговом окне.

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

GetXCoor(), GetYCoor(), GetZCoor(), GetACoor()

GetCurrentTool

Function GetCurrentTool() As Integer

Эта функция возвращает номер активного инструмента.

Аргументы: отсутствуют

Возвращаемое значение: номер активного инструмента (1-253)

Пример:

Смотрите также:

SetCurrentTool(), GetSelectedTool(), ToolLengthOffset(), GetToolParam(),

SetToolParam(), GetToolChangeStart(), GetToolDesc(), SetToolX(), SetToolZ()

GetDRO

Function GetDRO(DRONum As Integer) As Double

Эта устаревшая функция принимает номер DRO, переданный в качестве аргумента, и возвращает значение, которое содержит окно DRO Mach3. Использование GetDRO больше не рекомендуется, и эта функция существует только для поддержки уже существующих устаревших скриптов. Эта функция устарела, и ее использование не рекомендуется.

Примечание к устаревшему сценарию: существовало две разные нумерации DRO, используемые в Mach3: номер «DRO» и номер «OEMDRO». Эта функция использует номер «DRO».

 Нумерация «DRO» были дополнительно разделена на «пользовательский» и «OEM» диапазоны. Диапазон «OEM» включал в себя номера от 0 до 200, что

соответствовал номерам OEM DRO от 800 до 1000. Числовое соответствие между рядами нумерации не гарантируется для будущих версий Mach.

Используйте функции GetOEMDRO() и GetUserDRO() вместо этой функции.

Аргументы: DRONum – это номер DRO для чтения. Значение должно быть в пределах нумерации «DRO» (похоже, что в диапазоне 0-200).

Возвращаемое значение: значение, которое содержится в соответствующем поле DRO.

Пример:

Смотрите также:

SetOEMDRO(), GetOEMDRO(), SetUserDRO(), GetUserDRO()

GetDROString

Function GetDROString(DRONum As Integer) As String

Эта устаревшая функция принимает номер DRO в качестве аргумента и возвращает значение поля DRO Mach3, округленное до четырех десятичных знаков после запятой в виде строки. Использование GetDROString больше не рекомендуется, и эта функция существует только для поддержки устаревших скриптов. Эта функция устарела, и ее использование категорически не рекомендуется.

Примечание к устаревшему сценарию: существовало две разные нумерации DRO, используемые в Mach3: номер «DRO» и номер «OEMDRO». Эта функция использует номер «DRO».

 Нумерация «DRO» были дополнительно разделена на «пользовательский» и «OEM» диапазоны. Диапазон «OEM» включал в себя номера от 0 до 200, что

соответствовал номерам OEM DRO от 800 до 1000. Числовое соответствие между рядами нумерации не гарантируется для будущих версий Mach.

Используйте функции GetOEMDRO() и GetUserDRO() вместо этой функции совместно с функцией cStr() для конвертации числового значения в строку.

Аргументы: DRONum – это номер DRO для чтения. Значение должно быть в пределах нумерации «DRO» (похоже, что в диапазоне 0-200).

Возвращаемое значение: значение, которое содержится в соответствующем поле DRO в формате String.

Пример:

Смотрите также:

SetOEMDRO(), GetOEMDRO(), SetUserDRO(), GetUserDRO()

GetIJMode

Function GetIJMode() As Integer

Эта функция возвращает текущий режим IJ (абсолютный / инкрементный), установленный в Config-> GeneralConfig.

Аргументы: отсутствуют

Возвращаемое значение:

0 означает, что включен режим абсолютного IJ

1 означает, что включен режим инкрементного IJ

Пример:

Смотрите также:

SetIJMode()

GetLED

Function GetLED(LEDNum As Integer) As Integer

Эта устаревшая функция принимает переданный в качестве аргумента номер светодиода и возвращает его текущее состояние. Использование GetLED больше не рекомендуется, и эта функция существует только для поддержки устаревших скриптов. Эта функция устарела, и ее использование категорически не рекомендуется.

Примечание к устаревшему сценарию: существует две разные нумерации светодиодов, используемые в Mach3: номер «LED» и номер «OEMLED». Данная функция использует номер «LED».

Нумерация «LED» была разделена на диапазоны «Пользовательский» и «OEM». «OEM» диапазон принимает значения LEDNum от 0 до 55, что соответствует номерам OEMLED от 800 до 855. Для будущих версий Mach соответствие между этими нумерациями не гарантируется.

Используйте функции GetOEMLED() и GetUserLED() вместо данной функции.

Аргументы: LEDNum в соответствии с нумерацией «LED».

Возвращаемое значение:

0 – светодиод не активен

1 – светодиод  активен

Пример:

Смотрите также:

GetOEMLED(), SetUserLED(), GetUserLED()

GetLoadedGCodeDir

Function GetLoadedGCodeDir() As string

Эта функция используется для получения строки с полным путем к загруженному файлу G-кода.

Аргументы: отсутствуют

Возвращаемое значение: Путь к загруженному файлу G-кода.

Если G-код не загружен, функция возвращает пустую строку («»).

Пример:

Смотрите также:

GetloadedGCodeFileName()

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06.

GetLoadedGCodeFileName

Function GetLoadedGCodeFileName() As string

Эта функция используется для получения имени загруженного файла G-кода.

Аргументы: отсутствуют

Возвращаемое значение: Имя загруженного файла G-кода. Расширение включено в строку. Если G-код не загружен, функция возвращает пустую строку («»).

Пример:

Смотрите также:

GetLoadedGCodeDir()

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06.

GetMachVersion

Function GetMachVersion(ByRef Major as Integer, ByRef Minor as Integer, ByRef

Build as Integer) As Boolean

Эта функция возвращает версию установленного ПО Mach.

Аргументы:

Аргументы функции передаются по ссылке и используются для возврата номера версии Mach3.

Major: основной номер версии

Minor:: дополнительный номер версии

Build:: номер версии сборки

Вы должны объявить (DIM) переменные, которые вы передаете функции, как целые числа. Не задекларированные переменные типа Var нельзя передавать по ссылке.

Возвращаемое значение:

True: возвращенные значения версии действительны.

False: произошла ошибка при обработке вызова GetMachVersion; значения версии

может быть недействительным.

Пример:

Смотрите также:

Связи отсутствуют

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.42.30.

GetMainFolder

Function GetMainFolder() As String

Эта функция возвращает полный путь к папке установки Mach3.

Аргументы: отсутствуют

Возвращаемое значение: строка содержащая полный путь к каталогу с установленным Mach3

Пример:

Смотрите также: связи отсутствуют

GetMyWindowsHandle

Function GetMyWindowsHandle() as Long

Эта функция используется для получения дескриптора окна для окна Mach3. Это

полезно для перехода к вызовам ОС, которые требуют дескриптора окна вызывающего абонента в качестве параметра.

Аргументы: отсутствуют

Возвращаемое значение: дескриптора окна Mach3.

Пример:

Смотрите также:

Связи отсутствуют

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06.

GetOEMDRO

Function GetOEMDRO(DRONum As Integer) As Double

Эта функция возвращает значение поля OEM DRO с номером DRONum.

Аргументы: DRONum должен быть действующим номером OEM DRO.

Возвращаемое значение: значение поля DRO  в формате Double

Пример:

Смотрите также:

SetOEMDRO(), SetUserDRO(), GetUserDRO()

GetOEMLED

Function GetOEMLED(LEDNum As Integer) As Integer

Эта функция возвращает состояние светодиода с OEM номером, указанном в аргументе функции.

Аргумент: OEM номер светодиода

Возвращаемое значение:

0 – светодиод не активен

1 – светодиод активен

Пример:

Смотрите также:

SetOEMLED(), SetUserLED(), GetUserLED()

GetPage

Function GetPage() As Integer

Эта функция возвращает номер текущей активной страницы настроек экрана.

Аргументы: отсутствуют

Возвращаемое значение: номер текущей активной страницы в формате Integer

Пример:

Смотрите также:

SetPage()

GetParam

Function GetParam(ParamName As String) As Double

Эта функция позволяет использовать ряд внутренних параметров Mach3 (не путать с параметрами G-кода) для чтения. Каждый параметр Mach3 идентифицируется по имени. Текущее значение параметра, имя которого задано в аргументе ParamName, возвращается, как Double.

Допустимые параметры:

НаименованиеОписание
XMachineМашинные координаты оси X
YMachineМашинные координаты оси  Y
ZMachineМашинные координаты оси Z
Encoder1Счетчик Encoder1
Encoder2Счетчик Encoder2
Encoder3Счетчик Encoder3
Encoder4Счетчик Encoder4
MPG1Счетчик MPG1
MPG2Счетчик MPG2
MPG3Счетчик MPG3
XScaleКоэффициент масштаба оси X
YScaleКоэффициент масштаба оси Y
ZScaleКоэффициент масштаба оси Z
AScaleКоэффициент масштаба оси A
BScaleКоэффициент масштаба оси B
CScaleКоэффициент масштаба оси C
FeedRateСкорость подачи
UnitsТекущие ед. изм. (дюймы/мм). 0 = mm, 1 = inch
StepsPerAxisXКоличество шагов на ед. изм. по оси X
StepsPerAxisYКоличество шагов на ед. изм. по оси Y
StepsPerAxisZКоличество шагов на ед. изм. по оси Z
StepsPerAxisAКоличество шагов на ед. изм. по оси A
StepsPerAxisBКоличество шагов на ед. изм. по оси B
StepsPerAxisCКоличество шагов на ед. изм. по оси C
VelocitiesXМаксимальная скорость оси X (настройки двигателя) в ед.изм./сек
VelocitiesYМаксимальная скорость оси Y (настройки двигателя) в ед.изм./сек
VelocitiesZМаксимальная скорость оси Z (настройки двигателя) в ед.изм./сек
VelocitiesAМаксимальная скорость оси A (настройки двигателя) в ед.изм./сек
VelocitiesBМаксимальная скорость оси B (настройки двигателя) в ед.изм./сек
VelocitiesCМаксимальная скорость оси C (настройки двигателя) в ед.изм./сек
AccelerationXМаксимальное ускорение оси X (настройки двигателя)
AccelerationYМаксимальное ускорение оси Y (настройки двигателя)
AccelerationZМаксимальное ускорение оси Z (настройки двигателя)
AccelerationAМаксимальное ускорение оси A (настройки двигателя)
AccelerationBМаксимальное ускорение оси B (настройки двигателя)
AccelerationCМаксимальное ускорение оси C (настройки двигателя)
SpindleSpeedДолжна изменять скорость шпинделя, но работает не во всех версиях. Вместо этого параметра используйте функцию SetSpinSpeed ​​()
ZInhibitOnНаличие запрета перемещения оси Z ниже разрешенной высоты. 0: запрет Z отключен, 1: запрет Z включен. При включении этого запрета ось Z не может перемещаться ниже глубина, заданная параметром ZinhibitDepth.
ZInhibitDepthПараметр ограничивающий перемещение оси Z при активации ZInhibitOn  
SafeZБезопасная высота по оси Z
XDROЗначение поля DRO оси X
YDROЗначение поля DRO оси Y
ZDROЗначение поля DRO оси Z
ADROЗначение поля DRO оси A
BDROЗначение поля DRO оси B
CDROЗначение поля DRO оси C
BoundryВключение отображения границ траектории. 0: отключить отображение границ, 1: включить отображение границ
XRefPerhoming скорость оси X, в % от максимальной
YRefPerhoming скорость оси Y, в % от максимальной
ZRefPerhoming скорость оси Z, в % от максимальной
ARefPerhoming скорость оси A, в % от максимальной
BRefPerhoming скорость оси B, в % от максимальной
CRefPerhoming скорость оси C, в % от максимальной
TotalHoursПодсчет общего времени безотказной работы Mach3  

Аргументы: имя возвращаемого параметра. (одно из вышеперечисленных имен).

Возвращаемое значение: текущее значение данного параметра в формате Double

Пример:

————————————

Смотрите также:

SetParam()

GetPortByte

Function GetPortByte(PortAddr As Integer) As Integer

Эта функция считывает значение записанное в 8-битный порт ввода-вывода ПК, адрес которого задан в PortAddr, и возвращает данные, считываемые из порта как целое число без знака. Эта функция может использоваться  для чтения данных с аппаратных устройств, не поддерживаемых Mach3 напрямую. Обратите внимание, что эта функция доступна, только если установлен драйвер параллельного порта.

Аргументы: PortAddr – адрес порта для чтения в формате Integer.

Возвращаемое значение: 8-битное целое число без знака.

Пример:

Смотрите также:

PutPortByte()

GetToolParam

Function GetToolParam(ToolNum As Integer, ParamNum As Integer)

Эта функция позволяет получить любой параметр инструмента, кроме текста описания, для любого инструмента. ToolNum – номер инструмента (от 1 до 255), параметры которого запрашиваются. ParamNum – номер параметра, определяемый следующим образом:

Для Mach3Mill:

1 – Диаметр

2 – Z-смещение

3 – X износ

4 – Z износ

Для Mach3Turn:

1 – Тип наконечника

2 – Радиус инструмента

3 – Смещение по оси X

4 – Z-смещение

5 – X износ

6 – Z износ

7 – Угол револьверной головки

Аргументы:

ToolNum – номер инструмента (от 1 до 255), параметры которого запрашиваются,

ParamNum – номер параметра инструмента

Возвращаемое значение:  запрошенное значение параметра в формате Double

Пример:

Смотрите также:

SetToolParam(), GetToolDesc()

GetRPM

Function GetRPM() As Double

Эта функция возвращает текущую заданную скорость шпинделя (S-word) в формате Double. Обратите внимание, что возвращается последнее значение S-слова, а не фактическое число оборотов шпинделя.

Аргументы: отсутствуют

Возвращаемое значение: текущее заданное значение оборотов шпинделя в формате Double

Пример:

Смотрите также:

SetSpinSpeed(), DoSpinCW(), DoSpinCCW(), DoSpinStop()

GetSafeZ

Function GetSafeZ() As Double

Эта функция возвращает текущее значение безопасной высоты по оси Z

Аргументы: отсутствуют

Возвращаемое значение: текущее значение безопасной высоты по оси Z в формате Double

Пример:

Смотрите также:

SetSafeZ()

GetScale

Function GetScale(Axis As Integer) As Double

Эта функция возвращает текущий коэффициент масштабирования для оси Axis.

Аргументы:

Axis в формате Integer: 0=X, 1=Y, 2=Z, 3=A, и т.д.

Возвращаемое значение: текущее значение коэффициента масштабирования для заданной оси

Пример:

Смотрите также:

SetScale()

GetSelectedTool

Function GetSelectedTool() As Integer

Эта функция возвращает инструмент, установленный последней командой смены инструмента (M6). Она обычно используется в макросе M6Start, чтобы сделать выбранный инструмент текущим.

Аргументы: отсутствуют

Возвращаемое значение: номер текущего инструмента в формате Integer

Пример:

Смотрите также:

GetCurrentTool(), SetCurrentTool()

GetSetupUnits

Function GetSetupUnits() As Integer

Эта функция возвращает исходные единицы измерения, установленные в настройках Mach3. Возвращаемое значение этого API не изменяется при использовании

G20 / G21.

Аргументы: отсутствуют

Возвращаемое значение:

0 – мм

1 – дюймы

Пример:

Смотрите также: связи отсутствуют

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06.

GetTimer

Function GetTimer(TimerNum As Integer) As Double

Эта функция возвращает текущее значение счетчика для указанного таймера. Mach3 предоставляет 25 таймеров. Они пронумерованы от 0 до 24 и могут использоваться для тайминга в сценариях CB. Чтобы рассчитать время мероприятия, сначала очистите таймер с помощью SetTimer (), затем используйте GetTimer () для чтения таймера. Обратите внимание, что эта функция работает только с драйвером параллельного порта, и она может быть удалена без предварительного уведомления в будущем выпуске Mach3.

Аргументы: TimerNum – номер таймера в диапазоне от 0 до 24

Возвращаемое значение: текущее значение счетчика таймера в формате Double

Пример:

Смотрите также:

SetTimer()

GetToolChangeStart

Function GetToolChangeStart(Axis As Integer) As Double

Эта функция возвращает положение указанной оси в момент  смены инструмента.

Обычно она используется в макросе M6End для восстановления позиций осей в положениях, которые были до смены инструмента.

Аргументы: Axis в формате Integer: 0=X, 1=Y, 2=Z, 3=A, и т.д.

Возвращаемое значение: положение указанной оси в начале последней смены инструмента в формате Double

Пример:

Смотрите также:

GetSelectedTool(), GetCurrentTool(), SetCurrentTool()

GetToolDesc

Function GetToolDesc(ToolNum As Integer) As String

Эта функция возвращает строку описания инструмента указанного в параметре ToolNum

Аргументы: номер инструмента в диапазоне от 0 до 255

Возвращаемое значение: строка описания инструмента

Пример:

Смотрите также:

GetToolParam(), SetToolParam(), SetToolDesc()

GetTurretAng

Function GetTurretAng() As Double

Эта функция возвращает текущий угол револьверной головки токарного станка

Аргументы: отстутствуют

Возвращаемое значение: Текущий угол револьверной головки токарного станка, в формате Double

Пример:

Смотрите также: связи отсутствуют

GetUserDRO

Function GetUserDRO(DRONum As Integer) As Double

Эта функция возвращает значение пользовательского поля DRO  с номером DRONum в формате Double.

Аргументы: DRONum – номер пользовательского поля DRO. Диапазон: от 1000 до 2254.

Возвращаемое значение: текущее значение пользовательского поля DRO в  формате Double

Пример:

Смотрите также:

GetUserDRO(), SetOEMDRO(), GetOEMDRO()

GetUserLabel

Function GetUserLabel(LabelNum As Integer) As String

Эта функция позволяет получить значение экранного поля Label созданного пользователем. Поля Label создаются в дизайнере интерфейса (например Mach3Screen) с текстом по умолчанию, содержащим строку «UserLabel», за которой следует одна или несколько цифр.

Аргументы: LabelNum –  числовая часть строки поля Label по умолчанию. Диапазон: от 0 до 255.

Возвращаемое значение: значение экранного поля Label в формате строки

Пример:

Смотрите также:

SetUserLabel()

GetUserLED

Function GetUserLED(LEDNum As Integer) As Integer

Эта функция позволяет получить текущее состояние пользовательского светодиода.

Аргументы: LEDNum – номер индикатора, состояние которого необходимо получить. Диапазон от 1000 до 2254

Возвращаемое значение: текущее состояние указанного пользовательского индикатора. 0 – индикатор выключен, 1 – индикатор включен.

Пример:

Смотрите также:

GetUserLED(), SetOEMLED(), GetOEMLED()

GetVar

Function GetVar(VarNum As Integer) As Double

Эта функция возвращает текущее значение переменной Mach, заданной VarNum, в формате Double. Переменные Mach доступны как для скриптов CB, так и с помощью SetVar () и функции GetVar (), а также программ G-кода, использующих синтаксис #nnnn.

Аргументы: VarNum – номер переменной Mach, значение которуй нужно получить.

Возвращаемое значение: Текущее значение указанной переменной в формате Double.

Пример:

Смотрите также:

SetVar()

GetXCoor

Function GetXCoor() As Double

Эта функция используется вместе с функцией GetCoord () для получения X, Y, Z и A

значений  координат осей введенных пользователем. Функция GetXCoor () вернет значение координаты X введенной пользователем при последнем вызове функции GetCoord ().

Аргументы: отсутствуют

Возвращаемое значение: Значение координаты оси X из последнего вызова GetCoord ()

Пример:

Смотрите также:

GetCoord(), GetYCoor(), GetZCoor(), GetACoor()

GetYCoor

Function GetYCoor() As Double

Аналогично GetXCoor

GetZCoor

Function GetZCoor() As Double

Аналогично GetXCoor

GotoSafeZ

Sub GotoSafeZ()

Эта функция переместит ось Z в положение Safe_Z, если Safe_Z включен в Config-

> Настройка Safe_Z. Если Safe_Z не включен, в строке состояния будет отображаться сообщение об ошибке и в данном случае ось Z будет оставаться на прежнем месте.

Аргументы: отсутствуют

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

GetSafeZ(), SetSafeZ()

HelpAbout

Sub HelpAbout()

Эта функция отображает диалоговое окно, отображающее текущую версию обработчика скриптов.

Аргументы: отсутствуют

Возвращаемое значение: отсутствует

Пример:

Смотрите также: связи отсутствуют

IncludeTLOinZFromG31

Function IncludeTLOinZFromG31() As Boolean

Эта функция используется для получения состояния параметра меню Маch: config / general-> config который определяет,  учитывается ли коррекция инструмента в данных щупа при сканировании.

Аргументы: отсутствуют

Возвращаемое значение:

True: Параметр включен

False: Параметр выключен

Пример:

Смотрите также: связи отсутствуют

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06.

IsActive

Function IsActive(Signal As Integer) As Boolean

Эта функция возвращает True, если указанный входной сигнал активен. Обратите внимание на то, что с точки зрения фактического уровня сигнала термин «активный» зависит от того, как этот сигнал определяется в настройках. Если сигнал определен в Config-> Ports & Pins-> InputSignals как ActiveLow, тогда IsActive () вернет True, когда этот сигнал не активен. Если сигнал определен в Config-> Ports & Pins-> InputSignals как ActiveHigh, то IsActive () вернет True, когда этот сигнал находится в активном состоянии.

Аргументы: Signal –  целое число, соответствующее одной из заранее определенных констант входных сигналов.

Возвращаемое значение:

С учетом вышеописанного

False – сигнал в настоящее время находится в неактивном состоянии.

True –  сигнал в настоящее время находится в активном состоянии.

Пример:

Смотрите также: связи отсутствуют

IsDiameter

Function IsDiameter() As Integer

Эта функция применима только для токарного станка и возвращает 1, если в Mach3 в настоящее время установлен режим диаметра.

Аргументы: отсутствуют

Возвращаемое значение:

0 – режим радиуса.

1 – режиме диаметра.

Пример:

Смотрите также: связи отсутствуют

IsEStop

Function IsEStop() As Integer

Эта функция возвращает 1, если Mach3 в настоящее время находится в режиме E-Stop.

Аргументы: отсутствуют

Возвращаемое значение:

0 – Mach3 не находится в режиме E-Stop

1 – Mach3 находится в режиме E-Stop

Пример:

Смотрите также: связи отсутствуют

IsLoading

Function IsLoading() As Integer

Эта функция возвращает 1, если в данный момент загружается файл G-кода.

Аргументы: отсутствуют

Возвращаемое значение:

0 – файл G-кода в настоящее время не загружается.

1 – файл G-кода в данный момент загружается.

Пример:

Смотрите также: связи отсутствуют

IsMoving

Function IsMoving() As Integer

Эта функция возвращает 1, если какая-либо ось в данный момент движется. Чаще всего функция используется для приостановки выполнение макроса, пока движение не будет

завершено. Обычно используется совместно с функцией IsStopped().

Аргументы: отсутствуют

Возвращаемое значение:

0 – если все оси в данный момент остановлены

1 – если какая-либо ось в данный момент движется

Пример:

Смотрите также:

IsStopped()

IsOutputActive

Function IsOutputActive(Signal As Integer) As Boolean

Эта функция возвращает True, если текущим состоянием указанного выходного сигнала является его активное состояние. Обратите внимание, что возвращаемое значение будет зависеть от того, как настроен данный сигнал в Config-> Ports & Pins-> OutputSignals. Если он настроен, как ActiveLow, тогда IsOutputActive() вернет значение True, когда этот сигнал имеет низкий логический уровень. Если сигнал определен, как

ActiveHigh, тогда IsOutputActive() вернет значение True, когда этот сигнал имеет высокий логический уровень.

Аргументы: Signal – целое число, соответствующее одной из предопределенных констант выходных сигналов.

Возвращаемое значение: состояние указанного выходного сигнала в формате Boolean

Пример:

Смотрите также: связи отсутствуют

IsPeriodicScriptRunning

Function IsPeriodicScriptRunning(ByVal ScriptQFN as String) as Boolean

Эта функция используется, чтобы определить, был ли запущен сценарий с периодическим выполнением

Аргументы:

ScriptQFN – строка полного имени файла (QFN) скрипта. QFN относится к установочному каталогу Mach. Переданный QFN должен быть идентичен QFN, используемому для запуска макроса с периодическим выполнением.

Возвращаемое значение:

True – макрос запущен

False – макрос не запущен

Пример:

Смотрите также:

StartPeriodicScript, StopPeriodicScript

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06.

IsSafeZ

Function IsSafeZ() As Integer

Эта функция возвращает 1, если Safe_Z включен в Config-> Safe_Z Setup.

Аргументы: отсутствуют

Возвращаемое значение:

0 – Safe_Z не включен в Config-> Safe_Z Setup.

1 –  Safe_Z включен в Config-> Safe_Z Setup.

Пример:

Смотрите также: связи отсутствуют

IsStopped

Function IsStopped() As Integer

Эта функция возвращает 1, если все оси в данный момент остановлены. Функция чаще всего используется для приостановки выполнения макроса, пока движение не будет

завершено. Обычно используется с функцией IsMoving().

Аргументы: отсутствуют

Возвращаемое значение:

0 – если какая-либо ось в данный момент движется

1 – если все оси в данный момент остановлены

Пример:

Смотрите также:

IsMoving()

IsSuchSignal

Function IsSuchSignal(SignalID As Integer) As Integer

Эта функция возвращает значение, указывающее активирован ли соответствующий значению аргумента сигнал в Config->Ports&Pins. Возвращаемое значение 0 указывает, что сигнал не активирован, ненулевое возвращаемое значение указывает, что сигнал активирован. Функцию можно использовать например для обеспечения проверки настройки входа Probe перед началом сканирования.

Аргументы: SignalID должен быть равен одной из предопределенных констант сигналов Mach3 (см. CB Constants) или иметь другое значение или быть выражением, которое оценивается как одно из значений этих констант.

Возвращаемое значение:

0 – сигнал не активирован,

1 – сигнал активирован

Пример:

Смотрите также: связи отсутствуют

JogOff

Function JogOff(Axis As Integer)

Эта функция используется для отключения режима однократных прерывистых перемещений на указанное значение оси, определенной в аргументе Axis. Обычно используется в сочетании с JogOn() для перемещения оси под управлением макроса.

Аргументы: Axis – целое число, определяющее ось, для которой следует отключить вышеописанный  режим. 0 = Х, 1 = Y, 2 = Z, 3 = A и т. д.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также:

JogOn()

JogOn

Function JogOn(Axis As Integer, Dir as Integer)

Эта функция используется для запуска режима однократных прерывистых перемещений на указанное значение оси, определенной в аргументе Axis.

Аргументы: Axis – целое число, определяющее ось, для которой следует включить вышеописанный  режим. 0 = Х, 1 = Y, 2 = Z, 3 = A и т. д.

Dir – направление. 0 – в положительном направлении, 1 – в отрицательном направлении

Возвращаемое значение: отсутствует

Пример:

JogOff(Yaxis)

Смотрите также:

JogOff()

LoadFile

Sub LoadFile(FilePath As String)

Эта функция загружает файл G-кода, указанный в аргументе FilePath

Аргументы: FilePath – полный путь до файла G-кода

Возвращаемое значение: отстутствует

Пример:

Смотрите также:

RunFile()

LoadRun

Sub LoadRun(Filepath As String)

Эта функция загружает файл G-кода, указанный в Filepath, а затем сразу же начинает

Его исполнение. Эквивалентно LoadFile(), за которым следует RunFile().

Аргументы: FilePath – полный путь до файла G-кода

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

LoadFile(), RunFile(), Filename(), IsLoading()

LoadStandardLayout

Sub LoadStandardLayout()

Эта функция повторно загружает текущий набор экранов по умолчанию. Функция используется в основном для повторной загрузки экрана по умолчанию, когда происходит выход из визарда.

Аргументы: отсутствуют

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

ToggleScreens()

LoadTeachFile

Sub LoadTeachFile()

Эта функция загружает последний файл Teach в Mach3 для выполнения. Файл сначала должен быть открыт или создан с помощью OpenTeachFile() или AppendTeachFile() во время текущего сеанса Mach3.

Аргументы: отсутствуют

Возвращаемое значение: остсутствует

Пример:

Смотрите также:

OpenTeachFile(), AppendTeachFile(), CloseTeachFile()

LoadWizard

Sub LoadWizard(WizardName As String)

Эта функция загружает и запускает указанный визард. Визарды находятся в папке Mach3 \ Addons. Каждый визард состоит из нескольких файлов с подкаталогом. Строка WizardName, переданная в качестве аргумента LoadWizard, должна быть просто именем подкаталога верхнего уровня для визарда.

Аргументы: WizardName – имя визарда, который должен быть загружен

Возвращаемое значение: отсутствует

Пример:

Смотрите также: связи отсутствуют

MachMsg

Function MachMsg(Prompt As String, Title As String, DialogType As Integer) As

Integer

Эта функция отображает диалоговое окно с одной из нескольких различных комбинаций кнопок, и ждет, пока пользователь нажмет одну из кнопок. Аргумент Title – отображается в заголовке диалогового окна. Аргумент Prompt – отображается в клиентской части

диалогового окна над кнопками. Щелчок по любой кнопке закрывает диалоговое окно, и

возвращаемое значение функции указывает, какую кнопку нажал пользователь.

Аргументы:

Prompt – строка, которая будет отображаться в клиентской части диалогового окна над

Кнопками.

Title – строка, которая будет отображаться в заголовке диалогового окна.

DialogType – целочисленное значение, которое определяет, какие кнопки будут отображаться в окне:

0 – кнопка OK

1 – кнопки OK, Cancel

2 – кнопки Abort, Retry, Ignore

3 – кнопки Yes, No, Cancel

4 – кнопки Yes, No

5 – кнопки Retry, Cancel

6 – кнопки Cancel, Try Again, Continue

Возвращаемое значение: указывает, какую кнопку нажал пользователь:

OK – 1

Cancel – 2

Abort – 3

Retry – 4

Ignore – 5

Yes – 6

No – 7

Try Again – 10

Continue – 11

Пример:

Смотрите также:

Message(), Question(), AskTextQuestion(), GetCoord()

MaxX

Function MaxX() As Double

Эта функция возвращает максимальное значение X координаты открытого файла G-кода в формате Double

Аргументы: отсутствуют

Возвращаемое значение: максимальное значение X координаты открытого файла G-кода в формате Double

Пример:

Смотрите также:

MinX(), MinY, MaxY()

MaxY

Function MaxY() As Double

Аналогично MaxX

Message

Sub Message(MessageText As String)

Эта функция отображает строку MessageText в строке состояния.

Аргументы: MessageText – строка, которая будет отображена в строке состояния

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

Message(), Question(), Ask TextQuestion(), MachMsg(), GetCoord()

MinX

Function MinX() As Double

Аналогично MaxX, но будет возвращено минимальное значение

MinY

Function MinY() As Double

Аналогично MinX

nFmt

Function nFmt(Val As Double, Digits As Integer) As Double

Эта функция округляет значение Double до указанного количества десятичных знаков.

Аргументы:

Val – значение типа Double, которое нужно округлить

Digits – количество знаков после запятой

Возвращаемое значение: округленное значение в формате Double

Пример:

Смотрите также: связи отсутствуют

NotifyPlugins

Sub NotifyPlugins(Event As Integer)

Эта функция вызывает метод MyNotify всех загруженных в данный момент подключаемых модулей, передавая событие как аргумент.

Аргументы: Event – целочисленное значение, которое будет передано в качестве аргумента MyNotify.

Возвращаемое значение: отсутствует

Пример: отсутствует

Смотрите также: связи отсутствуют

NumberPad

Function NumberPad (ByVal PadTitle As string) As Double

Эта функция отображает цифровую клавиатуру для ввода данных. Она достаточно большая, чтобы ее было легко использовать с сенсорными экранами. Размер цифровой клавиатуры также можно изменить, перетащив границу.

Аргументы: PadTitle – строка, отображаемая в заголовке окна клавиатуры

Возвращаемое значение: Введенное значение в формате Double

Пример:

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06.

OpenDigFile

Sub OpenDigFile()

Эта функция открывает файл журнала оцифровки. При запуске OpenDigFile

отобразится диалоговое окно, в котором пользователь может выбрать существующий файл или ввести новое имя файла, в который будут записаны данные оцифровки (зондирования). После открытия файла команда G31 вызовет запись положения триггера датчика в файл оцифровки. Когда оцифровка будет завершена, CloseDigFile() можно использовать для закрытия файла.

Аргументы: отсутствуют

Возвращаемое значение: отсутствует

Пример: отсутствует

Смотрите также: связи отсутствуют

OpenTeachFile

Function OpenTeachFile (Filename As String) As Integer

Эта функция повторно открывает существующий файл Teach, находящийся в каталоге Gcode установочного каталога Mach3 и добавляет в этот файл все команды, которые впоследствии выполняются через MDI или Code (), до тех пор, пока не будет запущена функция CloseTeachFile().

Аргументы: Filename – имя файла для открытия

Возвращаемое значение:

0 – не удалось открыть файл

1 – файл успешно открыт

Пример:

Смотрите также:

AppendTeachFile(), CloseTeachFile()

Param1

Function Param1() As Double

Эта функция возвращает значение параметра P, переданное в M-макрос.

Аргументы: отсутствуют

Возвращаемое значение: значение параметра P, переданное в M-макрос в формате Double

Пример:

Смотрите также:

Param2(), Param3()

Param2

Function Param2() As Double

Аналогично Param1

Param3

Function Param3() As Double

Аналогично Param1

PlayWave

Sub PlayWave(Filename As String)

Эта функция воспроизводит файл .WAV через аудиосистему ПК. Filename –  имя

файла WAV для воспроизведения.

Аргументы: Filename –  имя файла WAV для воспроизведения

Возвращаемое значение: отсутствует

Пример:

Смотрите также: связи отсутствуют

ProgramSafetyLockout

Function ProgramSafetyLockout() As Boolean

Эта функция используется для получения значения параметра config / general-config меню Mach. который определяет, используется ли вход 1 для управления системой безопасности станка (щитки и т.д.)

Аргументы: отсутствуют

Возвращаемое значение:

True: опция активна

False: опция не активна

Пример:

Смотрите также: связи отсутствуют

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06.

PutPortByte

Sub PutPortByte(PortAddr As Integer, Value As Integer)

Эта функция записывает 8-битные данные, заданные в аргументе Value в 8-битный порт ввода-вывода ПК, адрес которого передается в аргументе PortAddr. Эта функция может использоваться для управления аппаратными устройствами, которые напрямую не поддерживаются Mach3.

Аргументы:

PortAddr – адрес порта.

Value – записываемое значение. Только 8 младших значащих битов (LSBs).

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

GetPortByte()

Question

Function Question(Prompt As String) As Double

Эта функция отображает диалоговое окно с кнопкой ОК и текстовое поле, в которое пользователь можно ввести числовое значение. Строка подсказки отображается над текстовым полем. Значение возвращается в формате Double. Функцию можно использовать для получения одного числового значения от пользователя.

Аргументы: Prompt – строка подсказки.

Возвращаемое значение: числовое значение введенное пользователем.

Пример:

Смотрите также:

Message(), Question(), AskTextQuestion(), MachMsg(), GetCoord()

QueueDepth

Function QueueDepth() As Integer

Эта функция возвращает текущее количество записей в очереди планирования траектории.

Аргументы: отсутствуют

Возвращаемое значение: Количество записей в очереди планировщика траектории в виде целого числа.

Пример:

Смотрите также: связи отсутствуют

Random

Function Random() As Double

Эта функция возвращает псевдослучайное число от 0 до 1. Ее можно использовать вместо функции CB rnd ().

Аргументы: отсутствуют

Возвращаемое значение:

Следующее псевдослучайное число в последовательности, в формате Double

Пример:

Смотрите также: связи отсутствуют

RefCombination

Sub RefCombination(Axes As Integer)

Эта функция позволяет одновременно реферировать (привязать) любую комбинацию осей. Оси определяются аргументом Axes.

Аргументы:

Axes – значение, которое определяет, на какие оси следует ссылаться. Оно вычисляется путем сложения значений, соответствующих отдельным осям. Значения осей:

Х = 1

Y = 2

Z = 4

А = 8

В = 16

С = 32

Так, например, для ссылки на оси X, Z и B, Аргумент Axes будет равен: 1 + 4 + 16 = 21.

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

VerifyAxis(), SingleVerify(), SingleVerifyReport()

ResetAxisSwap

Sub ResetAxisSwap()

Эта функция отменяет действие функции SwapAxis (). Обратите внимание, что это единственный способ отменить Swap, и выполнение двух вызовов SwapAxis ().

Аргументы: отсутствуют


Возвращаемое значение: отсутствует

Пример:

Смотрите также:

SwapAxis()

ResetTHC

Sub ResetTHC()

Эта функция сбрасывает высоту резца. Она идентична ZeroTHC(), за исключением случаев, когда программа запущена. В этом случае она ничего не делает.

Аргументы: отсутствуют

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

THCOn(), THCOff()

RetractMode

Function RetractMode() As Integer

Эта функция возвращает текущий режим отвода Peck Drilling. Если код G98 был запущен и не был отменен командой G99 функция вернет 0. Если же был запущен код G99 и не был отменен командой G98, то будет возвращена 1.

Аргументы: отсутствуют

Возвращаемое значение: целочисленное значение, указывающее, какой цикл сверления активирован 0 = G98, 1 = G99.

Пример:

Смотрите также: связи отсутствуют

roun

Function roun(Val As Double) As Double

Эта функция округляет значение Double, заданное параметром Val, до четвертого знака после запятой.

Аргументы: Val – округляемое значение в формате Double

Возвращаемое значение: Число, округленное до четвертого знака после запятой в формате Double

Пример:

Смотрите также:

Round()

RunFile

Sub RunFile()

Эта функция начинает выполнение загруженного в данный момент G-кода, если таковой имеется. Идентична DoOEMButton (CYCLESTART)

Аргументы: отсутствуют

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

FileName(), LoadFile(), LoadRun(), IsLoading(), DoOEMButton()

RunScript

Function RunScript(ByVal QFN as string) as Integer

Эта функция может использоваться для запуска макроса из другого макроса. Параметр квалифицированного имени файла (QFN) относится к установочному каталогу Mach.

Функция загрузит указанный файл макроса, скомпилирует его, выполнит и вернется к выполнению основной программы, когда сценарий будет завершен.

До добавления этой функции обычной практикой было помещать код сценария в макрос Mxxx.m1s и использовать функцию Code для выполнения макроса Mxxx. Выполнение

макроса Mxxx предполагало использование интерпретатора Mach GCode (выполнение блока GCode M) и приводило к тому, что программисту приходилось изобретать и обрабатывать семафоры для координации асинхронного выполнения Mxxx

макроса.

Рекомендуется избегать использования функции Code в качестве метода вызова скрипта и, по возможности, следует использовать функцию RunScript.

Аргументы: QFN – полное имя файла макроса (без расширения) для запуска. Расширение не включено, так как Mach3 будет искать расширение .m1s или .mcc для названного макроса.

Возвращаемое значение:

0 – файл найден и запущен.

<0 – состояние ошибки, файл не был запущен.

Возвращаемые значения ошибки: <TBD>

Пример:

Файл MsgBoxScript.m1s содержит MsgBox «Message from script file»

В результате отобразится диалоговое окно с содержимым «Message from script file».

Затем следует диалоговое окно с надписью «Script Ran».

Смотрите также: связи отсутствуют

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06.

В версии 3.43.6 возвращаемое значение функции было изменено на Boolean:

Возвращаемое значение:

True – файл найден и запущен.

False – файл не найден.

Эта функция была вновь изменена в Mach3 версии 3.43.19 и теперь ее возвращаемое значение, как и в первоначальном варианте, имеет формат Integer.

SaveWizard

Sub SaveWizard()

Эту функцию можно использовать в визарде для сохранения значений параметров, введенных пользователем. Они будут загружены при следующем запуске визарда.

Аргументы: отсутствуют

Возвращаемое значение: отсутствует

Пример:

Смотрите также: связи отсутствуют

SetButtonText

Sub SetButtonText(Text As String)

Эта функция позволяет изменять текст экранной кнопки. Ее можно использовать для изменения текста на кнопке на основе состояния переменной или режима.

Аргументы:

Text – строка, определяющая новый текст, который будет отображаться на кнопке.

Возвращаемое значение: отсутствует

Пример:

Смотрите также: связи не обнаружены

SetCurrentTool

Sub SetCurrentTool(ToolNum As Integer)

Эта функция делает выбранный инструмент текущим.

 Аргументы:

ToolNum – номер инструмента от 1 до 255.

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

GetCurrentTool(), GetSelectedTool()

SetDRO

Function SetDRO(DRONum As Integer, DROVal As Double)

Эта устаревшая функция изменяет значение поля DRO, с номером DRONum, на указанное пользователем значение DROVal.. Использование SetDRO больше не рекомендуется. Эта функция существует только для поддержки устаревших скриптов.

Примечание к устаревшему сценарию: существовало две разные нумерации DRO, используемые в Mach3: номер «DRO» и номер «OEMDRO». Эта функция использует номер «DRO».

 Нумерация «DRO» были дополнительно разделена на «пользовательский» и «OEM» диапазоны. Диапазон «OEM» включал в себя номера от 0 до 200, что

соответствовал номерам OEM DRO от 800 до 1000. Числовое соответствие между рядами нумерации не гарантируется для будущих версий Mach.

Используйте функции SetOEMDRO и SetUserDRO вместо этой функции.

Аргументы:

DRONum – номер поля DRO (от 0 до 200)

DROVal –  значение, присваиваемое полю DRO

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

SetOEMDRO(), GetOEMDRO(), SetUserDRO(), GetUserDRO(), GetDRO()

SetFeedRate

Sub SetFeedRate(FeedRate As Double)

Эта функция устанавливает скорость подачи. Обратите внимание, что значение FeedRate указывается в единицах в секунду, а не в единицах в минуту.

Аргументы:

FeedRate – указывается в единицах в секунду в формате Double

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

FeedRate()

SetFormula

Sub SetFormula(Formula As String, Axis As Integer)

Эта функция устанавливает формулу, доступную через FunctionCfg’s-> Formulas для указанной оси. Формулы позволяют определять движение осей с учетом положения других осей используя алгебраические и тригонометрические функции. Обратите внимание: чтобы формулы могли быть задействованы, вы должны установить флажок «Формулы включены» в FunctionCfg’s-> Formulas.

Аргументы:

Formula – строка, определяющая алгебраическую / тригонометрическую функцию, которая будет использоваться для вычисления положения оси.

Axis – значение определяющее к какой оси должна применяться формула.

Возвращаемое значение: отсутствует

Пример:

Смотрите также: связи не обнаружены

SetIJMode

Sub SetIJMode(IJMode As Integer)

Эта функция устанавливает режим IJ. IJMode = 0 устанавливает абсолютный режим, а IJMode = 1 устанавливает инкрементальный режим.

Аргументы:  IJMode = 0 устанавливает абсолютный режим, IJMode = 1 устанавливает инкрементальный режим.

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

GetIJMode()

SetMachZero

Sub SetMachZero(Axis As Integer)

Эта функция обнуляет координату указанной оси в текущей позиции.

Аргументы: Axis – значение, определяющее обнуляемую ось. 0 = X, 1 = Y, 2 = Z, 3 = Z,

и т.д.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также: связи отсутствуют

SetOEMDRO

Sub SetOEMDRO(DRONum As Integer, DROVal as Double)      

Эта функция изменяет значение поля OEM DRO, с номером DRONum, на значение указанное в DROVal.

Аргументы: DRONum – значение или выражение, равное номеру одного из полей OEM DRO.

DROVal – новое значение поля.

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

GetOEMDRO(), SetUserDRO(), GetUserDRO()

SetPage

Sub SetPage(PageNum As Integer)

Эта функция переключает текущую отображаемую страницу на страницу с номером PageNum.

Аргументы:

PageNum – номер страницы, на которую нужно переключиться.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также:

GetPage()

SetParam

Sub SetParam(ParamName As String, ParamVal As Double)

Эта функция позволяет использовать ряд внутренних параметров Mach3 (не путать с параметрами G-кода). Каждый параметр Mach3 идентифицируется по имени. Параметр,

имя которого задано в ParamName, устанавливается равным значению, заданному в ParamVal. Параметры:

RPMOverRideКогда этот параметр равен 1, скорость шпинделя (OEMDRO 39) становится доступной для записи, перекрывая таким образом обычный расчет истинной скорости шпинделя в Mach3.
XscaleКоэффициент масштабирования по оси X
YScaleКоэффициент масштабирования по оси Y
ZScaleКоэффициент масштабирования по оси Z
AScaleКоэффициент масштабирования по оси A
BScaleКоэффициент масштабирования по оси B
CScaleКоэффициент масштабирования по оси C
FeedRateСкорость подачи
UnitsТекущие единицы (дюйм / мм). 0 = мм, 1 = дюйм
StepsPerAxisXШагов по оси X на единицу
StepsPerAxisYШагов по оси Y на единицу
StepsPerAxisZШагов по оси Z на единицу
StepsPerAxisAШагов по оси A на единицу
StepsPerAxisBШагов по оси B на единицу
StepsPerAxisCШагов по оси C на единицу
VelocitiesXМаксимальная скорость по оси X (в зависимости от настройки двигателя), в единицах в секунду
VelocitiesYМаксимальная скорость по оси Y (в зависимости от настройки двигателя), в единицах в секунду
VelocitiesZМаксимальная скорость по оси Z (в зависимости от настройки двигателя), в единицах в секунду
VelocitiesAМаксимальная скорость оси A (в зависимости от настройки двигателя), в единицах в секунду
VelocitiesBМаксимальная скорость оси B (в зависимости от настройки двигателя), в единицах в секунду
VelocitiesCМаксимальная скорость оси C (в зависимости от настройки двигателя), в единицах в секунду
AccelerationXМаксимальное ускорение оси X (в зависимости от настройки двигателя)
AccelerationYМаксимальное ускорение оси Y (в зависимости от настройки двигателя)
AccelerationZМаксимальное ускорение оси Z (в зависимости от настройки двигателя)
AccelerationAМаксимальное ускорение оси A (в зависимости от настройки двигателя)
AccelerationBМаксимальное ускорение оси B (в зависимости от настройки двигателя)
AccelerationCМаксимальное ускорение оси C (в зависимости от настройки двигателя)
SpindleSpeedИзменяет скорость шпинделя, но работает не во всех версиях. Для изменения скорости шпинделя используйте функцию SetSpinSpeed ​​().
ZInhibitOnZ Inhibit Enable. 0: ограничение передвижений по оси  Z отключено, 1: ограничение оси Z включено. При включении ограничения оси Z она не сможет перемещаться ниже глубины, заданной параметром ZinhibitDepth.
ZInhibitDepthZinhibitDepth – ограничительный параметр для вышеуказанного параметра
SafeZБезопасная высота по оси Z
BoundryОтображение границ траектории включено. 0: отключить отображение границ, 1: включить отображение границ
XRefPerСкорость перемещения к нулю по оси X, в % от максимальной скорости
YRefPerСкорость перемещения к нулю по оси Y, в % от максимальной скорости
ZRefPerСкорость перемещения к нулю по оси Z, в % от максимальной скорости
ARefPerСкорость перемещения к нулю по оси A, в % от максимальной скорости
BRefPerСкорость перемещения к нулю по оси B, в % от максимальной скорости
CRefPerСкорость перемещения к нулю по оси C, в % от максимальной скорости
ToolPathLockВключение блокировки траектории. 0: Траектория разблокирована, 1: Траектория заблокирована. Когда траектория заблокирована, ее нельзя перемещать, масштабировать или вращать.
PrepMoveЗапрет показа диалогового окна подготовительного перемещения. 0: разрешить отображение диалоговых окон подготовительного перемещения, 1: запретить отображение диалоговых окон подготовительного перемещения
AutoToolChange??? – Указывает, что используется автоматическая смена инструмента
ADirActive??? – Обратное направление оси А

Аргументы:

ParamName – имя устанавливаемого параметра (из таблицы).

ParamVal – значение типа Double, присваиваемое параметру

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

GetParam()

SetPulley

Sub SetPulley(Pulley As Integer)

Эта функция устанавливает текущий номер передачи шпинделя. Это позволяет Mach3 правильно масштабировать выходную скорость шпинделя на основе текущей передачи и заданной скорости шпинделя. Передаточное число и допустимые диапазоны скоростей настраиваются в Config-> SpindlePulleys.

Аргументы:

Pulley – это номер передачи от 1 до 15.

Возвращаемое значение: отсутствует

Пример:

Смотрите также: связи отсутсвуют

SetSafeZ

Sub SetSafeZ(SafeZ As Double)

Эта функция устанавливает новое значение для безопасной высоты по Z. Обратите внимание, что SafeZ должен быть включен в Config-> SafeZConfig

Аргументы:

SafeZ – значение безопасной высоты в формате Double

Возвращаемое значение: отсутствует

Пример:

Смотрите также: связи отсутствуют

SetScale

Sub SetScale(Axis As Integer, Scale As Double)

Эта функция устанавливает коэффициент масштабирования для оси Axis

Аргументы:

Axis -номер оси. 0: X, 1: Y, 2: Z, 3: A и т. д.

Scale – коэффициент масштабирования

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

GetScale()

SetSpinSpeed

Sub SetSpinSpeed(RPM As integer)

Эта функция устанавливает скорость шпинделя в об / мин точно так же, как слово «S» в G-коде.

Аргументы:

RPM – устанавливаемая скорость шпинделя.

Возвращаемое значение: отсутствует

Пример:

‘ Установим скорость шпинделя в 2500 RPM и запустим шпиндель

SetSpinSpeed(2500)

DoSpinCW()

Смотрите также:

DoSpinCW(), DoSpinCCW(), DoSpinStop()

SetTicker

Sub SetTicker(TickerNum As Integer, TickerText As String)

Эта функция загружает текст, заданный в параметре TickerText, в Ticker, указанный в параметре TickerNum. Ticker – это прокручиваемая текстовая метка, текст по умолчанию которой установлен на «Tickernn», где «nn» – это число от 0 до 255. В Ticker можно поместить длинное сообщение, и оно будет прокручиваться постоянно, поэтому все сообщение будет видно, даже если метка короче текста.

Аргументы:

TickerNum – номер метки Ticker.

TickerText – текст строки, который будет записан в метку Ticker

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

SetUserLabel(), Message()

SetTimer

Function SetTimer(TimerNum As Integer)

Эта функция сбрасывает указанный таймер. Mach3 предоставляет 25 таймеров, пронумерованных от 0 до 24. Их можно использовать для отсчета времени в скриптах CB. Чтобы рассчитать время события, сначала сбросьте таймер, используя SetTimer (), затем используйте GetTimer () для получения значения счетчика таймера. Обратите внимание, что эта функция работает только с драйвером параллельного порта, и поддержка этой функции может быть прекращена без уведомления в последующих версиях программы.

Аргументы:

TimerNum – номер таймера (от 0 до 24).

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

GetTimer()

SetToolDesc

Function SetToolDesc(ToolNum As Integer, TDesc As String)

Эта функция устанавливает текстовое описание инструмента во внутренней таблице инструментов Mach.

Аргументы:

ToolNum –  номер инструмента (от 0 до 254).

TDesc – строка с описанием инструмента.

Возвращаемое значение:

True: описание задано

False: произошла ошибка при попытке задать описание инструмента.

Пример:

Смотрите также:

GetToolDesc(), GetToolParam(), SetToolParam()

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.42.30

SetToolParam

Sub SetToolParam(ToolNum As Integer, ParamNum As Integer, ParamVal As Double)

Эта функция позволяет установить любой параметр инструмента для любого инструмента.

Аргументы:

ToolNum –  номер инструмента, параметры которого устанавливаются (от 1 до 255). ParamNum – номер параметра, определяемый следующим образом:

Для Mach3Mill:

1 – Диаметр

2 – Z-смещение

3 – X износ

4 – Z износ

Для Mach3Turn:

1 – Тип наконечника

2 – Радиус инструмента

3 – Смещение по оси X

4 – Z-смещение

5 – X износ

6 – Z износ

7 – Угол револьверной головки

Возвращаемое значение: отсутсвует

Пример:

Смотрите также:

GetToolParam(), GetToolDesc()

SetToolX

Function SetToolX(Pos As Double)

Эта функция устанавливает значение поля DRO оси X в значение, заданное аргументом Pos, а затем отображает сообщение «Рабочее смещение установлено» в строке состояния. Обратите внимание, что за исключением этого сообщения SetToolX() функционально идентичен использованию SetOEMDRO для изменения значения поля DRO оси X.

Аргументы:

Pos – значение, которое будет присвоено полю DRO оси X.    

Возвращаемое значение: отсутствует.

Пример:

Смотрите также:

SetToolZ()

SetToolZ

Function SetToolZ(Pos As Double)

Эта функция устанавливает значение поля DRO оси Z в значение, заданное аргументом Pos, а затем отображает сообщение «Рабочее смещение установлено» в строке состояния. Обратите внимание, что за исключением этого сообщения SetToolZ() функционально идентичен использованию SetOEMDRO для изменения значения поля DRO оси Z.

Аргументы:

Pos – значение, которое будет присвоено полю DRO оси Z.    

Возвращаемое значение: отсутствует.

Пример:

Смотрите также:

SetToolX()

SetTriggerMacro

Sub SetTriggerMacro(MacroNum As Integer)

Эта функция позволяет связать M-макрос с OEM-кодом 301. Эту конструкцию можно использовать для того, чтобы один из триггерных сигналов OEM автоматически запускал макрос. Сигнал OEM Trigger сначала должен быть настроен в Config-> Ports & Pins-

> Входные сигналы. Затем OEM-триггер должен быть связан с OEM-кодом 301 в

Конфигурация-> SystemHotKeys. Наконец, необходимо использовать SetTriggerMacro, чтобы определить, какой M-макрос будет выполняться при выполнении кода кнопки OEM 301.

Аргументы:

MacroNum – номер M-макроса, который будет запускаться.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также: связи отсутствуют.

SetUserDRO

Sub SetUserDRO(DRONum As Integer, DROVal As Double)

Эта функция изменяет значение пользовательского поля DRO с номером DRONum на значение, указанное в аргументе DROVal.

Аргументы:

DRONum – номер пользовательского поля DRO (от 1000 до 2254).

DROVal – новое значение пользовательского поля DRO.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также:

GetUserDRO(), SetOEMDRO(), GetOEMDRO()

SetUserLabel

Sub SetUserLabel(LabelNum As Integer, LabelText As String)

Эта функция позволяет изменять текст пользовательской метки типа Label на экране с помощью макроса без использования редактора экранов.

Аргументы:

LabelNum – числовая часть текста метки, установленная по умолчанию (от 0 до 255).

LabelText – текст, который нужно разместить.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также: связи отсутствуют.

SetUserLED

Sub SetUserLED(LEDNum As Integer, State As Integer)

Эта функция позволяет включить или отключить пользовательский индикатор.

Аргументы:

LEDNum – номер пользовательского индикатора (от 1000 до 2254).

State – состояние пользовательского индикатора. 0 – выключен, 1 – включен.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также:

GetUserLED(), SetOEMLED(), GetOEMLED()

SetVar

Sub SetVar(VarNum As Integer, Val As Double)

Эта функция присваивает переменной Mach с номером VarNum  значение  из параметра Val. Переменные Mach доступны как для макросов с помощью SetVar () и GetVar () так и из G-кода, с помощью использования синтаксиса #nnnn.

Аргументы:

VarNum – номер переменной.

Val – новое значение переменной.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также:

GetVar()

SingleVerify

Sub SingleVerify(Axis As Integer)

Эта функция выполняет проверку положения указанной оси, перемещая эту ось в home, обнуляет координату оси, затем возвращает ее к исходной (к началу проверки) координате. Обычно используется в начале программы, чтобы убедиться, что координаты установлены правильно, или после сбоя для восстановления правильных координат.

Аргументы:

Axis –  ось для проверки. 0 – X, 1 – Y, 2 – Z, 3 – А и т. д.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также:

SingleVerifyReport(), VerifyAxis(), RefCombination()

SingleVerifyReport

Function SingleVerifyReport(Axis As Integer)

Эта функция выполняет проверку положения указанной оси, перемещая эту ось в home, обнуляет координату оси, затем возвращает ее к исходной (к началу проверки) координате. После завершения проверки отображается сообщение, показывающее, насколько ось была смещена от правильного положения. Функция идентична SingleVerify за исключением отображения этого сообщения. Обычно используется в начале программы, чтобы убедиться, что координаты установлены правильно, или после сбоя для восстановления правильных координат.

Аргументы:

Axis –  ось для проверки. 0 – X, 1 – Y, 2 – Z, 3 – А и т. д.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также:

SingleVerify(), VerifyAxis(), RefCombination()

Sleep

Sub Sleep(Time As Integer)

Эта функция приостанавливает выполнение макроса на указанный период времени в миллисекундах. В это время другие процессы могут иметь доступ к ЦП. Функция Sleep() обязательно вставляется в любой цикл, который может оставаться активным в течение неопределенного периода времени, для того, чтобы исключить блокировку остальных процессов. Например, в цикл While при ожидании завершения команды перемещения.

Аргументы:

Time – время в миллисекундах.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также: связи отсутствуют.

Speak

Sub Speak(TextToSpeak As String)

Эта функция использует речевой синтезатор, чтобы «озвучить» аргумент String. Обратите внимание, что ваш компьютер должен иметь работающую аудиосистему. Также необходимо включить речевой синтезатор, установив флажок в Config-> GeneralConfig-> GeneralConfiguration.

Аргументы:

TextToSpeak – текст для озвучивания

Возвращаемое значение: отсутствует.

Пример:

Смотрите также: связи отсутствуют.

StartPeriodicScript

Function StartPeriodicScript(ByVal ScriptQFN as String, ByVal UpdatePeriod as

Double) as Integer

Эта функция запускает скрипт с указанной периодичностью.

Аргументы:

ScriptQFN: полное имени файла (QFN) запускаемого макроса. Полное имя пути указывается относительно каталога установки Mach. Расширение скрипта в полное имя не включается. Mach сначала будет искать ScriptQFN.mcc, а если он не будет не найден, то ScriptQFN.m1s. Если QFN – это имя макроса, уже запущенного предыдущим вызовом

StartPeriodicScript () будет возвращена ошибка. Mach не поддерживает несколько периодических экземпляров одного макроса.

UpdatePeriod: период времени между запусками скрипта. Единицы времени – секунды. Минимальное значение 5 мс. Любое значение меньше 5 мс. будет проигнорировано, и для UpdatePeriod будет использоваться минимальное значение 5 мс.

Рекомендуется запускать такие макросы с максимально возможным для выполнения задачи UpdatePeriod. Это поможет минимизировать нагрузку на ПК при выполнении нескольких периодических макросов.

Возвращаемое значение:

0 –  функция была выполнена успешно (скрипт запущен).

<0 – ошибка (скрипт не запущен).

Возвращаемые значения ошибок: <tbd>

Пример:

Смотрите также:

IsPeriodicScriptRunning, StopPeriodicScript

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06. Она была определена, как функция с возвращаемым значением типа Boolean:

True – функция выполнена (макрос запущен)

False – ошибка (макрос не запущен)

В версии Mach3 3.43.19 она была определена, как функция с возвращаемым значением типа Integer.

StartTHC

Sub StartTHC()

Эта функция включает управление высотой резака. Функционально идентична THCOn().

Аргументы: отсутствуют.

Возвращаемое значение: отсутствует.

Пример:

Смотрите также:

THCOn(), THCOff(), EndTHC(), ZeroTHC(), ResetTHC()

StopPeriodicScript

Function StopPeriodicScript(ByVal ScriptQFN as String) as Integer

Эта функция используется для остановки ранее запущенного периодического макроса.

Макрос будет остановлен только в конце текущего кванта времени UpdatePeriod установленного в StartPeriodicScript(). Например, если скрипт выполняется с 5-минутным

UpdatePeriod, и запрос остановки будет запущен через 2 минуты после начала цикла, макрос не будет остановлен, пока не истечет текущий 5-минутный цикл.

Аргументы:

ScriptQFN: полное имени файла (QFN) останавливаемого макроса. Полное имя пути указывается относительно каталога установки Mach. Расширение скрипта в полное имя не включается. Попытки остановить скрипт, который не был запущен с помощью функции StartPeriodicScript(), игнорируются (не является ошибкой).

Возвращаемое значение:

0 – функция была выполнена успешно (макрос остановлен).

<0 –  макрос не был остановлен (например, в случае если он не был ранее запущен с помощью StartPeriodicScript())

Возвращаемые значения ошибок: <tbd>

Пример:

Смотрите также:

IsPeriodicScriptRunning, StartPeriodicScript

Первая версия Mach3 с данным API:

Этот API был впервые реализован в Mach3 версии 3.43.06. Она была определена, как функция с возвращаемым значением типа Boolean:

True – функция выполнена (макрос остановлен)

False – ошибка (макрос не остановлен)

В версии Mach3 3.43.19 она была определена, как функция с возвращаемым значением типа Integer.

StraightFeed

Sub StraightFeed(X As Double, Y As Double, Z As Double, A As Double, B As Double,

C As Double)

Эта функция выполняет перемещение осей в указанное положение с текущей скоростью подачи. Обратите внимание, что все оси должны быть указаны. Эквивалентно коду «G1 Xn.nnn Yn.nnn.

Zn.nnn An.nnn Bn.nnn Cn.nnn».

Аргументы:

X – определяет целевую координату оси X

Y – определяет целевую координату оси Y

Z – определяет целевую координату оси Z

A – определяет целевую координату оси A

B – определяет целевую координату оси B

C – определяет целевую координату оси C

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

StraightTraverse(), Code()

StraightTraverse

Sub StraightTraverse(X As Double, Y As Double, Z As Double, A As Double, B As

Double, C As Double)

Эта функция выполняет быстрое перемещение осей в указанную позицию. Необходимо указать координаты всех осей. Эквивалентно коду «G0 Xn.nnn Yn.nnn Zn.nnn.

An.nnn Bn.nnn Cn.nnn».

Аргументы:

X – определяет целевую координату оси X

Y – определяет целевую координату оси Y

Z – определяет целевую координату оси Z

A – определяет целевую координату оси A

B – определяет целевую координату оси B

C – определяет целевую координату оси C

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

StraightFeed(), Code()

SwapAxis

Sub SwapAxis(FirstAxis As Integer, SecondAxis As Integer)

Эта функция меняет местами контакты STEP и DIR для двух указанных осей. Дает такой же эффект, как и изменение настроек вывода в Config-> Ports & Pins. Обратите внимание, что никакие другие параметры или настройки осей не меняются. Если две указанные оси имеют разные настройки ускорения и скорости, то скорее всего, это приведет к ненадежной работе. Отметим также, что если вы выходите из Mach3, пока действует SwapAxis, смена мест контактов будет записана в XML файл конфигурации, и SwapAxis будет действовать при следующем запуске Mach3. Недопустимо (может привести к сбою) выполнять два последовательных SwapAxis без предварительного выполнения ResetAxisSwap().

Аргументы:

FirstAxis – первая ось для замены: 0 – X, 1 – Y, 2 – Z и т.п.

SecondAxis – вторая ось для замены: 0 – X, 1 – Y, 2 – Z и т.п.

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

ResetAxisSwap()

SystemWaitFor

Sub SystemWaitFor(Signal As Integer)

Эта функция используется, чтобы сообщить Mach, что макрос завершается, и в дальнейшем выполнение G-кода должно дождаться активации некоторого сигнала. Эта функция (при ее использовании) должна быть последней строкой в ​​макросе. Она никогда не используется в цикле.

Аргументы:

SignalID – одна из предопределенных констант выходного сигнала Mach3 CB (см.

CB Constants) или другое значение или выражение, которое принимает значение такой константы.

Возвращаемое значение: отсутствует

Пример: отсутствует.

Смотрите также: связи отсутствуют.

THCOff

Sub THCOff()

Эта функция отключает регулировку высоты резака.

Аргументы:

отсутствуют

Возвращаемое значение:

отсутствует

Пример:

Смотрите также:

THCOn(), ZeroTHC()

THCOn

Sub THCOn()

Эта функция включает регулировку высоты резака.

Аргументы:

отсутствуют

Возвращаемое значение: отсутствует

Пример:

Смотрите также:

THCOff(), ZeroTHC()

ToggleScreens

Sub ToggleScreens()

Эта функция переключает активный экран между «сложным» и «простым» (.set и

.sset) наборами экранов с тем же базовым именем. Например, если текущим набором экранов является по умолчанию «1024.set», эта функция загрузит набор экранов «1024.sset», и наоборот. Функцию можно использовать для переключения между любыми двумя наборами экранов давая обоим одинаковое базовое имя и присваивая одному файлу расширение .set, а другому – расширение .sset.

Аргументы:

отсутствуют

Возвращаемое значение:

отсутствует

Пример:

Смотрите также: связи отсутствуют.

ToolLengthOffset

Function ToolLengthOffset() As Double

Эта функция возвращает коррекцию длины  для текущего инструмента.

Аргументы:

отсутствуют

Возвращаемое значение:

коррекция длины для текущего инструмента.

Пример:

Смотрите также:

GetCurrentTool(), SetCurrentTool(), GetSelectedTool(), GetToolParam(),

SetToolParam(), SetToolX(), SetToolZ(), GetToolDesc()

VerifyAxis

Sub VerifyAxis(Silent As Boolean)

Эта функция проверяет положения всех осей, выполняя операцию их возврата в исходное положение на всех осях одновременно, затем перемещая все оси в положение 0,0000. Если

Safe_Z включен, сначала будет выполнено перемещение в Safe_Z. Если аргумент Silent равен True, то по завершении перемещений в строке состояния отображается сообщение, показывающее смещение всех осей от их исходного положения. Эта функция может быть использована для того чтобы убедиться, что не произошла потеря позиции и /или для исправления  потери позиции, которая могла произойти по разным причинам.

Аргументы:

True – после завершения проверки функция отображает сообщение с  указанием смещений, если таковые имеются для каждой оси.

False – сообщение не отображается.

Возвращаемое значение:

отсутствует. Машинные нули всех осей по окончании проверки сбрасываются в правильное положение.

Пример:

Смотрите также:

SingleVerify(), SingleVerifyReport(), RefCombination()

ZeroTHC

Sub ZeroTHC()

Функция обнуления поправочного коэффициента высоты резака.

Аргументы:

отсутствуют

Возвращаемое значение:

отсутствует.

Пример:

Смотрите также:

THCOn(), THCOff()