Перейти к содержимому


Фотография

Установка машинных координат в произвольное значение из скрипта

координаты станка

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 23

#1 OFFLINE   uk137

uk137

    Студент

  • Пользователи
  • PipPip
  • 10 сообщений
  • Из:Москва

Отправлено 13 Август 2015 - 00:42

Уважаемые форумчане!
 
Помогите пожалуйста.
Мне нужно из скрипта синхронизировать машинные координаты по пользовательским.
Чтобы они совпадали. 
Я машинные координаты могу только в 0 установить. В произвольное значение не получается.
Нужен аналог SetDRO(2, MyZ) но для машинных координат. Есть такое?
Я все мануалы прочитал... ответа пока нет.
  • 0

#2 OFFLINE   preps

preps

    Пианист CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 6 846 сообщений
  • Пол:Мужчина
  • Город:взрывающихся у быдла пердаков из-за маечки в сеточку )
  • Интересы:Ура, мы фсех артистов подебилы )
  • Из:Страны-казармы

Отправлено 13 Август 2015 - 01:52

G92


  • 0

Дневник мастерской https://boosty.to/diycnc


#3 OFFLINE   uk137

uk137

    Студент

  • Пользователи
  • PipPip
  • 10 сообщений
  • Из:Москва

Отправлено 13 Август 2015 - 12:02

G92

 

Здравствуйте Preps!

 

Спасибо за ответ, но Вы меня не совсем поняли.

 

В Mach3 5 координатных систем:

1. Current Position

2. Machine Coord

3. Work Offset

4. G92 Offset

5. Tool Offset

 

pic1.jpg

 

Code "G92 Z.." устанавливает G92 Offset (на рисунке отмечено синим).

Я хочу разобраться как управлять именно Machine Offset? (на рисунке отмечено красным).

Сбросить в 0 каждую ось можно функцией SetMachZero(0..2), а вот

как можно установить конкретное значение не двигая станком? 


Сообщение отредактировал uk137: 13 Август 2015 - 12:09

  • 0

#4 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 486 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 13 Август 2015 - 12:31

Я хочу разобраться как управлять именно Machine Offset?

 

Назначение Machine Coord - получение информации о положении головы станка относительно датчиков.

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

1. Передвинуть голову при помощи кнопок (самое простое).

2. Изменить значения мм/импульс.

3. Переместить датчики в другое место.

 

ЗЫ. Не это Вам нужно. Сформулируйте лучше конечную цель.


Сообщение отредактировал lkbyysq: 13 Август 2015 - 12:34

  • 0

Станислав Ерофеев
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   uk137

uk137

    Студент

  • Пользователи
  • PipPip
  • 10 сообщений
  • Из:Москва

Отправлено 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

  • 0

#6 OFFLINE   Lodochnik

Lodochnik

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 4 329 сообщений
  • Пол:Мужчина
  • Из:Королев

Отправлено 13 Август 2015 - 13:22

У меня датчиков Номе нет

Поставьте датчики - много приятного/полезного получите.


  • 1
С уважением, Олег.

#7 OFFLINE   Roma

Roma

    Гуру CNC

  • Продвинутый
  • PipPipPipPipPipPipPipPipPipPip
  • 1 219 сообщений
  • Пол:Мужчина
  • Из:Воронеж

Отправлено 13 Август 2015 - 19:46

Решил сделать себе AutoZeroTool. Написал скрипт по аналогии с имеющимися. Все работает. Вот только с координатами теперь беда. Скрипт после работы AutoZeroTool правильно выставляет только Current Position при помощи SetDRO(2, Plate). При этом Machine Coord не меняются. Если теперь нажать на пульте "Переместить голову в 0" то станок едет не к 0 Current Position, а к 0 Machine Coord.

Если после скрипта такое началось, то может в нём что-то не то написали?


  • 0

#8 OFFLINE   uk137

uk137

    Студент

  • Пользователи
  • PipPip
  • 10 сообщений
  • Из:Москва

Отправлено 13 Август 2015 - 20:45

Если после скрипта такое началось, то может в нём что-то не то написали?

 

Я даже понимаю, что нужно написать в скрипте. Я команду не могу найти нужную в мануале по G-Code и Mach3 Macro Programmers Reference.

Книжка Сосонкин, Мартинов по программированию ЧПУ тоже не помогла.

 

