можно ли программно поправить оси?

Обсуждение софта, программ, постпроцессоров...

Модератор: life

Ответить
Аватара пользователя
alexIII
Станкостроитель
Станкостроитель
Сообщения: 41
Зарегистрирован: 26 окт 2010, 00:00

можно ли программно поправить оси?

Сообщение alexIII »

подскажите можно ли программно поправить оси либо в маче либо линукс cyc? тобишь есть ось она кривая, заставить станок общитывать этот косяк, в интернете нашел как люфт вала только забить,а про геометрию ничего,знаю что на промышленых станках можно,ну наверно и на наших хобийных предусмотрели такую фичу.
спасибо .
Последний раз редактировалось alexIII 05 янв 2012, 02:34, всего редактировалось 1 раз.
aleksbell
Станкостроитель
Станкостроитель
Сообщения: 289
Зарегистрирован: 05 дек 2009, 01:00
Откуда: РБ

Re: можно ли программно поравить оси?

Сообщение aleksbell »

Нельзя ,только аппаратно .А что за слово такое "поравить" ?
Аватара пользователя
alexIII
Станкостроитель
Станкостроитель
Сообщения: 41
Зарегистрирован: 26 окт 2010, 00:00

Re: можно ли программно поравить оси?

Сообщение alexIII »

aleksbell, странно должно же быть,на винт придумали а на геометрию нет,а то не охота танцевать с бубнами :death:


http://cnc-club.ru/forum/viewtopic.php? ... lash#p1540 нашел кое что но нефига непонятно
aleksbell
Станкостроитель
Станкостроитель
Сообщения: 289
Зарегистрирован: 05 дек 2009, 01:00
Откуда: РБ

Re: можно ли программно поравить оси?

Сообщение aleksbell »

Слушай ,а если у девушки ноги кривые и она оденет ровные колготки - ноги тоже выровняются ? По твоей ссылке там указан только один регулируемый пользователем параметр - Backlash .Это для тех у кого гайка без возможности регулировки люфта механическим способом ,т.е. не разрезная или без пружинной вставки или не в отдельном корпусе половинки и т.д. ,или кому попался "левый" токарь . Второй вариант компенсации - equidistance ,т.н. "эквидистанта" ,поправка на ширину реза в установках плазменной резки или обрабатывающих центрах .При установленном значении ,в зависимости от диаметра инструмента или сопла с необходимым диаметром отверстия ,программное обеспечение оборудования смещает на данную величину инструмент в ту или иную сторону при отработке УП .
В общем никогда не заставишь станок и программу "общитывать" косяки своих рук .
Аватара пользователя
Baha
Станкостроитель
Станкостроитель
Сообщения: 1401
Зарегистрирован: 05 фев 2010, 01:00
Откуда: Москва-Тараз

Re: можно ли программно поравить оси?

Сообщение Baha »

alexIII,
почитай про команду G10 или рисовать с учетом геометрий станка. :idea:
aleksbell
Станкостроитель
Станкостроитель
Сообщения: 289
Зарегистрирован: 05 дек 2009, 01:00
Откуда: РБ

Re: можно ли программно поравить оси?

Сообщение aleksbell »

alexIII писал(а):подскажите можно ли программно поправить оси ? тобишь есть ось она кривая, заставить станок общитывать этот косяк .
alexIII ,ты или устрани или работай как есть .Одно из достоинств станков с ЧПУ это абсолютная повторяемость ,даже в твоем случае .

P.S. G10 - Ввод программируемых данных .Команда G10 позволяет устанавливать или смещать рабочую систему координат и вводить определенные значения в регистры коррекции инструмента памяти станков с ЧПУ при помощи управляющей программы или специальной (отдельной) программы.
Аватара пользователя
alexIII
Станкостроитель
Станкостроитель
Сообщения: 41
Зарегистрирован: 26 окт 2010, 00:00

Re: можно ли программно поравить оси?

Сообщение alexIII »

