Установка нуля по поверхности материала (Z -> 0) (CAD)
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Установка нуля по поверхности материала (Z -> 0) (CAD)
Результата пока нет
- shalek
- Почётный участник

- Сообщения: 3023
- Зарегистрирован: 25 авг 2014, 10:40
- Репутация: 2583
- Настоящее имя: Александр
- Откуда: РБ Бобруйск
- Контактная информация:
Re: Установка нуля по поверхности материала (Z -> 0) (CAD)
Отсутствие результата уже результат. А надо чего?torvn77 писал(а):Результата пока нет
Вот в SolidCam
Если ты не можешь решить проблему, значит это не твоя проблема!
Мой канал на YouTube: YouTube
ЧПУ "Бобр" 600x500 мм
shalek64@gmail.com
Мой канал на YouTube: YouTube
ЧПУ "Бобр" 600x500 мм
shalek64@gmail.com
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Установка нуля по поверхности материала (Z -> 0) (CAD)
Ну ясно что в начале надо выключить компенсации и поставить те единицы измерения, которые используются в субпрограмме.
G21 G40 G49 G90 G94 G92.2
Потом по идее с помошью G38.x начать поиск поверхности материала.
И туть вот какая сложность, если в режиме движения по приращениям G91 задать приращение,
которое отправит ось за пределы рабочего пространства то программа будет прервана с сообщением об ошибке.
Ну да это не сложно поправить, расчитав нужную длинну прыжка.
G38.3 Z[#<_ini[AXIS_2]MIN_LIMIT> - #<_Z> - #5223]
Но помимо эстетической составляющей, так как из нолмера переменной #5223 не ясно, а что же это такое,
есть и практическое соображение, это офсет по Z для системы координат номер 1 (G54),
и будь выбрана другая система координат, расчитанная таким образом длинна прыжка будет не правильной.
Ни номерных переменных, ни именных для получения значения оффсета текущей системы координат нету.
Что делать, как писать программу, которая будет работоспособна при любой выбранной системе координат?
G21 G40 G49 G90 G94 G92.2
Потом по идее с помошью G38.x начать поиск поверхности материала.
И туть вот какая сложность, если в режиме движения по приращениям G91 задать приращение,
которое отправит ось за пределы рабочего пространства то программа будет прервана с сообщением об ошибке.
Ну да это не сложно поправить, расчитав нужную длинну прыжка.
G38.3 Z[#<_ini[AXIS_2]MIN_LIMIT> - #<_Z> - #5223]
Но помимо эстетической составляющей, так как из нолмера переменной #5223 не ясно, а что же это такое,
есть и практическое соображение, это офсет по Z для системы координат номер 1 (G54),
и будь выбрана другая система координат, расчитанная таким образом длинна прыжка будет не правильной.
Ни номерных переменных, ни именных для получения значения оффсета текущей системы координат нету.
Что делать, как писать программу, которая будет работоспособна при любой выбранной системе координат?
- shalek
- Почётный участник

- Сообщения: 3023
- Зарегистрирован: 25 авг 2014, 10:40
- Репутация: 2583
- Настоящее имя: Александр
- Откуда: РБ Бобруйск
- Контактная информация:
Re: Установка нуля по поверхности материала (Z -> 0) (CAD)
Я наверное помешал Вам размышлять самим с собою?
Больше не буду.
Больше не буду.
Если ты не можешь решить проблему, значит это не твоя проблема!
Мой канал на YouTube: YouTube
ЧПУ "Бобр" 600x500 мм
shalek64@gmail.com
Мой канал на YouTube: YouTube
ЧПУ "Бобр" 600x500 мм
shalek64@gmail.com
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Установка нуля по поверхности материала (Z -> 0) (CAD)
Я уже раз 5 тут постил такую... Или я обязан её и в эту тему запостить?torvn77 писал(а):Что делать, как писать программу, которая будет работоспособна при любой выбранной системе координат?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Predator
- Мастер
- Сообщения: 9583
- Зарегистрирован: 18 июл 2013, 18:26
- Репутация: 2531
- Контактная информация:
Re: Установка нуля по поверхности материала (Z -> 0) (CAD)
А то как же, специально для torvn77UAVpilot писал(а):Или я обязан её и в эту тему запостить?
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Установка нуля по поверхности материала (Z -> 0) (CAD)
Выход то я нашёл, написал я это к тому, что надо бы для большего удобства сделать соответствующие системные переменные.UAVpilot писал(а):Я уже раз 5 тут постил такую... Или я обязан её и в эту тему запостить?
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Установка нуля по поверхности материала (Z -> 0) (CAD)
Да и свойства (MSG, хорошо бы довести до (DEBUG, а то механизмы это разные, а значения переменных в сообщения засовывать нужно.
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Установка нуля по поверхности материала (Z -> 0) (CAD)
Ну вот прототип на критику, как тебе и хочется, сделан на приращениях
В ini надо добавить
Код: Выделить всё
O<sys.matheight_rel> sub
M70
G21 G40 G49 G91 G94 G92.2
O<matheight_100> if [ #<_coord_system> EQ 540 ]
#<coord_system_offset_z> = #5223
O<matheight_100> elseif [ #<_coord_system> EQ 550 ]
#<coord_system_offset_z> = #5243
O<matheight_100> elseif [ #<_coord_system> EQ 560 ]
#<coord_system_offset_z> = #5263
O<matheight_100> elseif [ #<_coord_system> EQ 570 ]
#<coord_system_offset_z> = #5283
O<matheight_100> elseif [ #<_coord_system> EQ 580 ]
#<coord_system_offset_z> = #5303
O<matheight_100> elseif [ #<_coord_system> EQ 590 ]
#<coord_system_offset_z> = #5323
O<matheight_100> elseif [ #<_coord_system> EQ 591 ]
#<coord_system_offset_z> = #5343
O<matheight_100> elseif [ #<_coord_system> EQ 592 ]
#<coord_system_offset_z> = #5363
O<matheight_100> elseif [ #<_coord_system> EQ 593 ]
#<coord_system_offset_z> = #5383
O<matheight_100> else
(DEBUG,Programm stopping:uncnown coordinate system number)
M02
O<matheight_100> endif
O<matheight_120> if [ #<_current_tool> NE #<_ini[MATERIAL_HEIGHT_PROBE]SENSOR_TOOL_NUM>]
(DEBUG,Incorect tool, plase insert tool correct number [MATERIAL_HEIGHT_PROBE]SENSOR_TOOL_NUM)
(MSG,Default:314)
M02
O<matheight_120> endif
F[#<_ini[MATERIAL_HEIGHT_PROBE]COARSE_FEED_SEARCH>]
G38.3 Z[#<_ini[AXIS_2]MIN_LIMIT> - #<_z> -#<coord_system_offset_z>]
G38.5 Z[#<_ini[AXIS_2]MAX_LIMIT> - #<_z> -#<coord_system_offset_z>]
F[#<_ini[MATERIAL_HEIGHT_PROBE]ACCURATE_FEED_SEARCH>]
G38.3 Z[#<_ini[AXIS_2]MIN_LIMIT> - #<_z> -#<coord_system_offset_z>]
#<probe_bottom> = #5063
F[#<_ini[MATERIAL_HEIGHT_PROBE]ACCURATE_FEED_LATCH>]
G38.5 Z[#<_ini[AXIS_2]MAX_LIMIT> - #<_z> -#<coord_system_offset_z>]
#<probe_top> = #5063
(DEBUG,<probe_top> = #<probe_top> )
(DEBUG,<probe_bottom> = #<probe_bottom>)
#<probe_result> = [[[#<probe_bottom>+#<probe_top>]/2] + #<coord_system_offset_z>]
G0 Z[#<_ini[AXIS_2]MAX_LIMIT> - #<_z> - #<coord_system_offset_z>]
M72
G10 L2 P1 Z[#<probe_result> - #<_ini[MATERIAL_HEIGHT_PROBE]SENSOR_HEIGHT>]
O<sys.matheight_rel> endsub
M02
Код: Выделить всё
[MATERIAL_HEIGHT_PROBE]
COARSE_FEED_SEARCH = 8192
ACCURATE_FEED_SEARCH = 16
ACCURATE_FEED_LATCH = 8192
SENSOR_HEIGHT = 15
SENSOR_TOOL_NUM = 314- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Установка нуля по поверхности материала (Z -> 0) (CAD)
Но мне такой способ не нравится, всюду, даже в подсчёт результата надо пихать офсеты.
Всёж ноль это ноль, у него нулевая погрешность сложения и вычитания, да и умножение не менее определённое.
Самое не хорошее то, что значение результата G38.x даётся только относительно текущей координатной системы,
а в машинных координатах его прочитать нельзя, так как нет такой переменной.
Всёж ноль это ноль, у него нулевая погрешность сложения и вычитания, да и умножение не менее определённое.
Самое не хорошее то, что значение результата G38.x даётся только относительно текущей координатной системы,
а в машинных координатах его прочитать нельзя, так как нет такой переменной.
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Установка нуля по поверхности материала (Z -> 0) (CAD)
Ну эти приращения, программа с ними чуть что не так заканчивается с ощибкой выхода за пределы рабочего пространства,
да ещё и результат не всегда получается правильный, из-за чего всё равно приходится вставлять G10 L2
Если так, то в предположении что команды gcod'a в LinuxCNC выполняются коррктно её лучше переписать так:
да ещё и результат не всегда получается правильный, из-за чего всё равно приходится вставлять G10 L2
Если так, то в предположении что команды gcod'a в LinuxCNC выполняются коррктно её лучше переписать так:
Код: Выделить всё
O<sys.matheight_rel> sub
M70
G21 G40 G49 G90 G94 G92.2
G10 L2 P[#5220] Z0
O<matheight_120> if [ #<_current_tool> NE #<_ini[MATERIAL_HEIGHT_PROBE]SENSOR_TOOL_NUM>]
(DEBUG,Incorect tool, plase insert tool correct number [MATERIAL_HEIGHT_PROBE]SENSOR_TOOL_NUM)
(MSG,Default:314)
M02
O<matheight_120> endif
F[#<_ini[MATERIAL_HEIGHT_PROBE]COARSE_FEED_SEARCH>]
G38.3 Z[#<_ini[AXIS_2]MIN_LIMIT>]
G38.5 Z[#<_ini[AXIS_2]MAX_LIMIT>]
F[#<_ini[MATERIAL_HEIGHT_PROBE]ACCURATE_FEED_SEARCH>]
G38.3 Z[#<_ini[AXIS_2]MIN_LIMIT>]
#<probe_bottom> = #5063
F[#<_ini[MATERIAL_HEIGHT_PROBE]ACCURATE_FEED_LATCH>]
G38.5 Z[#<_ini[AXIS_2]MAX_LIMIT>]
#<probe_top> = #5063
(DEBUG,<probe_top> = #<probe_top> )
(DEBUG,<probe_bottom> = #<probe_bottom>)
#<probe_result> = [[#<probe_bottom>+#<probe_top>]/2]
G0 Z[#<_ini[AXIS_2]MAX_LIMIT>]
M72
G10 L2 P[#5220] Z[#<probe_result> - #<_ini[MATERIAL_HEIGHT_PROBE]SENSOR_HEIGHT>]
O<sys.matheight_rel> endsub
M02
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Установка нуля по поверхности материала (Z -> 0) (CAD)
А G53 с G38 не работает?
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Установка нуля по поверхности материала (Z -> 0) (CAD)
Нет, не работает.
Причём как я понимаю в принципе, по идее.
А вообще Именно ради установки поверхности материала переключать системы координат не надо,
можно просто сбросить и так изменяемый оффсет по Z.
Причём как я понимаю в принципе, по идее.
А вообще Именно ради установки поверхности материала переключать системы координат не надо,
можно просто сбросить и так изменяемый оффсет по Z.
