Кровать по фен-шую

Что делает разработчик, когда у него нет оплачиваемой работы, а просто так развлекаться — программировать микроконтроллеры и тыкать в плату паяльником — уже остопи… сильно надоело?

Правильно — он осваивает другие специальности, нанося непоправимый экономический ущерб в тех областях. Короче, я занялся разработкой и созданием деревянных кроватей из цельного дерева. Скажу сразу — по материалам получается раза в два дешевле, чем аналогичные магазинские. А что касается качества, то во всяком случае оно не ниже, так как задача «съэконмить на чём-то» не стоит. Наоборот, задача звучит примерно так «сделать на века, чтобы пользоваться могли не только дети, но и внуки». То есть качественно, надёжно и ремонтопригодно.

Прикол в том, что для расчёта кровати я применяю язык программирования Python. Это не шутка, это на самом деле так. На самом деле там очень простые расчёты.

Я использовал компьютерные расчёты для определения точек крепления планок (рессор) на царги.

Царга — это продольный силовой элемент в кровати. Обычно их две. Между ними устанавливаются ортопедические планки, на которые кладётся матрас.

Вот вид сверху. Царги — это бледно-зелёные брусья. Ортопедические планки показаны жёлтым цветом. Оранжевые прямоугольники — это ноги.

У моих кроватей длина царг равна 2100 мм. Ширина в расчётах не играет никакой роли, поэтому её не учитываем.

Задача состоит в том, чтобы распределить планки равномерно по всей длине царг. Конечно, настоящие специалисты, кто профессионально занимается сборкой кроватей, так не делают. Они крепят планки сразу, «на глаз», то есть — как получиться. Но я же не специалист по мебели. Я — программист. Поэтому, плюс-минус один-два миллиметра для меня это профессиональная душевная травма. Поэтому, прежде чем крепить планки, я хотел бы сначала вычислить их точки крепления.

Итак, согласно рисунку видно, что из общей длины царги нужно  вычесть толщину ножек (они по 40 мм) и небольшой промежуток между ножкой и планкой. Я задался значением 20 мм. Думаю, будет нормально.

Ширина планки примерно 95 мм. «Примерно» — это потому, что есть планки и по 94 и по 96 мм. Это не существенно.

Количество планок — 13 штук. Таким образом, количество промежутков между планками — 12.

Вот, Питоновская программа для расчёта точек крепления

#!/usr/bin/env python3
# coding:utf-8

''' bed.py '''

if __name__ == "__main__":
  L = 2100  # Длина царги
  a = 40    # Ширина ножки
  b = 20    # Дополнительный промежуток между ножкой и планкой
  c = 95    # Ширина планки
  N = 13    # Количество планок

  # Длина царги распределяется следующим образом:
  #
  # L = 2 * a + 2 * b + N * c + (N - 1) * d
  #
  # , где d -- расстояние между планками.
  # Отсюда найдём d:
  d = (L - 2 * a - 2 * b - N * c) / (N - 1)

  # Находим точки крепления планок
  print(u"Планка [мм]")
  print(u"------ ----")

  for i in range(0, N):
    x = a + b + i * (c + d)
    print(" {0:2} {1:6.1f}".format(i + 1, x))

  print(u"* Расстояние между планками = {0:.1f} мм".format(d))

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

Не могу не отметить тот факт, что скрытая прелесть такой методики размещения планок состоит в том, что даже если планки будут иметь несколько другую ширину (ну, допустим, вместо 95 мм будут 90 или 100), то всё равно они распределяться равномерно по длине царги.

Мне остаётся привести скриншот результата работы программы

Берём рулетку, и делаем 13 засечек на царге.

2 responses to “Кровать по фен-шую

  1. Интересный подход к размещению планок. Сейчас подумал, что я кровать сперва представил бы в 3D. А планки разместил бы с помощью программного кода встроенного в 3D редактор. Выполнил бы команду по равномерному размещению выделенных объектов.

    • А почему бы нет? Ну можно и так, как Вы предлагаете. Ведь не существует абсолютного единственного правильного способа.

      Если какой-то иной способ принципиально позволяет достичь цели, то почему его следует считать плохим? Поэтому, годится всё, что позволяет получить результат.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s