спасибо за ответы,буду искать дальше
Nick
Станкостроитель
Станкостроитель
Сообщения: 17
Зарегистрирован: 28 янв 2010, 01:00
Контактная информация:

Re: можно ли программно поравить оси?

Сообщение Nick »

Для linuxCNC мы сделали компонентик на питоне для компенсации кривизны поверхности платы при гравировке дорожек.
В принципе, его можно использовать для компенсации неровности осей.
EMC2 и неровная поверхность гравировки [РЕШЕНО] #224
Extremator
Станкостроитель
Станкостроитель
Сообщения: 59
Зарегистрирован: 16 дек 2011, 13:00
Откуда: Нижний Новгород

Re: можно ли программно поравить оси?

Сообщение Extremator »

Боюсь показаться некропостером, но задача имеет место быть,
когда станок получился кривой, в том смысле, что оси X, Y и Z не
ортогональны. Тогда прямоугольник в плоскости XY режется как параллелограмм.
Или когда стол не параллелен плоскости Z.

Правильное решение - юстировать станок.
Но иногда это может быть неоправдано сложно или дорого.
Или просто лень :)

Тогда нормальное решение - программное.
Столкнувшись с такой проблемой на своём станке,
я решил её на скорую руку так. Написал скрипт на Перле (см. ниже)
и G-код для ответственных деталей прогоняю через него перед резкой.
Примерно так:

$ cat prog.cnc | parallel_y.pl > prog_p.cnc

Текст скрипта здесь:
Показать/Спрятать

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

#!/usr/bin/perl -w
# Version 0.3 от 31.10.2012

use HOP::Lexer 'string_lexer';
use Switch;

# Поправляет координату Х в зависимости от Y
# X = X - (dX/dYY) * Y
# Линия Х остаётся неизменной

$DX = 5;    # Уход по X (с учётом знака)
$DYY = 760; # на длине Y

#$DZ = 1; # Уход по Z (с учётом знака)
#$DXZ = 700; # на длине Х

# Вычисляем коэффициент k линейной функции ухода dY/dX, dZ/dX
$ky = $DX / $DYY;
#$kz = $DZ / $DXZ;

my @tokens;
my @input_tokens = (
     [ 'VAR',   qr/(?i:M|T|N|G|X|Y|Z|I|J|K|S|F|\;)/    ], # Все возможные команды
     [ 'NUM',   qr/[+|-]?\d+\.*\d*/             ],     # Шаблон числа
     [ 'SPACE', qr/\s*/, sub { () } ],
);

while($line = <STDIN> ) 	# Читаем строку
{
	$line = uc $line;	# Делаем все буквы прописными
#print ("\n",$line,);

	my $lexer = string_lexer( $line, @input_tokens );

	while (my $token = $lexer->() ) {
		my ($label, $value) = @$token;	# Имя команды
if (not defined $label) {print "Not recognized lexem\n";}
		$term = $value;
			$token = $lexer->();
			($label, $value) = @$token;	# Значение (параметр) команды
			$val = $value;
		###print  "$term = $val : "	;

		###push @tokens, $token;
		switch($term)
		{
#		case "M" { $M = $val;}
#		case "T" { $T = $val;}
#		case "N" { $N = $val;}
		case "G" { $G = $val;}
		case "X" { $X = $val;}
		case "Y" { $Y = $val;}
#		case "Z" { $Z = $val;}
#		case "I" { $I = $val;}
#		case "J" { $J = $val;}
#		case "K" { $K = $val;}
#		case "S" { $S = $val;}
#		case "F" { $F = $val;}
		#else {print "Not recognized term=$term \n";}
		}
		}	# Конец разбора строки $line

if (defined $X or defined $Y) 
  {
  if (defined $X and not defined $Y) # Если нет параметра Y
    {
    $Y = $oldY;
    $line =~ s/\r\n/Y$Y\r\n/i; # В конце строки добавляем Y###
    }
  if (defined $Y and not defined $X) # Если нет параметра X
    {
    $X = $oldX;
    $line =~ s/Y/X$X Y/i; # Добавлям его перед Y
    }

  $newX = $X-($ky*$Y); # Вычисление поправленного значения по X
  $newX = sprintf("%.3f", $newX); # Его форматирование до 3-х знаков после точки
  $line =~ s/X\s*[+|-]?\d+\.*\d*/X$newX/; # Замена прошлого значения новым

  $oldX = $X;
  $oldY = $Y;
#if (defined $Z) {
#		$dZ = $Z-($kz*$X);
#		$dZ = sprintf("%.3f", $dZ);
#		$line =~ s/Z\s*[+|-]?\d+\.*\d*/Z$dZ/;
#		}

#print("G$G ") if defined $G;
#print("X$X ") if defined $X;
#print("Y$Y ") if defined $Y;
#print("Z$Z ") if defined $Z;
#print("I$I ") if defined $I;
#print("J$J ") if defined $J;
#print("T$T ") if defined $T;
#print("M$M ") if defined $M;
#print("S$S ") if defined $S;
#print("F$F ") if defined $F;

  }
	print ($line);
undef $G;
#undef $T;
#undef $S;
#undef $F;
undef $X;
undef $Y;
#undef $Z;

}	# Конец обработки строки $line
Этот скрипт слегка "поворачивает" ось Y при неизменной оси X.
Степень поворота задаётся прямо в скрипте.

