Страница 1 из 1
Visual Basic для MACH3.
Добавлено: 26 июн 2013, 08:24
putman
Здравствуйте.
Рою рою интернет, никак не найду руководство по Visual Basic для MACH3 на русском языке.
Поделитесь ссылкой если такое существует конечно.
Re: Visual Basic для MACH3.
Добавлено: 26 июн 2013, 09:30
aftaev
putman писал(а): никак не найду руководство по Visual Basic для MACH3 на русском языке.
наврят такое существует
Re: Visual Basic для MACH3.
Добавлено: 26 июн 2013, 09:45
putman
Пока нашел только мануал на английском, но то ли переводчик так переводит, то ли я не еду, бред какой то.
Вот посмотрите:
Код: Выделить всё
IsMoving
Function IsMoving() As Integer
This function returns 1 if any axis is currently moving. This is most often used when commanding
motion within a macro, to pause macro execution until the motion is complete. . This is a complement to
IsStopped().
Arguments:
None
Return Value:
0 if all axes currently stopped
1 if any axis is currently moving
Example:
‘ Move Z axis to Safe_Z position
GotoSafeZ()
‘ Wait for SafeZ move to complete
Sleep(100)
While IsMoving()
Sleep(100)
Wend
, и перевод:
Код: Выделить всё
IsMoving
Функция IsMoving () As Integer
Эта функция возвращает 1, если любой оси в настоящее время движется. Это наиболее часто используется, когда командовавший
движения внутри макро, приостановить выполнение макроса, пока движение не будет завершено. . Это является дополнением к
IsStopped ().
Аргументы:
Ни один
Возвращаемые значения:
0, если все оси момент остановлен
1, если любой оси в настоящее время переходит
Пример:
Как это понимать ?
Каким образом по сигналу Probe прекращается движение макросом, если эта функция только возвращает 0 при остановке ?
Что останавливает оси ?
Re: Visual Basic для MACH3.
Добавлено: 26 июн 2013, 10:35
aftaev
кури команду G31 в Gcode
Code "G31 X1000 F500" ' двигаться по +Х на 1м до касания щупом
Переводится примерно так:
ехать по +Х пока не сработает ПРОБНИК или пока не искончается заданное расстояние 1000мм
Возьми любой готовый твой УП (файл с Gcode) и замени М03 на
G31 X100 F500
и запусти выполнение
Станок должен будет проехать 100мм и продолжить выполнение остальной части УП
Запусти УП заново и теперь отклони щуп пробника посмотри что будет

когда будешь играться с щупом главное чтобы в УП не было команды включение шпинделя М03
Re: Visual Basic для MACH3.
Добавлено: 26 июн 2013, 11:46
putman
aftaev спасибо, буду учиться.
Накопал в сети немного VB скриптов с комментариями, буду их разбирать, пробовать, учиться.
Re: Visual Basic для MACH3.
Добавлено: 26 июн 2013, 12:11
aftaev
разберись как работает Gcode G31 все на нем построено
Re: Visual Basic для MACH3.
Добавлено: 26 июн 2013, 18:45
putman
aftaev писал(а):кури команду G31 в Gcode
Code "G31 X1000 F500" ' двигаться по +Х на 1м до касания щупом
Переводится примерно так:
ехать по +Х пока не сработает ПРОБНИК или пока не искончается заданное расстояние 1000мм
Возьми любой готовый твой УП (файл с Gcode) и замени М03 на
G31 X100 F500
и запусти выполнение
Станок должен будет проехать 100мм и продолжить выполнение остальной части УП
Запусти УП заново и теперь отклони щуп пробника посмотри что будет
Набираю:
, стол дёргается и останавливается.
Некорректно получается работает G31.
Из-за чего такое может быть ?
Re: Visual Basic для MACH3.
Добавлено: 26 июн 2013, 21:29
aftaev
вставь его в какой нибудь рабочий Gcode
Re: Visual Basic для MACH3.
Добавлено: 26 июн 2013, 21:49
Serg
putman писал(а):, стол дёргается и останавливается.
попробуй проинвертировать пин.
Re: Visual Basic для MACH3.
Добавлено: 24 янв 2014, 21:25
putman
Опять начал воевать с вижл бейсиком.
Пишу так:
Код: Выделить всё
XNew = GetDro(0) - 1 'пишем в переменную текуще положение по Х минус 1 мм
Code "G00 X" &ХNew
не работает, там где должно было бы получиться G00 X9(допустим GetDro(0) = 10) и отьехать назад от препятствия на 1 мм, щуп едет дальше...
Видимо какой то не такой синтаксис, в сети очень мало примеров, никак не могу понять как засунуть переменную в Г-код.
Re: Visual Basic для MACH3.
Добавлено: 24 янв 2014, 21:39
aftaev
putman писал(а): никак не могу понять как засунуть переменную в Г-код.
не понимаю это как?
Re: Visual Basic для MACH3.
Добавлено: 24 янв 2014, 21:44
putman
aftaev писал(а):
не понимаю это как?
В вижл бейсике можно написать:
Эта строка сформирует и подаст на исполнение станку код - G00 X10.
А мне нужно что бы после "Х" не число 10 стояло, переменная, которая вычисляется в программе.
Re: Visual Basic для MACH3.
Добавлено: 24 янв 2014, 22:10
aftaev
Макрос поиск металла
http://www.chipmaker.ru/topic/74794/pag ... p__1226914
Пример:
Код: Выделить всё
Позиционируем датчик металла над проколом Y-25 X+45
Code "G0 Y" & GetDRO(DRO_Y)-25 & "G0 X" & GetDRO(DRO_X)+45
Code "G0 Z " & GetDRO(DRO_Z)-10
Re: Visual Basic для MACH3.
Добавлено: 24 янв 2014, 22:28
michael-yurov
В первом случае, вероятно, были абсолютные координаты.
Re: Visual Basic для MACH3.
Добавлено: 24 янв 2014, 22:28
putman
У меня не получается.
Вот набрал скрипт в 3 строчки, и даже он не работает как надо:
Код: Выделить всё
Call SetDRO(0,0) ' обнулить данные в окне X
Call SetDRO(1,0) ' обнулить данные в окне У
Call SetDRO(2,0) ' обнулить данные в окне Z
Code "G04 p0.5" ' пауза 0.5 с
Code "G00 x5" 'едем на 5 мм вправо
Code "G00 x" &GetDRO(0) - 10 'едем на 10 мм влево
Code "G04 p0.5" ' пауза 0.5 с
тут должно обнулить координаты, поехать вправо на 5 мм, потом влево на 10 мм, в итоге координата Х должна быть -5.
Если я обнуляю вручную координаты в окошках, то так и происходит, но если координаты не обнулить, то во второй раз уезжает до -10, в третий -15... бред какой то.
Re: Visual Basic для MACH3.
Добавлено: 24 янв 2014, 23:16
michael-yurov
putman писал(а):Если я обнуляю вручную координаты в окошках, то так и происходит, но если координаты не обнулить, то во второй раз уезжает до -10, в третий -15... бред какой то.
Так, вроде, все правильно, так и должно происходить. Или я чего то не понимаю?
Re: Visual Basic для MACH3.
Добавлено: 25 янв 2014, 00:24
aftaev
putman писал(а):тут должно обнулить координаты, поехать вправо на 5 мм, потом влево на 10 мм, в итоге координата Х должна быть -5.
В ссылке выше есть такой пример
Код: Выделить всё
' Макрос написал Афтаев А.А 2012
Option Explicit
'=== Declaraciones ===
Dim Feed
Dim ZZ ' начальная Z
Const DRO_X = 0
Const DRO_Y = 1
Const DRO_Z = 2
' Read the Z axis DRO
' запоминаем начальную скорость
Feed = FeedRate
ZZ = GetDRO(DRO_Z) ' запоминаем начальную Z
' Проверяем включена кнопка поиск меалла on/off
If GetUserLED(2222) Then
' Подымаемся на всоту Z +20
Code "G0 Z " & GetDRO(DRO_Z)+20
While IsMoving() ' ждем выполнения
Sleep 100
Wend
' Позиционируем датчик металла над проколом Y-25 X+45
Code "G0 Y" & GetDRO(DRO_Y)-25 & "G0 X" & GetDRO(DRO_X)+45 ' ??????????
Code "G0 Z " & GetDRO(DRO_Z)-10
While IsMoving() ' ждем выполнения
Sleep 100
Wend
' Ищем металл
Code "G31 Z-50 F500"
While IsMoving()
Sleep 100
Wend
Code "G92 Z0" ' обнуляем Z
Code "G0 Z20 F200" ' Подымаемся на Z+20
While IsMoving ()
Sleep 100
Wend
' позиционируем резак на место
Code "G0 Z " & GetDRO(DRO_Z)+GetUserLabel(2104)
Code "G0 Y" & GetDRO(DRO_Y)+25 & "G0 X" & GetDRO(DRO_X)-45 ' ??????????
Code "G0 Z " & ZZ ' Встаем на начальную Z
End If
Code "F" & Feed ' возращаем скорость F
DoSpinCW()'запускаем плазму
Code "G92 Z0" ' обнуляем Z