Программирование на JavaScript для токарного станка

Эту статью следовало бы назвать «генерирование комбинаций шестерен гитары китайского токарного станка для подбора шага подачи с помощью скрипта на JavaScript», но это звучит не так интригующе.


Самый дешевый токарный станок с Aliexpress MX-180V удивительным образом веселит меня с самого своего появления в моей домашней мастерской уже больше полугода. Несмотря на то, что китайцы забыли прикрутить его к ящику, вследствие чего была помята лицевая панель.


Несмотря на неспособность этого устройства нарезать левую резьбу, вопреки клятвам продавца, что может. Несмотря на то, что входившая в комплектацию отвертка, разлетелась после первого к ней прикосновения.



Несмотря, наконец, на низкое качество изготовления данного прибора, я им пользуюсь, изготавливаю нужные мне детальки и, в целом, накапливаю скилл. Для меня прелесть домашних станков состоит в том, что не нужно рыться в мусоре, в поисках чего-то похожего на нечто необходимое, а просто самому это делать. Это самый прямой путь от идеи к воплощению.
Так, постепенно, очередь дошла и до нарезания резьб. Потренироваться я решил на гвозде диаметром 6 мм, значит, чтобы ничего не обтачивать, это и будет диаметром болта с шагом резьбы 1 мм, для которого у меня была гайка. По таблице, которая находится на корпусе станка, нашел для выбранного шага необходимую комбинацию шестерен.


На валу шестерня с 80 зубами, затем 52, а между этой шестернёй и шпинделем должна стоять шестеренка с 50 зубами. Но среди 10 шестерен в моём наборе с 50 зубами не было.


Тут я начал в очередной раз расстраиваться, ну как же так, братья китайцы! Окончательно меня добил тот факт, что в моём наборе не было еще и второй шестерни на 80 зубов и 66, и 33-х-зубых шестерен. Немного поразмыслив, я понял, что для подачи в 1 мм на оборот важно лишь соотношение зубов на шпинделе и на валу, а промежуточные шестерни могут быть любыми, главное, чтобы они помещались туда. В итоге, первую в своей жизни резьбу М6x1 с помощью резца, а не плашки, я нарезал!


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

Устройство редуктора не сложно и схематично четыре способа установки шестеренок (безотносительно их диаметров) можно изобразить так:


Для определенности будем называть их схемами зацепления. Мне было необходимо выяснить, какие комбинации шестерен допустимы с точки зрения возможности установки их в направляющую рейку, которая может поворачиваться вокруг оси вала и на которой фиксируются две оси промежуточных шестерен.


Верхняя ось не должна касаться шкива шпинделя, а потому первая ведомая шестерня не должна иметь менее 52 зубов. Кроме того, направляющая рейка не должна быть повернута слишком близко у валу шпинделя, во избежание задевания магнитиков тахометра.


Физическая попытка брутфорса этой задачи показала, что допустимых комбинаций достаточно много. На листочке уже стало не хватать места для ещё не проверенных наборов, я стал путаться. Был велик шанс пропустить комбинацию, либо наоборот, записать уже проверенную. Желание заниматься слепым перебором вариантов, сидя в неудобной позе перед станком, улетучилось очень быстро. Сколько и какие вообще комбинации и подачи возможны на этом станке? Требовалось призвать на помощь теорию, а труды по перебору вариантов возложить на компьютер, чтобы зря не стоял.


Надо будет найти или написать генератор размещений без повторений, так как каждая шестерня у меня только в одном экземпляре. Способов выбрать из 10 вариантов 3, 4 и 5 шестерен достаточно много, но какие-то из них, очевидно, следует отбросить из-за геометрических соображений. Понадобится фильтр, пропускающий только подходящие наборы шестерен. После фильтрации наверняка останется много комбинаций, которые будут давать одинаковый шаг подачи, не отличаясь при этом схемами зацепления и наборами шестерен, т.е. будут эквивалентные перестановки. От них тоже следует избавиться.

Не раздумывая, программировать решил на JS, хотя мог и на C++, но в своей практике я ещё не сталкивался с задачей, которую нельзя было бы решить в браузерном JS, когда дело не доходит до сброса данных на диск. В этом способе меня привлекает минимализм и достаточность инфраструктуры, блокнот и браузер, всё остальное лишне. Язык дает алгоритмизацию, браузер – графический интерфейс, интерпретатор и отладчик. Любую библиотеку можно либо быстро написать самому, либо найти и скачать. Когда не занимаешься промышленным или коммерческим программированием, то достаточно, просто, универсального калькулятора.