Поняв идею, его легко модифицировать на поворот оси X при неизменной Y.
Также легко добавить поправку по оси Z, если стол стоит криво и это критично.

Скрипт несовершенный, написан на скорую руку. Он правильно обрабатывает
только команды G0 и G1. При наличии других команд в коде - результат мне
неизвестен. Также скрипт давится комментариями. Вобщем сырой.
Но мне помогает. Надеюсь и вам поможет, хотя бы как идея.

Удачи!
UAVpilot
Станкостроитель
Станкостроитель
Сообщения: 1198
Зарегистрирован: 07 ноя 2011, 16:01
Откуда: Москва

Re: можно ли программно поравить оси?

Сообщение UAVpilot »

А можно забить эти коррекции в кинематику станка (Linuxcnc или Mach3). :tss:
Я не Христос, рыбу не раздаю. Но могу научить, как сделать удочку.
VVChaif
Начальник форума
Сообщения: 2438
Зарегистрирован: 26 авг 2009, 00:00
Имя: Виталий
Откуда: Краснодарский край. ст. Каневская
Контактная информация:

Re: можно ли программно поравить оси?

Сообщение VVChaif »

UAVpilot, а поконкретней можно?
aegis
Станкостроитель
Станкостроитель
Сообщения: 1696
Зарегистрирован: 05 сен 2010, 00:00
Имя: Михаил
Откуда: Конотоп=>Запорожье=> Харьков, Украина
Контактная информация:

Re: можно ли программно поравить оси?

Сообщение aegis »

VVChaif, наверно хотел бы не прогонять каждый раз через скрипт, а чтобы мач или емс сами обсчитывали это погрешности забитые в параметры самой программы
ukr-sasha
Станкостроитель
Станкостроитель
Сообщения: 142
Зарегистрирован: 23 сен 2011, 07:22
Откуда: Украина, Киев

Re: можно ли программно поравить оси?

Сообщение ukr-sasha »

Еще есть мушн контроллер К-флоп, так у него стандартно в программном обеспечении есть функция с помощью которой можно компенсировать не только неперпендикулярность, а и кривизну осей.
http://dynomotion.com/Help/KMotionCNC/GeoCorrection.htm
Trudogolik
КУМ
КУМ
Сообщения: 6126
Зарегистрирован: 26 авг 2009, 00:00
Имя: Николай Иосифович
Откуда: Инта респ. Коми, 2000 км от Москвы на север!
Контактная информация:

Re: можно ли программно поравить оси?

Сообщение Trudogolik »

