Visual Basic для MACH3.
- putman
- Мастер
- Сообщения: 937
- Зарегистрирован: 21 янв 2013, 09:49
- Репутация: 102
- Настоящее имя: Алексей
- Откуда: г. Долгопрудный
- Контактная информация:
Visual Basic для MACH3.
Здравствуйте.
Рою рою интернет, никак не найду руководство по Visual Basic для MACH3 на русском языке.
Поделитесь ссылкой если такое существует конечно.
Рою рою интернет, никак не найду руководство по Visual Basic для MACH3 на русском языке.
Поделитесь ссылкой если такое существует конечно.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Visual Basic для MACH3.
наврят такое существуетputman писал(а): никак не найду руководство по Visual Basic для MACH3 на русском языке.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- putman
- Мастер
- Сообщения: 937
- Зарегистрирован: 21 янв 2013, 09:49
- Репутация: 102
- Настоящее имя: Алексей
- Откуда: г. Долгопрудный
- Контактная информация:
Re: Visual Basic для MACH3.
Пока нашел только мануал на английском, но то ли переводчик так переводит, то ли я не еду, бред какой то.
Вот посмотрите:
, и перевод:
Как это понимать ?
Каким образом по сигналу Probe прекращается движение макросом, если эта функция только возвращает 0 при остановке ?
Что останавливает оси ?
Вот посмотрите:
Код: Выделить всё
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 при остановке ?
Что останавливает оси ?
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Visual Basic для MACH3.
кури команду G31 в Gcode
Code "G31 X1000 F500" ' двигаться по +Х на 1м до касания щупом
Переводится примерно так:
ехать по +Х пока не сработает ПРОБНИК или пока не искончается заданное расстояние 1000мм
Возьми любой готовый твой УП (файл с Gcode) и замени М03 на
G31 X100 F500
и запусти выполнение
Станок должен будет проехать 100мм и продолжить выполнение остальной части УП
Запусти УП заново и теперь отклони щуп пробника посмотри что будет
когда будешь играться с щупом главное чтобы в УП не было команды включение шпинделя М03
Code "G31 X1000 F500" ' двигаться по +Х на 1м до касания щупом
Переводится примерно так:
ехать по +Х пока не сработает ПРОБНИК или пока не искончается заданное расстояние 1000мм
Возьми любой готовый твой УП (файл с Gcode) и замени М03 на
G31 X100 F500
и запусти выполнение
Станок должен будет проехать 100мм и продолжить выполнение остальной части УП
Запусти УП заново и теперь отклони щуп пробника посмотри что будет
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- putman
- Мастер
- Сообщения: 937
- Зарегистрирован: 21 янв 2013, 09:49
- Репутация: 102
- Настоящее имя: Алексей
- Откуда: г. Долгопрудный
- Контактная информация:
Re: Visual Basic для MACH3.
aftaev спасибо, буду учиться.
Накопал в сети немного VB скриптов с комментариями, буду их разбирать, пробовать, учиться.
Накопал в сети немного VB скриптов с комментариями, буду их разбирать, пробовать, учиться.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Visual Basic для MACH3.
разберись как работает Gcode G31 все на нем построено
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- putman
- Мастер
- Сообщения: 937
- Зарегистрирован: 21 янв 2013, 09:49
- Репутация: 102
- Настоящее имя: Алексей
- Откуда: г. Долгопрудный
- Контактная информация:
Re: Visual Basic для MACH3.
Набираю:aftaev писал(а):кури команду G31 в Gcode
Code "G31 X1000 F500" ' двигаться по +Х на 1м до касания щупом
Переводится примерно так:
ехать по +Х пока не сработает ПРОБНИК или пока не искончается заданное расстояние 1000мм
Возьми любой готовый твой УП (файл с Gcode) и замени М03 на
G31 X100 F500
и запусти выполнение
Станок должен будет проехать 100мм и продолжить выполнение остальной части УП
Запусти УП заново и теперь отклони щуп пробника посмотри что будет
Код: Выделить всё
G31 X100 F500Некорректно получается работает G31.
Из-за чего такое может быть ?
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Visual Basic для MACH3.
вставь его в какой нибудь рабочий Gcode
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Visual Basic для MACH3.
попробуй проинвертировать пин.putman писал(а):, стол дёргается и останавливается.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- putman
- Мастер
- Сообщения: 937
- Зарегистрирован: 21 янв 2013, 09:49
- Репутация: 102
- Настоящее имя: Алексей
- Откуда: г. Долгопрудный
- Контактная информация:
Re: Visual Basic для MACH3.
Опять начал воевать с вижл бейсиком.
Пишу так:
не работает, там где должно было бы получиться G00 X9(допустим GetDro(0) = 10) и отьехать назад от препятствия на 1 мм, щуп едет дальше...
Видимо какой то не такой синтаксис, в сети очень мало примеров, никак не могу понять как засунуть переменную в Г-код.
Пишу так:
Код: Выделить всё
XNew = GetDro(0) - 1 'пишем в переменную текуще положение по Х минус 1 мм
Code "G00 X" &ХNew
Видимо какой то не такой синтаксис, в сети очень мало примеров, никак не могу понять как засунуть переменную в Г-код.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Visual Basic для MACH3.
не понимаю это как?putman писал(а): никак не могу понять как засунуть переменную в Г-код.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- putman
- Мастер
- Сообщения: 937
- Зарегистрирован: 21 янв 2013, 09:49
- Репутация: 102
- Настоящее имя: Алексей
- Откуда: г. Долгопрудный
- Контактная информация:
Re: Visual Basic для MACH3.
В вижл бейсике можно написать:aftaev писал(а): не понимаю это как?
Код: Выделить всё
Code "G00 X10"А мне нужно что бы после "Х" не число 10 стояло, переменная, которая вычисляется в программе.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Visual Basic для MACH3.
Макрос поиск металла 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Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Visual Basic для MACH3.
В первом случае, вероятно, были абсолютные координаты.
- putman
- Мастер
- Сообщения: 937
- Зарегистрирован: 21 янв 2013, 09:49
- Репутация: 102
- Настоящее имя: Алексей
- Откуда: г. Долгопрудный
- Контактная информация:
Re: Visual Basic для MACH3.
У меня не получается.
Вот набрал скрипт в 3 строчки, и даже он не работает как надо:
тут должно обнулить координаты, поехать вправо на 5 мм, потом влево на 10 мм, в итоге координата Х должна быть -5.
Если я обнуляю вручную координаты в окошках, то так и происходит, но если координаты не обнулить, то во второй раз уезжает до -10, в третий -15... бред какой то.
Вот набрал скрипт в 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 с
Если я обнуляю вручную координаты в окошках, то так и происходит, но если координаты не обнулить, то во второй раз уезжает до -10, в третий -15... бред какой то.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Visual Basic для MACH3.
Так, вроде, все правильно, так и должно происходить. Или я чего то не понимаю?putman писал(а):Если я обнуляю вручную координаты в окошках, то так и происходит, но если координаты не обнулить, то во второй раз уезжает до -10, в третий -15... бред какой то.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Visual Basic для MACH3.
В ссылке выше есть такой пример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
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.