Установка нуля по поверхности материала (Z -> 0) (CAD)

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Установка нуля по поверхности материала (Z -> 0) (CAD)

Сообщение torvn77 »

Результата пока нет
Аватара пользователя
shalek
Почётный участник
Почётный участник
Сообщения: 3023
Зарегистрирован: 25 авг 2014, 10:40
Репутация: 2583
Настоящее имя: Александр
Откуда: РБ Бобруйск
Контактная информация:

Re: Установка нуля по поверхности материала (Z -> 0) (CAD)

Сообщение shalek »

torvn77 писал(а):Результата пока нет
Отсутствие результата уже результат. А надо чего?
Вот в SolidCam
Screenshot - 26.09.2015 , 20_43_11.png (3337 просмотров) <a class='original' href='./download/file.php?id=58875&mode=view' target=_blank>Загрузить оригинал (66.24 КБ)</a>
Screenshot - 26.09.2015 , 20_43_39.png (3337 просмотров) <a class='original' href='./download/file.php?id=58876&mode=view' target=_blank>Загрузить оригинал (305.1 КБ)</a>
Screenshot - 26.09.2015 , 20_46_32.png (3334 просмотра) <a class='original' href='./download/file.php?id=58879&mode=view' target=_blank>Загрузить оригинал (268.23 КБ)</a>
Screenshot - 26.09.2015 , 20_46_46.png (3334 просмотра) <a class='original' href='./download/file.php?id=58880&mode=view' target=_blank>Загрузить оригинал (314.41 КБ)</a>
Вложения
Screenshot - 26.09.2015 , 20_47_21.png (3334 просмотра) <a class='original' href='./download/file.php?id=58881&mode=view' target=_blank>Загрузить оригинал (274.96 КБ)</a>
Если ты не можешь решить проблему, значит это не твоя проблема!
Мой канал на YouTube: YouTube
ЧПУ "Бобр" 600x500 мм
shalek64@gmail.com
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Установка нуля по поверхности материала (Z -> 0) (CAD)

Сообщение torvn77 »

Ну ясно что в начале надо выключить компенсации и поставить те единицы измерения, которые используются в субпрограмме.
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)

Сообщение shalek »

Я наверное помешал Вам размышлять самим с собою?
Больше не буду. :idiot:
Если ты не можешь решить проблему, значит это не твоя проблема!
Мой канал на YouTube: YouTube
ЧПУ "Бобр" 600x500 мм
shalek64@gmail.com
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Установка нуля по поверхности материала (Z -> 0) (CAD)

Сообщение Serg »

torvn77 писал(а):Что делать, как писать программу, которая будет работоспособна при любой выбранной системе координат?
Я уже раз 5 тут постил такую... Или я обязан её и в эту тему запостить? :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Predator
Мастер
Сообщения: 9583
Зарегистрирован: 18 июл 2013, 18:26
Репутация: 2531
Контактная информация:

Re: Установка нуля по поверхности материала (Z -> 0) (CAD)

Сообщение Predator »

UAVpilot писал(а):Или я обязан её и в эту тему запостить?
А то как же, специально для torvn77 :hehehe:
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Установка нуля по поверхности материала (Z -> 0) (CAD)

Сообщение torvn77 »

UAVpilot писал(а):Я уже раз 5 тут постил такую... Или я обязан её и в эту тему запостить? :)
Выход то я нашёл, написал я это к тому, что надо бы для большего удобства сделать соответствующие системные переменные.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Установка нуля по поверхности материала (Z -> 0) (CAD)

Сообщение torvn77 »

Да и свойства (MSG, хорошо бы довести до (DEBUG, а то механизмы это разные, а значения переменных в сообщения засовывать нужно.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Установка нуля по поверхности материала (Z -> 0) (CAD)

Сообщение torvn77 »

Ну вот прототип на критику, как тебе и хочется, сделан на приращениях

Код: Выделить всё

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
В ini надо добавить

Код: Выделить всё

[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)

Сообщение torvn77 »

Но мне такой способ не нравится, всюду, даже в подсчёт результата надо пихать офсеты.
Всёж ноль это ноль, у него нулевая погрешность сложения и вычитания, да и умножение не менее определённое.
Самое не хорошее то, что значение результата G38.x даётся только относительно текущей координатной системы,
а в машинных координатах его прочитать нельзя, так как нет такой переменной.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Установка нуля по поверхности материала (Z -> 0) (CAD)

Сообщение torvn77 »

Ну эти приращения, программа с ними чуть что не так заканчивается с ощибкой выхода за пределы рабочего пространства,
да ещё и результат не всегда получается правильный, из-за чего всё равно приходится вставлять 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)

Сообщение Nick »

А G53 с G38 не работает?
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Установка нуля по поверхности материала (Z -> 0) (CAD)

Сообщение torvn77 »

Нет, не работает.
Причём как я понимаю в принципе, по идее.

А вообще Именно ради установки поверхности материала переключать системы координат не надо,
можно просто сбросить и так изменяемый оффсет по Z.
Ответить

Вернуться в «LinuxCNC»