aegis писал(а):VVChaif, наверно хотел бы не прогонять каждый раз через скрипт, а чтобы мач или емс сами обсчитывали это погрешности забитые в параметры самой программы
В МАСНе тоже все решаемо.
Если речь только о неортогональности осей, то делаем просто, в строку формул МАСН вбиваются поправки и оно само все посчитает. Например, сдвинуть ось X в сторону с учетом неортогональности можно простой формулой =Xo+K*Y, где К- коэффициент учитывающий неортогональность.
Можно делать через синус(или тангенс) угловой погрешности, если она известна.
Если известна формула(математический закон), описывающая кривизну поверхности, например заготовка имеет форму части сферы, то можно вбить и эту формулу для управления осью Z, тогда ось Z будет учитывать кривизну заготовки.
Частично этих вопросов касались в теме про "нетрадиционную ориентацию" http://www.cncmasterkit.ru/viewtopic.php?f=4&t=2908

Чтоб было понятно про неортогональность. В общем случае смещение осей выглядит как красный параллелограмм,
Изображение
По оси X есть погрешность dX, вот ее мы и компенсируем, вводя формулу в МАСН для управления осью X.
Не забудьте про знак, в зависимости от наклона параллелограмма в формуле может быть или + или -
В более сложных случаях придется искать формулу и для Y.

  Не в тему:   ukr-sasha, сначала я про формулы забыл, ты мне подсказал, теперь наоборот :)
Моя страница для тех, кто ищет ЧПУ выжигатели: https://vk.com/club153912868

Самое ценное в этом мире - информация.
Мы рады предложить вам ее в подарок!
ukr-sasha
Станкостроитель
Станкостроитель
Сообщения: 142
Зарегистрирован: 23 сен 2011, 07:22
Откуда: Украина, Киев

Re: можно ли программно поправить оси?

Сообщение ukr-sasha »

Может я не так понял, но топикстартер говорил именно о кривизне, а не перпендикулярности. А про формулы в Маче я не забыл. :)
П.С. В Маче я так делал, у меня Зет наклон имеет, так я в Икс и Игрек вводил коэфициент. Все работает. Можно пользоваться.

П.П.С. Формула получалась такого вида: Икс=Икс+0,015*Зет.
Trudogolik
КУМ
КУМ
Сообщения: 6126
Зарегистрирован: 26 авг 2009, 00:00
Имя: Николай Иосифович
Откуда: Инта респ. Коми, 2000 км от Москвы на север!
Контактная информация:

Re: можно ли программно поправить оси?

Сообщение Trudogolik »

ukr-sasha писал(а):Может я не так понял, но топикстартер говорил именно о кривизне, а не перпендикулярности.
Так топикстартер тему похоронил год назад, Extremator восстановил и его интересует как раз неортогональность и наклон стола.
Моя страница для тех, кто ищет ЧПУ выжигатели: https://vk.com/club153912868

Самое ценное в этом мире - информация.
Мы рады предложить вам ее в подарок!
ukr-sasha
Станкостроитель
Станкостроитель
Сообщения: 142
Зарегистрирован: 23 сен 2011, 07:22
Откуда: Украина, Киев

Re: можно ли программно поправить оси?

Сообщение ukr-sasha »

:ggg: Не усмотрел.
Extremator
Станкостроитель
Станкостроитель
Сообщения: 59
Зарегистрирован: 16 дек 2011, 13:00
Откуда: Нижний Новгород

Re: можно ли программно поправить оси?

Сообщение Extremator »

Конечно, забить поправки прямо в LinuxCNC или Mach удобнее.
Но я сижу на TurboCNC, а в нём нет такой возможности. (или есть? )
Так что пока - постобработка.
(не поворачивается язык назвать это постпроцессором :)

Факт в том, что этот метод (программной коррекции) довольно
точно работает. Погрешность установки детали на стол и то больше.
(мне иногда нужно ловить десятки)
И при этом, прост как валенок.
Ответить