Коллеги профессионалы!

Помогите найти команду для скрипта которая меняет значения Machine Coord на произвольные не двигая станком !

Может я хочу того чего в природе нет? Поправьте если не прав.


Думаю, самое правильное было бы поменять макрос в пульте пульт XHC HB04-L,

который тащит голову к 0 машинных координат. Но пока не понимаю как...

Можно на свободную кнопку свой макрос написать вместо неправильного штатного. Подумаю...

Просто до того как сделал AutoZeroTool все устраивало.

Получилось Коза-Баян. Но теперь бросить уже не спортивно. Нужно добивать. 


  • 0

#9 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 486 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 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

  • 0

Станислав Ерофеев
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   uk137

uk137

    Студент

  • Пользователи
  • PipPip
  • 10 сообщений
  • Из:Москва

Отправлено 13 Август 2015 - 21:17

Неа. Не то немного.

 

SetMachZero() я знаю. Она в "0" устанавливает Machine Coord.

А мне нужно в произвольное значение.

У меня скрипт AutoZeroTool после процедуры поднимает инструмент над тестовой пластиной на величину H.

Мне Z Machine Coord нужно установить в тоже значение = H.


  • 0

#11 OFFLINE   Roma

Roma

    Гуру CNC

  • Продвинутый
  • PipPipPipPipPipPipPipPipPipPip
  • 1 219 сообщений
  • Пол:Мужчина
  • Из:Воронеж

Отправлено 13 Август 2015 - 21:43

Неа. Не то немного.

Вы бы скрипт свой показали, чтоб понятней было...


  • 0

#12 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 486 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 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

  • 0

Станислав Ерофеев
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   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 486 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 13 Август 2015 - 23:37

У них опечатка в последней строке SetOEMDRO(ZaxisMultiFunctionOEMDRONum, 1.2345) судя по всему должно быть.


  • 0

Станислав Ерофеев
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   uk137

uk137

    Студент

  • Пользователи
  • PipPip
  • 10 сообщений
  • Из:Москва

Отправлено 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). Я не понял, чем они отличаются.


  • 0

#15 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 486 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 13 Август 2015 - 23:46

SetOEMDRO(802, MyCoord) - полный аналог SetDRO(2, MyCoord). Я не понял, чем они отличаются.

Ну тогда стоит попробовать SetDRO(85, MyCoord)
 
ЗЫ  Вообще-то ХЗ что за DRO, что за OEMDRO. Я с мачем не работаю.


Сообщение отредактировал lkbyysq: 13 Август 2015 - 23:49

  • 0

Станислав Ерофеев
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   uk137

uk137

    Студент

  • Пользователи
  • PipPip
  • 10 сообщений
  • Из:Москва

Отправлено 13 Август 2015 - 23:54

Ну тогда стоит попробовать SetDRO(85, MyCoord)
 
ЗЫ  Вообще-то ХЗ что за DRO, что за OEMDRO. Я с мачем не работаю.

 

SetDRO(85, MyCoord) тоже не работает.

Спасибо, что пытаетесь помочь. Но я чувствую начинаю надоедать.   :drinks:


  • 0

#17 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 486 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 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


  • 0

Станислав Ерофеев
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   preps

preps

    Пианист CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 6 846 сообщений
  • Пол:Мужчина
  • Город:взрывающихся у быдла пердаков из-за маечки в сеточку )
  • Интересы:Ура, мы фсех артистов подебилы )
  • Из:Страны-казармы

Отправлено 14 Август 2015 - 01:15

Всё правильно, нужно смотреть ОЕМ коды, если там нужного кода нет, значит - никак...


  • 0

Дневник мастерской https://boosty.to/diycnc


#19 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 486 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 14 Август 2015 - 01:30

Списка read-only нигде не найти.
  • 0

Станислав Ерофеев
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   uk137

uk137

    Студент

  • Пользователи
  • PipPip
  • 10 сообщений
  • Из:Москва

Отправлено 14 Август 2015 - 02:07

Хорошо. Допустим значения машинных координат read-only.

А это разница между текущим положением и хоумом? Так?

Возможно нужно Хоум поменять по координате, а Машинные

сами пересчитаются.

Есть способ Хоум менять через G-Code или DRO?


  • 0





Темы с аналогичным тегами координаты станка

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных