Металл2024 Реклама
Метобр2024 Реклама

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

Talester
Идет загрузка
Загрузка
31.03.2020
3958
18
Личные дневники

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

14

    Если у принтера искаженная геометрия в виде не перпендикулярности осей и/или масштаба по осям и по какой-то причине нет возможности (или желания) это исправить путем вмешательства в конструкцию и/или прошивку, то можно попытаться исправить это чисто программным путем.

    Пока #сидимдома появилось время написать заметку которую давно хотел написать, да все не досуг было. Попал ко мне на диагностику и ТО потрепанный самодельный фанеробот:  заменить сопло, заменить ремни и т.д. Тестовая печать после ТО показала, что все оси не перпендикулярны между собой. Отклонения небольшие, в пределах 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

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

14
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама