Мой CNC китаес Bernardo KF25 Top (клон BF20)

Тяжелые фрезерные станки по металлу.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Мой китаес Bernardo KF25 Top (клон BF20)

Сообщение Nick »

А для чего тебе сортировка? Что задумал-то :)?
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: Мой китаес Bernardo KF25 Top (клон BF20)

Сообщение Алексс »

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

Сообщение Nick »

Т.е. у тебя не линейная зависимость измеренных оборотов и реальных?
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 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)

Сообщение Nick »

А зачем тебе сортировка?

делай

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

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)

Сообщение Nick »

Полно :)!
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)

Сообщение Nick »

Кстати, можно попробовать все это на простом 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...
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 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)

Сообщение Nick »

Сделай 20 параметров.
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)

Сообщение Алексс »

получил посылочку
IMG_20130225_091205.jpg (1529 просмотров) <a class='original' href='./download/file.php?id=12248&mode=view' target=_blank>Загрузить оригинал (2.28 МБ)</a>
IMG_20130225_092122.jpg (1529 просмотров) <a class='original' href='./download/file.php?id=12249&mode=view' target=_blank>Загрузить оригинал (2.62 МБ)</a>
пластик шикарный, очень плотный. по ощущению как алюминий.
даже как-то боязно такую вещь сверлить :)
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
nik1
Мастер
Сообщения: 8408
Зарегистрирован: 02 окт 2012, 07:37
Репутация: 3629
Откуда: Красногорск
Контактная информация:

Re: Мой китаес Bernardo KF25 Top (клон BF20)

Сообщение nik1 »

Не боись , сверли ;)
Как у вас быстро посылки едут, даже завидно :hehehe:
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 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)

Сообщение Nick »

А что будет внутри этой коробочки? :)
Штурвал будешь ставить?
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 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)

Сообщение Nick »

А, generic hid! На блюпупе будешь делать?
Давай быстрее дух собирай, интересно же! :)
nik1
Мастер
Сообщения: 8408
Зарегистрирован: 02 окт 2012, 07:37
Репутация: 3629
Откуда: Красногорск
Контактная информация:

Re: Мой CNC китаес Bernardo KF25 Top (клон BF20)

Сообщение nik1 »

Хорошая штука, тоже такую хочу ;)
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 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)

Сообщение Алексс »

вот как всегда, поведешься с вами, в результате получается такое:
IMG_20130225_204952.jpg (1481 просмотр) <a class='original' href='./download/file.php?id=12301&mode=view' target=_blank>Загрузить оригинал (329.31 КБ)</a>
:freak: :lol: :freak: :hehehe: :wtf:
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Ответить

Вернуться в «Фрезерные станки по металлам»