Главные новости Уфы
Уфа
Март
2020

Программа коррекции не перпендикулярности осей

0

Если у принтера искаженная геометрия в виде не перпендикулярности осей и/или масштаба по осям и по какой-то причине нет возможности (или желания) это исправить путем вмешательства в конструкцию и/или прошивку, то можно попытаться исправить это чисто программным путем.    Пока #сидимдома появилось время написать заметку которую давно хотел написать, да все не досуг было. Попал ко мне на диагностику и ТО потрепанный самодельный фанеробот:  заменить сопло, заменить ремни и т.д. Тестовая печать после ТО показала, что все оси не перпендикулярны между собой. Отклонения небольшие, в пределах 1-2 градусов. Однако хозяин отказался от исправления, сказал, что для его задач такие отклонения не играют роли. Ну, что сказать, хозяин-барин. Эта ситуация натолкнула на мысль: для  исправления такого дефекта не обязательно перебирать конструкцию принтера, достаточно измерить  искажения, вносимые в распечатку не перпендикулярностью осей, внести в исходную модель соответствующие предварительные компенсирующие искажения и в результате должна получиться вполне годная, печать с прямыми углами.    Да, я знаю что подобный механизм есть в марлине - skew correction. Возможно, что этот функционал  присутствует и в другом ПО, например, в Нетфабе, а возможно, это уже обсуждалось и решилось здесь на портале. Честно говоря не искал, не смотрел, не интересовался и вот почему: а) просто интересно реализовать свое решение и убедиться в его работоспособности; б) самая главная причина - некоторое время назад начал изучать очередной инструмент программирования Python, а как известно, новому языку лучше учиться на реальной задаче, и эта задача мне показалась очень даже подходящей.    Для усиления эффекта обучения решил сделать программу многопользовательской с возможностью хранения в SQLite у пользователя множества моделей и профилей принтеров. Так же решил, что кроме исправления перпендикулярности осей было бы неплохо так же  исправить искажения длинны по осям (то что в прошивке исправляется изменением шагов/мм). Ввод и вывод моделей из/в STL как в текстовом так и в бинарном формате. Возможно, для Питона есть библиотеки для работы с stl, но мне было интересно самому сделать разбор/сбор stl-файлов.    В T-Flex был создан своеобразный "виртуальный" принтер, в котором можно было реализовывать различные искажения геометрии. На вход этого принтера подается исходная модель, T-Flex с помощью подключенной таблицы Excel рассчитывает предварительные корректирующие искажения модели и выводит на экран скорректированную модель, а так же результат печати исходной модели без корректировки, с учетом искажений в принтере. Математика не сложная, по-моему даже школьная программа, уравнение плоскости, матричные операции, векторы, но это не точно, я в школе давно учился.Исходная модельРезультат печати модели в виртуальном принтере с искаженной геометриейСкорректированная модель, в которую внесены предварительные искажения    После этого математика и некоторые функции из T-Flex была переписаны на Питоне. И вот наступил час истины - натурные испытания. И тут же нарисовалась проблема - в обозримом окружении не было принтера, который выдавал бы более менее приличные искажения. Хотя, если честно, не так уж и много принтеров в моем окружении, не более трех-четырех вместе с моим. Оставалось одно - специально расстроить оси какого-нибудь принтера. Как я и думал, ни один из хозяев на это не пошел, я был убедительно пОслан, хотя все попросили сообщить им о результатах эксперимента. Пришлось использовать в качестве стенда свой старый и надежный как АК Ваньку Дуприкатор i3.    Немного покрутил крепление рамы и направляющие, немного изменил шаги на мм, все в пределах разумного, без фанатизма, близко к реальности. Не думаю, что кто-то использует принтер с отклонением осей больше нескольких градусов. В качестве тестовой модели взял не банальный кубик, а деталь из текущего проекта. Мне она показалось более подходящей чем куб - одинаковая длинна по осям 60мм, все грани под прямым углом, нет лишнего расхода пластика.     Пока процедура выглядит так: загружаю исходную модель в РепетиерХост, позиционирую ее, кручу-верчу, сохраняю в СТЛ, этот СТЛ с моделью загружаю в программу и обрабатываю, выгружаю скорректированную модель в СТЛ и снова загружаю в Репетиер уже для нарезки и печати.    Распечатал две штуки, одна распечатка (ближе, с размытой буквой М) - без корректировки, с текущими искажениями принтера, вторая (с буквой К) - скорректированная модель.Инструмент для измеренийИтак, результаты. Сначала измерения печати модели без коррекции со всеми недостатками в геометрииЗатем результаты измерений печати модели, в которую внесены корректирующие искажения.Эксперимент показал, что метод рабочий и может быть использован. Что дальше?1. собрать десяток отдельных программ на питоне в какую-то одну логическую единицу и прикрутить интерфейс. Идеально было бы в виде веб-сервиса, но тут я пасс, вообще не знаком, а времени изучить точно не будет.2. оптимизировать математику3. оптимизировать загрузку из STL в SQLite. Пока медленно, уже знаю почему и как поправить4. разработать для каждого измерения свою специальную простую тестовую модель. Жизнь показала, что точность корректировки зависит от точности и удобства измерений и лучше, чтобы для каждого вида измерения или двух максимум была своя простая модель.5. добавить функций поворота модели по осям.6. как-то найти на все это время7. Но самое главное, найти в пределах Уфы реально кривой принтер и проверить еще раз в реальных условиях. Почему в Уфе? Все-таки надежнее, когда первые тестовые отпечатки сам измеряешь.Вот пока и все. Всем удачи. И сидим дома, читаем 3DToday




Moscow.media
Частные объявления сегодня





Rss.plus




Спорт в Башкортостане

Новости спорта


Новости тенниса
WTA

Соболенко уступила Свентек в финале турнира WTA-1000 в Мадриде






В ДТП на трассе Оренбург - Орск погибла семья из Башкирии: папа, мама и 8-летняя дочь

Из-за 9 мая временно отменили пригородный поезд от Чуфарово до Инзы

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

Baza: в Москве сотрудники автомойки угнали машину клиента