Генератор размещений я нашел и адаптировал быстро. Его назначение в программе переставлять индексы массива, в котором будут храниться экземпляры шестерен. Здесь в функции search генерируются размещения, а прошедшие фильтр запихиваются в массив result функцией test. Кроме того, в последней функции вычисляется подача. Для определенности обозначим все шестерни так, как на рисунке.


Выпишем формулы для расчета подачи, как функции шага вала подачи и числа зубов шестерен для каждой из схем зацепления:


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

Сторона L которого измеряется непосредственно, а остальные вычисляются из радиусов шестерен. Радиус шестерен меньше их наружного радиуса на величину перехлеста при зацеплении. Поскольку шестерни изготовлены не идеально, величину перехлеста следует установить эмпирически. Перехлест должен быть таким, чтобы обеспечивал зацепление, но предотвращал заклинивание шестерен. В моём случае он оказался равен 1 мм. На сторону S накладывается следующее ограничение, ось верхней промежуточной шестерни не должна касаться шкива шпинделя. Она измеряется непосредственно, когда направляющая с осью верхнем положении повернута максимально близко к шпинделю, ось при этом должна почти касаться шкива. Расстояние V не может быть больше дистанции между осью вала и верхней промежуточной осью, отодвинутой до упора вверх по пазу. Также следует наложить ограничение на угол между L и V. Повернув рейку без шестерен и осей максимально близко к шпинделю, измерить или вычислить расстояние S между осью шпинделя и верхней точкой направляющей и рассчитать угол по формуле


Здесь V это расстояние от оси вала до верхней точки направляющей, а не до верхней точки паза (это может быть произвольная точка рельсы, главное, чтобы расстояния V и S измерялись до неё). По этой же формуле будет вычисляться угол при тестировании, но расстояния S и V будут зависеть от радиусов шестерен.


Кроме этого, шестерня B не может быть больше A, а C не может быть больше, чем D. D не должна касаться вала, а C не должна цепляться за A, при зацеплении B и D.

После того, как список удачных комбинаций построен следует избавить его от избыточности с помощью функции eliminate. Это осуществляется простым поиском уникальных в каком-либо отношении решений. Можно использовать уникальность шага, или уникальность набора шестерен и тому подобное.

В моем случае получается 751 комбинация, которые отличаются подачей, числом шестерен и их набором. Уникальных подач всего 222. Конечно, многие из них не являются общеупотребительными или вообще не применяются, зато присутствуют дюймовые.


Работая над этим текстом меня не покидала мысль, что способ решения этой задачи находится на уровне 5 класса, о котором даже стыдно рассказывать. Просто в данном случае результат (таблица подач) гораздо важнее способа её получения. Однако, станки, гитары, схемы редукторов, шестерни у каждого могут быть разными и не плохо было бы иметь в виду хотя бы один из подходов к построению такой таблицы.

В заключение привожу полный текст скрипта, который снабжен достаточным количеством комментариев, учитывая вышеизложенное.

Скрытый текст
<!DOCTYPE html>
<html>
<body>
<div>
<textarea id="out"></textarea>
</div>
<div><button onclick="calc()">Calc</button></div>
<script>
var out = document.getElementById("out");
out.style.width  = '600px';
out.style.height = '500px';

// Класс шестеренок
function gear(n,r){
  var overlap = 1.0;//полуперекрытие зубьев при зацеплении
  this.n      = n;//число зубьев
  this.r      = r - overlap;//радиус
  this.R      = r;
}
//Создаем шестерни
var gears    = [
new gear(40,20.50),//на шпинделе
new gear(20,10.90),
new gear(24,12.85),
new gear(30,15.95),
new gear(35,18.50),
new gear(40,21.00),
new gear(52,26.90),
new gear(60,30.85),
new gear(72,36.90),
new gear(80,40.95),
new gear(84,43.00)
];

var sh_sp      = 154.0,//ось вала - ось шпинделя (база)
    sh_rail    = 134.5,//ось вала - верхняя точка рейки
    sp_rail    = 24.0;//ось шпинделя - верхняя точка рейки при касании

//минимальный угол между базой и рейкой
var alfa_min   = Math.acos((sh_rail*sh_rail+sh_sp*sh_sp-sp_rail*sp_rail)/
                                     (2*sh_rail*sh_sp));

var shaft_step = 2.0,//mm
    sp_oa_min  = 45.0,//минимальное расстояние между осью шпинделя 
                      //и верхней промежуточной осью
    sh_oa_max  = 116.0;//максимальное расстояние между осью вала 
                       //и верхней промежуточной осью

//Генератор размещений без повторений из множества n чисел по m штук
function nextVar(a, n, m){
  var j, s;
  do{//ищем следующее размещение
    j = n - 2;
    while (j != -1 && a[j] >= a[j + 1]) j--;
    if (j == -1)
      return false; //размещений больше нет
    var k = n - 1;
    while (a[j] >= a[k]) k--;
    s = a[j]; a[j] = a[k]; a[k] = s;//swap(a, j, k);
    var l = j + 1, r = n - 1;//сортируем оставшуюся часть последовательности
    while (l < r){
      s = a[l]; a[l] = a[r]; a[r] = s;//swap(a, l++, r--);
      l++; r--;
    }  
  } while (j > m - 1);
  return true;
}
//
//    Sp
//    A B
//    C D
//    ShSh
//
function test(a,v,result){
  var  Sh,  D,  C,  B,  A,  Sp, step, d = 1000;
  switch(v){
    case 0:// III
      Sh = gears[a[0]];//на валу
      C  = gears[a[1]];
      D  = C;
      A  = gears[a[2]];
      B  = A;
      Sp = gears[0];//шпиндель
      //Вычисляем шаг для данного набора и округляем его
      step = Math.ceil(d*shaft_step*Sp.n/(Sh.n))/d;
    break;
    case 1:// IV
      Sh = gears[a[0]];//на валу
      D  = gears[a[1]];
      C  = D;
      B  = gears[a[2]];
      A  = gears[a[3]];
      Sp = gears[0];//шпиндель
      //Вычисляем шаг для данного набора и округляем его
      step = Math.ceil(d*shaft_step*Sp.n*B.n/(A.n*Sh.n))/d;
    break;
    case 2:// IV
      Sh = gears[a[0]];//на валу
      D  = gears[a[1]];
      C  = gears[a[2]];
      A  = gears[a[3]];
      B  = A;
      Sp = gears[0];//шпиндель
      //Вычисляем шаг для данного набора и округляем его
      step = Math.ceil(d*shaft_step*Sp.n*D.n/(C.n*Sh.n))/d;
    break;
    case 3:// V
      Sh = gears[a[0]];//на валу
      C  = gears[a[1]];
      D  = gears[a[2]];
      B  = gears[a[3]];
      A  = gears[a[4]];
      Sp = gears[0];//шпиндель
      //Вычисляем шаг для данного набора и округляем его
      step = Math.ceil(d*shaft_step*Sp.n*B.n*C.n/(A.n*D.n*Sh.n))/d;
    break;
    default: return false;
  }
  //
  var S = Sp.r + A.r;
  var V = Sh.r + D.r + C.r + B.r;
  var L = sh_sp;
  //направляющая гитары не должна поворачиваться слишком близко к шпинделю
  if(Math.acos((V*V+L*L-S*S)/(2*V*L)) < alfa_min) return false;
  //ось AB не должна касаться шкива
  if(S < sp_oa_min) return false;
  //ограниченная длина направляющей гитары для оси AB
  if(V > sh_oa_max) return false;
  //шестерня A должна доставать до шестерни шпинделя
  if(S + V <= L) return false;
  //шестерня B не должна быть больше чем A
  if(B.r > A.r) return false;
  //шестерня C не должна быть больше чем D
  if(C.r > D.r) return false;
  //шестерни C и D не должны задевать ось вала
  if(D.r != C.r)
    if(Sh.r-9.0 < D.R-C.r) return false;
  //шестерня A не должна задевать шестерню C при зацеплении B и D
  if(D.r != C.r)
    if(A.R-B.r >= D.r-C.R) return false;
  //
  switch(v){
    case 0: result.push([step,1,Sh.n,C.n,A.n]);         break;// III
    case 1: result.push([step,2,Sh.n,D.n,B.n,A.n]);     break;// IV
    case 2: result.push([step,3,Sh.n,D.n,C.n,A.n]);     break;// IV
    case 3: result.push([step,4,Sh.n,C.n,D.n,B.n,A.n]); break;// V
  }
  //
  return true;
}
//Поиск удачных комбинаций
function search(result){
  var k = [3,4,4,5];//число шестерен в наборе
  for(var v=0;v<4;v++){
    var G = [1,2,3,4,5,6,7,8,9,10];
    do{
      test(G,v,result);//фильтрация комбинации
    } while (nextVar(G, 10, k[v]));
  }
}
//Устранение избыточности
function eliminate(result){
  //используем входной массив сразу в качестве выходного
  var J = 1, I = result.length;
  for(var i=1;i<I;i++){
    var f1 = true, f2 = true, f3 = false;
    for(var j=0;j<J;j++){
      if(result[j][0] == result[i][0]){//если шаги равны
        f1 = false;
        if(result[j].length == result[i].length){//если количества шестеренок равное
          f2 = false;
          var a1 = result[j].slice().sort();
          var a2 = result[i].slice().sort();
          for(var n=0;n<a1.length;n++)
            if(a1[n] != a2[n]){
              f3 = true;//наборы разные
              break;
            }
        }
      }
    }
    if(f1)//уникальный шаг
    //if(f1 || f2 || (!f2 && f3))//уникальные комбинации
      result[J++] = result[i];
  }
  result.splice(J, I-J);//удалим лишние и упорядочим по подаче
  result.sort(function(a, b){return a[0]-b[0]});
}
//
function calc() {
  var result = [];
  search(result);
  eliminate(result);
  var a = [];
  for(var i=0;i<result.length;i++)
    a.push(result[i].join("\t"));
  out.value = a.join("\n");
}
</script>
</body>
</html>

Share post
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 57

    +12
    Работая над этим текстом меня не покидала мысль, что способ решения этой задачи находится на уровне 5 класса, о котором даже стыдно рассказывать.

    Данная задача входит в состав курсовой работы студентов машиностроительных специальностей ВУЗов, так что не переживайте :)
      –2
      Работая над этим текстом меня не покидала мысль

      Зато грамматика примерно на этом уровне.

      «Подъезжая к сией станцыи и глядя на природу в окно, у меня слетела шляпа. И. Ярмонкин».
      +4

      Шикарная работа. И материал подан шикарно.
      На практике выбираются пары исходя из самых распространённых шагов резьб. А также — для крупных шагов — соблюдается условие максимального момента на шестернях. Тоесть стараемся по-минимуму использовать тонкие шестерни, которые может слизать в случае нештатной ситуации. А вообще, я бы воткнул на подачу серву. И забыл бы о этих шестерёнках как о страшном сне. Потомучто это очень неудобно. Резать мне приходится реально много. И резьбы тоже. Особенно неудобно прогонять резьбу без расцепления с маточной гайкой.

        +3
        Любители резать металл, бывает, делают «электронную гитару», используя шаговый двигатель и что-то типа pyboard. Усилия интеллекта сопоставимы, а удобство использования и универсальность окупает денежные затраты
          0
          а сколько стоило китайское чудо?
            +4
            С доставкой выходит около 40 т.р. Если честно, заставляется задуматься в сторону покупки ТВ-4.
              0

              Слышал не раз мнения что китайские хоббийные станки таки точнее тв 4.

                0

                О точности китайских станков можно говорить только в виде графика распределения. Те, кто потратил деньги и получил полное дерьмо, чаще всего или не говорят об этом, либо врут о качестве. Что не означает, что приличных — не бывает. Бывают, но реже, чем кажется.

                  +1

                  Не думаю что все так однозначно, скорее всего к ТВ-4 придется приложить руки, посмотрите на станок того же Негоды на Ютубе и что у него получается сделать. Возможно если задача точить маленькие "пиптики", то китаец будет предпочтительнее в плане купил и работай.

                    0

                    Как "счастливый" обладатель китайского станка, могу сказать одно. ТВ-4 намного лучше. Вы думаете до китайского станка приложить рук не надо? Он точный первые 20 часов. Потом вылазят ВСЕ косяки завода. Незакалённые направляющие, кривые пазы под смазку, дерьмовая бронза на гайках сцепления. Безобразнейшее исполнение оных. Куча люфтов, куча заусенцев которые царапают направляющие станка. Отсутствие пыльников направляющих. Шестерни из говна без поверхностной закалки. Хреновые подшипники шпинделя и система смазки шпинделя "из масляной ванны". Ну ещё разбалтывающиеся ручки, совместно с самыми дерьмовыми задними бабками (на всех китайских станках без исключения). Патрон который хрен нормально расточишь тоже не забудем. Ибо т. н. Улитка там (спираль) тоже нихрена нормально не закалена и не упрочнена.
                    ТВ-4 тоже требует приложения рук. Порой — очень серьёзных. Реально рекомендую поставить противовес. Но оно окупится. А на китайских станках приходится фактически делать новый станок.

                    0
                    Если коротко, то тема «точности» это моветон.
                    1 — в отрыве от требований к конкретной детали, разговор о точности вообще лишен смысла
                    2 — способность изготовить деталь нужного размера зависит не только от станка
                    3 — для бытовых/хоббийных нужд хватит любой «точности»

                    А проблема настольных китайцев только в низкой производительности при черновой обработке больших деталей. Там где на твшке делаешь поверхность за 2 минуты, на китайце будешь час елозить.
                      0

                      2 — это очень лукавое утверждение, потому что, конечно, очень многое зависит от оператора, но если станок имеет деформированные направляющие, болтающиеся подшипники и так далее, время на изготовление детали нужного размера возрастает очень резко, а после какого-то момента это вообще не имеет практического смысла. Остаётся только совершенно не практический, вроде "хочу во что бы то ни стало сделать сам".

                    +2
                    1И611П можно купить в нормальном состоянии, за чуть большие деньги чем ТВ-4, а возможностей становится больше в разы.
                      0

                      Если считать что чуть больше равняется примерно 100 т.р. Станок популярный, и должно неплохо повезти для того, чтобы он попался дёшево в нормальном состоянии.

                        0
                        Так же, как и для того, чтобы найти не ушатанный ТВ-4. Найти станок в хорошем состоянии и с низкой ценой — куда менее тривиальная задача, чем, скажем, автомобиль.

                        Но, у 611-го, всё же, куда больше преимуществ перед ТВ-4: больше комбинаций подач, больше шагов резьб. Можно недлинные ходовые винты резать, что открывает неплохие возможности по изготовлению всякой кинематики.
                        0
                        1и611п это конечно круто, но его некорректно сравнивать с настольными станками. Не то что на балконе, не в каждом гараже поставишь. 380в опять же нужно. Так то 1к62 можно найти за тысяч за 150.
                        А по поводу сравнения ТВ4 vs MML 1830, емнип, у того же Негоды на канале есть ролик. Суть вот какая:
                        Советские некростанки — очень сильно зависит от состояния конкретного экземпляра.
                        Может потребовать серьезных доработок.За проход снимает больше. Качество обработки — хуже, чем у китайца.
                        Китаец — Работает из коробки, но повышения качества/удобства требует напилинга. Нужна жесткая установка — иначе будет биение при работе отрезными резцами.
                          0
                          Токарники этих габаритов спокойно ставятся на резинометаллические виброопоры, позволяющие выставить станок по уровню. 611-й переделывается под конденсаторный пуск за один-два вечера и спокойно работает на однофазном питании. Да, у него ослабнет электродинамическое торможение, но оно и на трёхфазном питании не особо дерзкое.

                          Зато 611-й при нормальных подшипниках на шпинделе и правильно подобранном инструменте может дать хорошую чистоту обработки «из-под резца».
                        0
                        TB-4 помещается на столе? Для обустройства домашней мастерской в квартире — китайские станочки вне конкуренции.
                          0
                          Я слабо представляю как можно держать токарный, даже такой, в квартире, разве что у вас есть комната, которую совсем не жалко. А в целом спору нет, это отличный вариант за свои деньги, если он позволяет сразу после покупки заниматься работой, а не тюнингом, как это бывает с большинством китайских станков такой ценовой категории.
                            0
                            Вот человек в хруще занимается таким в квартире
                            www.youtube.com/watch?v=zxeW3ipJAT8&list=PL-xV9O5npHosB_-XTqW1vUgYuHRSUP9Uf

                            ИМО токарный без тюнинга — странная вещь. Проще тогда заказать готовое изделие
                              0
                              А уж в спальне держать токарный (как делает автор на видео по ссылке), я бы точно не стал.
                                0

                                Тюнинг тюнингом, но если ты купил токарный, а он не отрезает, то нафиг он нужен? Вы же не покупаете автомобиль у которого двери открываются, а двигатель не заводится.

                                  0
                                  Аналогии всегда уводят разговор непонятно куда

                                  Токарный — сложный агрегат, который требует понимания и настройки, опыта работы и експлуатации
                                  И он вполне может сходу не_отрезать. Например из-за того что нет расходников
                                0
                                Я слабо представляю как можно держать токарный, даже такой

                                Можно даже два :) Друг над другом.
                                Вот так
                                Принтер временно поставлен.
                                А тумба на которой станки стоят, может опускать шасси колеса и в итоге её можно передвигать.
                                  0
                                  Мне привиделось, или за этим токарным предполагается работать лёжа? :)
                                    0
                                    Ну… на маленьком стульчике. А куда деваться :)
                            0
                            Подтверждаю, дешевые токарные мини-станки — чудовищны. Собрать из приличных частей лучше (с электронным, а не механическим управлением) — дешевле и эффективнее.
                              0

                              А станина разве отдельно продается?

                                0

                                Я вам по секрету скажу — станина именно в виде здоровой литой детали для станка не обязательна. Это только один из вариантов конструкции токарного станка.

                                  0
                                    0
                                    Это то что по русски называют полимербетон?
                                      0
                                      Да.
                                  0
                                  Это конечно смелое заявление, а главное — аргументированное :)
                                    0

                                    А мне стесняться нечего. Что касается аргументов — а как вы себе это представляете здесь? Если я, например, приведу собственную статистику, как вы её собираетесь проверять? Никак. Полностью независимых сторонних исследований такой темы нет и быть не может.

                                      0
                                      Например в виде ответа на вопрос — «почему китайские станки — чудовищиные», с списком причин, почему сложилось такое мнение.
                                      Это будет личное мнение, и это будет интересно :)
                                        0

                                        Но это не будет, в строгом смысле, аргументацией, потому что качественная аргументация — это безусловные факты.
                                        Да и не знаю, зачем в сотый раз повторять одно и то же: использования неподходящих материалов, ведущее к преждевременному износу, непредсказуемое качество изготовления (брак не отсеивается), неравномерная жесткость узлов (что-то — дубовое, а что-то — на соплях). Повезло в лотерею с конкретным экземпляром — всё чудесно, нет — проще выбросить, чем чинить.
                                        А что до "для хобби точность не нужна" — ну тогда вообще непонятно о чем речь, потому что если результат не имеет значения, то это не хобби даже, а какой-то онанизм, лишь бы мотор жужжал и стружки летели.

                                          0
                                          Хз. На ютубе можно найти примеры работ, сделанных на абсолютно пластилиновом станке «таиг». С работами всё ок, сложно назвать их онанизмом.
                                            0
                                            Мне кажется, или вы действительно не понимаете, что частные примеры не могут опровергнуть общую тенденцию? Ну так вот частные примеры никак не противоречат тому, что я сказал выше — иногда они бывают приличными.
                                            Если делать что-то, что не предполагает последующую сборку, точность размеров, безусловно, не нужна. Если оно предполагает, то время на изготовление таких деталей на станке, который не обеспечивает повторяемость, растет до неразумного.
                                            0
                                            Разве
                                            использования неподходящих материалов, непредсказуемое качество изготовления, неравномерная жесткость узлов
                                            такие вещи не фиксятся жесткой приемкой заказчика?
                                              0

                                              Это когда заказчик готов осуществлять эту приёмку. Что очень редко когда действительно так. Ну и это не то чтобы "фикс" в любом случае, потому что вы можете рукожопу возвращать его продукцию постоянно, но если он не знает, как сделать нормально, или если у него текучка кадров, так что те, кто учится не делать дерьмо, тут же увольняются, процесс совершенствования не сходится к лучшему качеству.

                                                0
                                                Те «инженерная культура» в КНР на ваш взгляд еще не сложилась?
                                                  0

                                                  Не знаю, как другие, но когда я говорю "культура", я могу иметь в виду и хорошую, и плохую культуру. Так вот в Китае она сложилась, только она плохая. Это не значит, что там нет вообще толковых инженеров, но в производстве "товаров народного потребления" из области мелкого машиностроения, например, их не найти, практически. С электроникой чуть лучше, вероятно.

                                                    0
                                                    Я не эксперт в области экономики производства, но у меня сложилось впечатление, что всё это — потому что в Китае из-за множества причин, основные из которых — избыток дешевой рабочей силы и лёгкость поиска непостоянных заказчиков, готовых ради дешевизны мириться с дрянным качеством — сложилась очень благоприятная ситуация для «вечной» игры с margin-ами. То есть, пока производство может скакать от заказчика к заказчику (которые со всего мира в очередь выстраиваются), оно может себе позволить делать какое угодно дерьмо. Конкуренция, которая и так не всесильна, вырождается в этом случае до соревнования низких цен. Возможно, это ложная параллель, но мне это напомнило то, как в Москве рынок «уличного» питания никак не мог прийти в приличный вид, потому что влияние постоянных покупателей на благосостояние каждой отдельной точки — ровно ноль, ведь их а) мало, б) даже те, которые есть, нетребовательны часто до степени полного игнорирования непрекращающейся диареи.
                                              0

                                              Меня звали в Китай работать раза три, правда — не станки делать, а инструмент, на инженерную должность. С таким подходом, как на тамошнем производстве, я их послал куда подальше, и просил другим передать, как говорится.

                                      0
                                      Респект. Уж не знаю что, но эта история реально подняла настроение. Автору успехов в ловле 100'ок
                                      И тюнинге станка
                                        0
                                        Этот сайт, надеюсь знаете?
                                        Много информации по станкам и металлообработке.
                                          +1
                                          А ещё youtube канал Дядьки Максима. Супер коллекция практической информации по металлобработке. Но на украинском языке (многие там его и учатся понимать :) )
                                          +1
                                          … а я согнул крючок в форме интеграла и достал
                                            +3
                                            Статья порадовала, но из названия сложилось впечатление, что автор будет писать софт, для работы самого станка, а не для расчетов.
                                            Вроде не кликбейт, статья душевная, но ложное впечатление из названия создалось.
                                              0

                                              Прочел статью только из желания возразить, а возражать особо и нечему. Статья про станок, конкретную проблему, и ее решение автором. JavaScript здесь легко может быть заменен на любой другой язык.

                                                0
                                                Триггер сработал и у меня)
                                                  +2
                                                  Да, я тоже обеспокоился из-за заголовка. Ожидал, что из-за особенностей JS у автора выточится треугольный вал и резьба с шагом NaN.
                                                0
                                                В этом способе меня привлекает минимализм и достаточность инфраструктуры, блокнот и браузер, всё остальное лишне. Язык дает алгоритмизацию, браузер – графический интерфейс, интерпретатор и отладчик. Любую библиотеку можно либо быстро написать самому, либо найти и скачать. Когда не занимаешься промышленным или коммерческим программированием, то достаточно, просто, универсального калькулятора.


                                                Комрад, не надо извиняться. Мы такие же как и они!)))
                                                  0
                                                  Я, судя по всему, ищу не тем местом, но у меня находятся только RL-180V и WM-180M.
                                                  Можно ссылку на лично ваш агрегат?
                                                    0
                                                    Вы правы, в описании продавца не указана модель, но на станке надпись есть. Видимо, очередной клон. https: //ru.aliexpress.com/item/32888672225.html
                                                    0
                                                    Для подобного (но малость попроще — всего 4 шестерни и 2 варианта в гитаре) станка я просто рассчитал все возможные комбинации с учетом возможности их сборки. Упорядочил по шагу и держу текстовым файликом на случай нестандартных резьб (например, если нужно сделать дюймовую резьбу с допустимым в сотку-другую приближением).
                                                      0
                                                      Просчитать варианты с 13 шестернями оказалось достаточно проблематично, сначала думал где то баг, но оказалось просто очень долго, неплохо было бы оптимизировать перебор для уменьшение количества операций, в этот цикл выполняется миллиарды раз (13 527 097 612 в моём случае)
                                                          while (l < r){
                                                            s = a[l]; a[l] = a[r]; a[r] = s;//swap(a, l++, r--);
                                                            l++; r--;
                                                      	  counter++;

                                                      Only users with full accounts can post comments. Log in, please.