Мой CNC китаес Bernardo KF25 Top (клон BF20)
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
А для чего тебе сортировка? Что задумал-то
?
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
компонент для корректировки значений по карте.
конкретно в моем случае для шпинделя.
составляем табличку из пар значений:
заданые обороты, реальные обороты
хотя-бы 10 точек.
суем это в компонент (еще вопрос как это сделать. пока жестко в коде)
и он делает перерасчет заданного значения в реальное, чтобы полчить на выходе то что надо
типа твоей коррекции высоты инструмента.
конкретно в моем случае для шпинделя.
составляем табличку из пар значений:
заданые обороты, реальные обороты
хотя-бы 10 точек.
суем это в компонент (еще вопрос как это сделать. пока жестко в коде)
и он делает перерасчет заданного значения в реальное, чтобы полчить на выходе то что надо
типа твоей коррекции высоты инструмента.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
вот
Код: Выделить всё
component dia_mapper "Diapason Mapper";
description """Diapason Mapper. Implements the following mapping function:
out(x) = ((x-x1)*(y2-y1)/(x2-x1)+y1)
Where x1 < x < x2
So, it maps one diapason of values to another
""";
pin in unsigned in "Input value";
pin out unsigned out "Mapped value";
pin in bit enable = 1 "Mapper enable. When false, the in is passed to out without any calculations.";
function _;
option extra_setup;
license "GPL";
;;
//#include <stdio.h>
//#include <map>
typedef struct {
int commanded;
int measured;
} data;
data raw_data[] = {\
/*commanded, measured*/\
{ 100, 180 },\
{ 150, 190 },\
{ 200, 350 },\
{ 300, 400 },\
{ 400, 450 },\
{ 500, 510 },\
{ 600, 580 },\
{ 700, 650 },\
{ 800, 700 },\
};
#define ARR_SIZE(a) (sizeof(a)/sizeof((a)[0]))
int comparer(const void *_v1, const void *_v2)
{
data *v1 = (data*)_v1;
data *v2 = (data*)_v2;
if(v1->measured == v2->measured)
return 0;
else if(v1->measured > v2->measured)
return 1;
return -1;
}
EXTRA_SETUP()
{
// qsort(raw_data, (sizeof(raw_data)/sizeof(raw_data[0])), sizeof(data), comparer);
return(0);
}
int calc(int x)
{
if(raw_data[0].measured > x) // X too low
return raw_data[0].commanded;
int i, j;
for(i = 0; i < ARR_SIZE(raw_data); ++i)
{
j = i + 1;
if(j == ARR_SIZE(raw_data)) // x tool high
return raw_data[i].commanded;
if(raw_data[j].measured >= x)
break;
};
int x1, x2, y1, y2;
y1 = raw_data[i].commanded;
y2 = raw_data[j].commanded;
x1 = raw_data[i].measured;
x2 = raw_data[j].measured;
if(x2 == x1) // prevent divide by zero
{
return y1;
}
return ((int)(x-x1)*(y2-y1)/(x2-x1)+y1);
}
FUNCTION(_)
{
int x = in;
if(enable)
{
out = x;
return;
}
out = calc(x);
}Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
Т.е. у тебя не линейная зависимость измеренных оборотов и реальных?
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
угу. слегка нелинейная.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
А зачем тебе сортировка?
делай
А все значения можешь в виде параметров завести, чтобы их жестко в коде не прописывать.
делай
Код: Выделить всё
for(i=0; i<len-1 && in<a[i]; i++) {}
x1 = a[i]
x2 = a[i+1]
y1 = b[i]
y2 = b[i+1]- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
без сортировки нет гарантии что a[i+1] > a.
есть пример ?
Nick писал(а):параметров завести
есть пример ?
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
Полно
!
http://git.linuxcnc.org/gitweb?p=linuxc ... 0c;hb=HEAD
а оно надо? Во многих компанентах прямо пишут:
notes "If \\fBmax\\fR <= \\fBmin\\fR then the behavior is undefined.";
http://git.linuxcnc.org/gitweb?p=linuxc ... 0c;hb=HEAD
Алексс писал(а):без сортировки нет гарантии что a[i+1] > a.
а оно надо? Во многих компанентах прямо пишут:
notes "If \\fBmax\\fR <= \\fBmin\\fR then the behavior is undefined.";
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
Кстати, можно попробовать все это на простом hal написать:
есть:
wcomp - для сравнения. http://linuxcnc.org/docs/html/man/man9/wcomp.9.html
blend - для интерполяции. http://linuxcnc.org/docs/html/man/man9/blend.9.html
weighted_sum - для подсчета результата. http://linuxcnc.org/docs/html/man/man9/ ... sum.9.html
правда зараза weighted_sum работает только с signed...
есть:
wcomp - для сравнения. http://linuxcnc.org/docs/html/man/man9/wcomp.9.html
blend - для интерполяции. http://linuxcnc.org/docs/html/man/man9/blend.9.html
weighted_sum - для подсчета результата. http://linuxcnc.org/docs/html/man/man9/ ... sum.9.html
правда зараза weighted_sum работает только с signed...
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
все эти примеры хавают параметр в виде числа. а мне массив надо предать. два массива.Nick писал(а):Полно
примитивная защита от дурака это хороший тонNick писал(а):а оно надо?
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
Сделай 20 параметров.
a.1,a.2,...,a.5
В weighted_sum есть что-то подобное http://git.linuxcnc.org/gitweb?p=linuxc ... =HEAD#l246
a.1,a.2,...,a.5
В weighted_sum есть что-то подобное http://git.linuxcnc.org/gitweb?p=linuxc ... =HEAD#l246
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
получил посылочку
пластик шикарный, очень плотный. по ощущению как алюминий.
даже как-то боязно такую вещь сверлить
даже как-то боязно такую вещь сверлить
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
-
nik1
- Мастер
- Сообщения: 8408
- Зарегистрирован: 02 окт 2012, 07:37
- Репутация: 3629
- Откуда: Красногорск
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
Не боись , сверли
Как у вас быстро посылки едут, даже завидно
Как у вас быстро посылки едут, даже завидно
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: Мой китаес Bernardo KF25 Top (клон BF20)
да я сам не ожидал. обещали две недели, и вот нате. приперли 
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Мой CNC китаес Bernardo KF25 Top (клон BF20)
А что будет внутри этой коробочки?
Штурвал будешь ставить?
Штурвал будешь ставить?
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: Мой CNC китаес Bernardo KF25 Top (клон BF20)
будет что-то типа этого
пару крутилок добавлю возможно...
вроде как уже все есть, надо собраться духом и сделать.
пару крутилок добавлю возможно...
вроде как уже все есть, надо собраться духом и сделать.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Мой CNC китаес Bernardo KF25 Top (клон BF20)
А, generic hid! На блюпупе будешь делать?
Давай быстрее дух собирай, интересно же!
Давай быстрее дух собирай, интересно же!
-
nik1
- Мастер
- Сообщения: 8408
- Зарегистрирован: 02 окт 2012, 07:37
- Репутация: 3629
- Откуда: Красногорск
- Контактная информация:
Re: Мой CNC китаес Bernardo KF25 Top (клон BF20)
Хорошая штука, тоже такую хочу 
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: Мой CNC китаес Bernardo KF25 Top (клон BF20)
скоро сказка сказываетсяNick писал(а):Давай быстрее дух собирай
лубой каприз за ваши кровныеnik1 писал(а):тоже такую хочу
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: Мой CNC китаес Bernardo KF25 Top (клон BF20)
вот как всегда, поведешься с вами, в результате получается такое:

Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
