
Установка машинных координат в произвольное значение из скрипта
Автор
uk137
, 13 Авг 2015 00:42
координаты станка
Сообщений в теме: 23
#1
OFFLINE
Отправлено 13 Август 2015 - 00:42
Уважаемые форумчане!
Помогите пожалуйста.
Мне нужно из скрипта синхронизировать машинные координаты по пользовательским.
Чтобы они совпадали.
Я машинные координаты могу только в 0 установить. В произвольное значение не получается.
Нужен аналог SetDRO(2, MyZ) но для машинных координат. Есть такое?
Я все мануалы прочитал... ответа пока нет.
Помогите пожалуйста.
Мне нужно из скрипта синхронизировать машинные координаты по пользовательским.
Чтобы они совпадали.
Я машинные координаты могу только в 0 установить. В произвольное значение не получается.
Нужен аналог SetDRO(2, MyZ) но для машинных координат. Есть такое?
Я все мануалы прочитал... ответа пока нет.
#2
OFFLINE
#3
OFFLINE
Отправлено 13 Август 2015 - 12:02
G92
Здравствуйте Preps!
Спасибо за ответ, но Вы меня не совсем поняли.
В Mach3 5 координатных систем:
1. Current Position
2. Machine Coord
3. Work Offset
4. G92 Offset
5. Tool Offset
Code "G92 Z.." устанавливает G92 Offset (на рисунке отмечено синим).
Я хочу разобраться как управлять именно Machine Offset? (на рисунке отмечено красным).
Сбросить в 0 каждую ось можно функцией SetMachZero(0..2), а вот
как можно установить конкретное значение не двигая станком?
Сообщение отредактировал uk137: 13 Август 2015 - 12:09
#4
OFFLINE
Отправлено 13 Август 2015 - 12:31
Я хочу разобраться как управлять именно Machine Offset?
Назначение Machine Coord - получение информации о положении головы станка относительно датчиков.
Если хотите изменить показания, то можно использовать следующие варианты:
1. Передвинуть голову при помощи кнопок (самое простое).
2. Изменить значения мм/импульс.
3. Переместить датчики в другое место.
ЗЫ. Не это Вам нужно. Сформулируйте лучше конечную цель.
Сообщение отредактировал lkbyysq: 13 Август 2015 - 12:34
Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).
#5
OFFLINE
Отправлено 13 Август 2015 - 12:53
Назначение Machine Coord - получение информации о положении головы станка относительно датчиков.
Если хотите изменить показания, то можно использовать следующие варианты:
1. Передвинуть голову при помощи кнопок (самое простое).
2. Изменить значения мм/импульс.
3. Переместить датчики в другое место.
ЗЫ. Не это Вам нужно. Сформулируйте лучше конечную цель.
У меня есть радио пульт XHC HB04-L. Там есть две удобные кнопки которыми я всегда пользовался не задумываясь:
"Сброс координат в 0" и "Переместить голову в 0". (Эти кнопки к сожалению не перепрограммируются !!!)
Поставил заготовку в произвольное место рабочего поля. Подвел инструмент в 0. Нажал первую. Запустил программу и в путь...
Если нужно вернуться в 0 то нажал вторую.
Решил сделать себе AutoZeroTool. Написал скрипт по аналогии с имеющимися. Все работает. Вот только с координатами теперь беда.
Скрипт после работы AutoZeroTool правильно выставляет только Current Position при помощи SetDRO(2, Plate). При этом Machine Coord не меняются. Если теперь нажать на пульте "Переместить голову в 0" то станок едет не к 0 Current Position, а к 0 Machine Coord.
У меня датчиков Номе нет. И я не понимал до конца необходимость использования Machine Coord.
Все таки как программно из скрипта поменять значения Machine Coord на произвольные не двигая станком?
Есть в описании SetOEMDRO(85, MyCoord) но не работает. Может в настройках какие дополнительные
разрешающие галочки нужно поставить?
Сообщение отредактировал uk137: 13 Август 2015 - 13:00
#6
OFFLINE
Отправлено 13 Август 2015 - 13:22
У меня датчиков Номе нет
Поставьте датчики - много приятного/полезного получите.
С уважением, Олег.
#7
OFFLINE
Отправлено 13 Август 2015 - 19:46
Решил сделать себе AutoZeroTool. Написал скрипт по аналогии с имеющимися. Все работает. Вот только с координатами теперь беда. Скрипт после работы AutoZeroTool правильно выставляет только Current Position при помощи SetDRO(2, Plate). При этом Machine Coord не меняются. Если теперь нажать на пульте "Переместить голову в 0" то станок едет не к 0 Current Position, а к 0 Machine Coord.
Если после скрипта такое началось, то может в нём что-то не то написали?
#8
OFFLINE
Отправлено 13 Август 2015 - 20:45
Если после скрипта такое началось, то может в нём что-то не то написали?
Я даже понимаю, что нужно написать в скрипте. Я команду не могу найти нужную в мануале по G-Code и Mach3 Macro Programmers Reference.
Книжка Сосонкин, Мартинов по программированию ЧПУ тоже не помогла.
Коллеги профессионалы!
Помогите найти команду для скрипта которая меняет значения Machine Coord на произвольные не двигая станком !
Может я хочу того чего в природе нет? Поправьте если не прав.
Думаю, самое правильное было бы поменять макрос в пульте пульт XHC HB04-L,
который тащит голову к 0 машинных координат. Но пока не понимаю как...
Можно на свободную кнопку свой макрос написать вместо неправильного штатного. Подумаю...
Просто до того как сделал AutoZeroTool все устраивало.
Получилось Коза-Баян. Но теперь бросить уже не спортивно. Нужно добивать.
#9
OFFLINE
Отправлено 13 Август 2015 - 20:49
Page 72
SetMachZero
Sub SetMachZero(Axis As Integer)
This function zeroes the machine position of the specified axis to the current position.
Arguments:
Axis is an Integer value identifying the axis to be zeroed. 0=X, 1=Y, 2=Z, 3=Z,
etc.
Return Value:
None
Example:
‘ Define some constants
Xaxis = 0
Yaxis = 1
Zaxis = 2
‘ Set machine zero for Y axis to current position
SetMachZero(Yaxis)
Неужели не то?
Сообщение отредактировал lkbyysq: 13 Август 2015 - 20:51
Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).
#10
OFFLINE
Отправлено 13 Август 2015 - 21:17
Неа. Не то немного.
SetMachZero() я знаю. Она в "0" устанавливает Machine Coord.
А мне нужно в произвольное значение.
У меня скрипт AutoZeroTool после процедуры поднимает инструмент над тестовой пластиной на величину H.
Мне Z Machine Coord нужно установить в тоже значение = H.
#11
OFFLINE
Отправлено 13 Август 2015 - 21:43
Неа. Не то немного.
Вы бы скрипт свой показали, чтоб понятней было...
#12
OFFLINE
Отправлено 13 Август 2015 - 22:11
Есть в описании SetOEMDRO(85, MyCoord) но не работает.
Page 69
Legacy script note: Over time, there have been two different DRO numbering
schemes used with Mach; the “DRO number” series and the “OEMDRO number”
series. This function uses the “DRO number” series.
Page 70
The “DRO number” series was further subdivided into “User” and “OEM”
ranges. Within the “OEM” range, valid DRONums were from 0 to 200, which, at
one time, corresponded to OEM DRO numbers 800 to 1000.
The numerical correspondence between the numbering series is not guaranteed
for future releases of Mach.
Сдается мне что надо использовать SetOEMDRO(885, MyCoord)
Сравните
Page 70
Example:
‘ Define the axes
Const ZaxisMultiFunctionDRONum = 2
‘ Write 1.2345 to Z axis DRO using SetDRO
SetDRO(ZaxisMultiFunctionDRONum, 1.2345)
Page 73
Example:
‘ Define the axes
Const ZaxisMultiFunctionOEMDRONum = 802
‘ Write 1.2345 to Z axis DRO using SetOEMDRO
SetOEMDRO(ZaxisMultiFunctionDRONum, 1.2345)
Сообщение отредактировал lkbyysq: 13 Август 2015 - 22:12
Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).
#13
OFFLINE
Отправлено 13 Август 2015 - 23:37
У них опечатка в последней строке SetOEMDRO(ZaxisMultiFunctionOEMDRONum, 1.2345) судя по всему должно быть.
Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).
#14
OFFLINE
Отправлено 13 Август 2015 - 23:42
Page 69
Legacy script note: Over time, there have been two different DRO numbering
schemes used with Mach; the “DRO number” series and the “OEMDRO number”
series. This function uses the “DRO number” series.
Page 70
The “DRO number” series was further subdivided into “User” and “OEM”
ranges. Within the “OEM” range, valid DRONums were from 0 to 200, which, at
one time, corresponded to OEM DRO numbers 800 to 1000.
The numerical correspondence between the numbering series is not guaranteed
for future releases of Mach.
Сдается мне что надо использовать SetOEMDRO(885, MyCoord)
Сравните
Page 70
Example:
‘ Define the axes
Const ZaxisMultiFunctionDRONum = 2
‘ Write 1.2345 to Z axis DRO using SetDRO
SetDRO(ZaxisMultiFunctionDRONum, 1.2345)
Page 73
Example:
‘ Define the axes
Const ZaxisMultiFunctionOEMDRONum = 802
‘ Write 1.2345 to Z axis DRO using SetOEMDRO
SetOEMDRO(ZaxisMultiFunctionDRONum, 1.2345)
SetOEMDRO(885, MyCoord) - не работает, я проверил. Такого номера нет в описании OEM DRO.
SetDRO(2, MyCoord) - работает но на пользовательскую систему координат Curent Position
SetOEMDRO(802, MyCoord) - полный аналог SetDRO(2, MyCoord). Я не понял, чем они отличаются.
#15
OFFLINE
Отправлено 13 Август 2015 - 23:46
SetOEMDRO(802, MyCoord) - полный аналог SetDRO(2, MyCoord). Я не понял, чем они отличаются.
Ну тогда стоит попробовать SetDRO(85, MyCoord)
ЗЫ Вообще-то ХЗ что за DRO, что за OEMDRO. Я с мачем не работаю.
Сообщение отредактировал lkbyysq: 13 Август 2015 - 23:49
Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).
#16
OFFLINE
Отправлено 13 Август 2015 - 23:54
Ну тогда стоит попробовать SetDRO(85, MyCoord)
ЗЫ Вообще-то ХЗ что за DRO, что за OEMDRO. Я с мачем не работаю.
SetDRO(85, MyCoord) тоже не работает.
Спасибо, что пытаетесь помочь. Но я чувствую начинаю надоедать.
#17
OFFLINE
Отправлено 14 Август 2015 - 00:12
"Choose the appropriate codes depending on whether you want to access a "system", an OEM or user DRO. droOEMCode will be in the range 800 + for "system DROs and 1000 to 1254 for user DROss. The routine sets the expression provided for newValue into the DRO. Not all DROs can be written. If you cannot type a value into the DRO on the screen (e.g. X Velocity = 806) then you cannot set it in a script." http://www.machsuppo...uped_by_purpose
Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).
#18
OFFLINE
Отправлено 14 Август 2015 - 01:15
Всё правильно, нужно смотреть ОЕМ коды, если там нужного кода нет, значит - никак...
Дневник мастерской https://boosty.to/diycnc
#19
OFFLINE
Отправлено 14 Август 2015 - 01:30
Списка read-only нигде не найти.
Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).
#20
OFFLINE
Отправлено 14 Август 2015 - 02:07
Хорошо. Допустим значения машинных координат read-only.
А это разница между текущим положением и хоумом? Так?
Возможно нужно Хоум поменять по координате, а Машинные
сами пересчитаются.
Есть способ Хоум менять через G-Code или DRO?
Темы с аналогичным тегами координаты станка
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных