Симонов Сергей - Цвет сверхдержавы - красный 8 Дотянуться до звёзд. часть 3 главы 21-34 стр 22.

Шрифт
Фон

- Да зачем? А если его здесь повесить? Под куполом? - спросила Ира.

- Под куполом?

Дима оторвался от бумаги и тоже посмотрел вверх. Потом огляделся по сторонам.

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

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

- Да что я, не обойду, что ли? - пожала плечами Ира. - Пусть он хоть месяц висит и печатает, тем более - если печатать мебель. Зато покупать не надо! А твоя ЭВМ с этим справится? Ты же говорил, что она трёхмерку не потянет?

- А вот тут у меня есть одна идея.

Дима порылся в сумке и вытащил справочник по математике, полистал его и нашёл нужную страницу. Ира увидела какие-то многоэтажные формулы.

- Ничего себе... Это что?

- Это формулы для построения многоугольников в полярных координатах, - пояснил Дима. ('Как нарисовать звезду и не только в полярных координатах' https://habr.com/ru/post/519954/)

- Не поняла... А чем это поможет?

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

- То есть, по этой формуле можно нарисовать любую прямоугольную мебель?

- Вроде того. Подставляя в неё нужные значения на каждом проходе. Причём рассчитывать можно только координаты точек поворота, а по прямой между точками головка будет двигаться автоматически - промежуточные точки рассчитывать не надо. Это называется 'векторная графика', - Дима начертил прямоугольник в полярной системе и ткнул ручкой в углы. - По сути, нам нужны координаты углов на плоскости и по высоте. Если где-то нужно сделать проёмы - появятся дополнительные точки, в которых подача материала будет отключаться. Моменты включения и выключения подачи тоже надо задавать. На самом деле, конечно, получится сложнее и поворотов будет много, придётся вводить дополнительные рёбра жёсткости, иначе конструкция будет жидкая, как медуза. Нам придётся делать что-то вроде сотовой конструкции, - он нарисовал внешнюю и внутреннюю стенки, соединив их множеством треугольников. - Но векторная графика сэкономит память и в этом случае.

Первый образец Дима собрал из деталей металлического детского конструктора, дополнив их гнутыми деталями из кусочков жести от консервных банок. В качестве роликов он использовал колёса от конструктора и катушки от бобинного магнитофона. Шаговые двигатели широко применялись в станках с ЧПУ и уже не были дефицитом, их можно было купить в магазине 'Юный техник'. (АИ частично, обыкновенные моторчики постоянного тока в реале продавались свободно, к этому времени уже производятся станки с ЧПУ, поэтому в АИ шаговые двигатели не должны быть дефицитом)

Намного более серьёзной проблемой оказалось управление. Микро-ЭВМ 'Электроника-64' была, разумеется, однозадачной. Печать крупных объектов, вроде мебели, обещала быть продолжительной, и сидеть неделю или две без ЭВМ Диме вовсе не хотелось. Для начала он написал крошечную резидентную программу на ассемблере, которая сидела в памяти

постоянно и считывала координаты с магнитофона, подключённого к ЭВМ, управляя им самостоятельно, а затем посылала команды на двигатели. В программе можно было задать коэффициент масштабирования, чтобы проверить модель, построив её в уменьшенном размере. Ошибиться было очень легко - в отсутствие 3D-редактора модель приходилось прорисовывать послойно на множестве эскизов, вычисляя координаты точек по ним. Из-за этого приходилось ограничиваться только самыми простыми формами.

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

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке