Есть ли смысл печатать заполнение и дно, если их никто не видит? Попробовал несколько способов опустошения моделей в ultimaker cura, рассказываю. Впрочем, некоторые идеи достаточно универсальны и применимы во многих слайсерах, так что статья может быть полезна не только куроводам...
Прошлый материал 3dtoday.ru/blogs... о минимизации заполнения в Куре оставил некоторую недосказанность при отсутствии живых примеров печати. Пора верифицировать некоторые специфические приёмы. Как всегда, для тех, кто не хочет смотреть нудный ролик, есть еще более нудная статья)
Сверим часы, включена видимость всех доступных параметров, в настройках снята галочка «автоматически опускать модели на стол» (Printer>General: Automatically drop models to build plate). Отметим небольшой полезный баг: если выбрать вид камеры «перспективный», то можно пролететь взглядом внутрь модели. Исключим конфликты наложения геометрии: в списке «ремонт объектов» (Mesh Fixes) отметим «удалить пересечения объектов» (Remove mesh intersection) без «чередования объектов» (Alternate mesh removal) и поставим ноль в «перекрытии касающихся объектов» (Merged Meshes Overlap), а также обнулим «количество внешних дополнительных оболочек» (Extra skin wall count) дна и крышки
Прежде чем жонглировать костылями, глянем параметрические средства. Горизонтальные плоскости над разреженным заполнением можно печатать в виде мостов. В списке «экспериментальное» активируем настройки мостика (Enable bridge settings) и в открывшейся графе «максимальная плотность разреженного заполнения мостика» (Bridge sparse infill max density) ставим например 50%. Пока плотность шаблона во вкладке заполнение не превышает этот порог (не совсем, поэтому поставили с запасом), нависающие над заполнением плоскости напечатаются с переопределенными настройками, что даст хорошую базовую поверхность. Однако Кура слайсер простой: нет заполнения - нет мостов. Поэтому для печати полых моделей придется поставить плотность не 0%, а чуть больше нуля 0.1% и сместить шаблон заполнения в сторону за пределы стола
Если стенки имеют в вертикальном сечении меньшую толщину, чем крышка или дно, слайсер нарастит недостающий объем внутрь модели, используя настройки оболочки. Желательно слегка увеличить «перекрытие оболочек» (Skin overlap) для лучшего сцепления со стенками и назначить шаблон «зиг-заг», чтобы не прерывать экструзию при укладке. Внутренние нависания пропечатываются хорошо даже на малых углах, а вот наращивание полностью горизонтальных плоскостей ожидаемо затруднено, я бы даже сказал - безвыигрышная лотерея, и если в проекте с редким заполнением встречаются плоскости шире сантиметра, стоит принять некоторые дополнительные меры
Контролировать печать оболочек также помогает группа параметров «дистанция расширения оболочки» (Skin expand distance). По умолчанию оболочка уже увеличена на толщину стенки, чтобы обеспечить опору периметрам, однако при разреженном заполнении неплохо еще чуть-чуть протянуть её вглубь модели, это даст некоторый запас на провисание и обеспечит большую жесткость.
Параметр «ширина удаляемой оболочки» (Skin removal width) уберет все области у́же указанного значения, и по умолчанию он уравновешен «дистанцией расширения». Условно, если ко всем оболочкам прибавили 0.6 мм, то оболочек у́же 0.6 не осталось, и удалять нечего (проблема с ним, что иногда удаляются и нужные области, попавшие под критерий, в частности и узкие плоскости)
Варьируя эти параметры, можно регулировать наличие и размеры оболочек. Запретим расширение для оболочек уже 0.45, и удалим их, а оставшиеся области расширим, причем на крыше можно добавить и побольше. Теперь нависающие области получили большую поддержку, при этом лишние мелкие наросты на стенках ушли.
В результате, в местах наращивания оболочки встречаются наплывы, толщина стенки 0.3 дает о себе знать, однако арочные своды сошлись, геометрия сохранена, в руках не рассыпается, да и вид не особо ужасный, с добавлением второй стенки могло быть вообще отлично. В общем для каких-нибудь габаритных тестов или оклейки вполне целесообразно
Печать только стенок и каймы крайне рискованна, но полноценное дно здесь было бы расточительством. Я нашел два способа решения этой проблемы. Первый: настройка «горизонтальное расширение первого слоя» (Initial layer horizontal expansion) при отрицательном значении сжимает контур первого слоя на заданную величину. При этом кайма продолжает печататься от края внешнего периметра, оказываясь под самой моделью. Удаляем оболочку непосредственно касающуюся стола, обнуляя количество «начальных слоёв дна» (Initial bottom layers). А Объем над каймой кура воспримет как обычное «дно» и нарежет его с соответствующими настройками. Плюсы, думаю, очевидны, Из минусов, такой бортик не всегда применим (контур может съесть узкую геометрию), а кайма не всегда повторяет геометрию края модели
Напомню про механику модификатора «заполнение объекта» (Infill mesh only), а подробнее - в прошлых статьях. Деталь с примененным модификатором при пересечении с обычной моделью заменяет собою область заполнения, а значит, задав обособленные настройки для вспомогательной детали, можно управлять свойствами выделенной части заполнения
Кстати, об ограничениях: если в проекте включена опция «сделать нависания печатаемыми», первый способ удаления дна не сработает. Но есть второй! Отключаем «начальные слои дна» (Initial bottom layers) основной детали (теперь область заполнения начинается от стола). Применяем модификатор "заполнение объекта" (Infill mesh only) к особой вспомогательной детали (готовые файлы я оставил: > thingiverse, > vk ), Добавляем модификатору начальных слоев дна и стенок (и еще чего-нибудь, если хочется). Масштабируем на требуемую толщину и размеры портала. И да, линии заполнения были не нужны, печатать будем модель- оболочку. (Дополнение: если заполнение всё-таки 0%, то в модификаторе нужно добавить не начальных, а просто слоёв дна)
В общем, ничего сверхъестественного. Толщина стенок 1.2 мм, для печати без проблем с устойчивостью достаточно. Вполне подходит, например, для заливки алебастра
Но такая печать скорее случай исключительный, чаще требуется оптимизировать стандартное заполнение, и желательно без потери потребительских свойств. Можно рассмотреть два направления в использовании модификаторов.
Первый, когда в модель добавляется усиливающее заполнение. Для опоры линий добавлены слои крышки и дна. Если модель полностью перекрывается модификатором, мосты определяются только на дне. Если перекрывается частично - и на дне, и на крышке. Плотность заполнения, в котором появятся мосты, берется из основного пула и не зависит от процента в модификаторе. Вроде как правило про 0.1% заполнения тут излишне, правда эта логика определена эмпирически и работает со странностями. Проще задать модификатору стопроцентное «Пороговое значение поддержки для оболочки мостика» (Bridge skin support treshold), строго обратив все оболочки в мосты
А второй случай, когда из полноценного заполнения шаблон вырезает лишний материал. Дотянуть мосты до берегов можно значительно увеличив «перекрытие оболочек» (Skin overlap) в модификаторе
Мосты стягивают стенки на которые опираются - определим масштаб проблемы. Пробуем такие конфигурации:
1. Тонкая стенка (0.6) стянута до просвечивания оболочки, это недопутимый дефект
2. Удваиваем периметры (1.2), на порядок уменьшаем плотность мостов. Хорошо видна характерная полоса, но уже не так ужасно, дефект незначительный
3. Дальнейшему утолщению стенок лучше предпочесть усиление заполнением. Тем более, это может работать на функциональность. Дефект как таковой отсутствует (ну или по крайней мере не выделяется на фоне общей полосатости)
4. Попробуем более устойчивую геометрию. Даже тонкий свод (0.6) неплохо сопротивляется искажению. Полоска еще есть, но в глаза не бросается
Выходит для использования мостов нужны хотя бы немного устойчивые стенки, но способ работает. Тем более, бывают случаи, когда переход можно спрятать геометрией модели.
Можно обойтись и предыдущей конфигурацией, но в общем случае наличие дна и крышки может приводить к генерации посторонних областей оболочки. Корректнее разделить заполнение и плоскость его поддержки. Настраиваем пластинку толщиной в слой для мостов, поверх надвигаем объем заполнения. Такой сэндвич из модификаторов можно сгруппировать в единый объект (список слева внизу) и перемещать в группе.
Я наверное зря не накрыл принтер, еще и в довесок было добавлено немного обдува выше мостов, сетку-таки слегка покоробило, но всё равно недурно. Но при увеличении габаритов, устойчивости стенок лучше тоже добавлять по-хитрому. Например ребрами жесткости, либо заполнением, впрочем это уже совсем другая история
Поднимем ставки! Добавляем бруски на пологую морду и пасть. Если мосты в заполнении не определяются автоматически, их направление придется задавать вручную. Расширяем оболочку на модификаторах, чтобы гарантировать зацепление мостов
По правде говоря, с экономией слегка переборщили. На просвет можно найти пару тонких мест, и на нос я не обратил внимание. Но всё равно очень неплохо! Мораль - не стоит ударяться в крайности и слишком экономить, лучше дополнительно расширить оболочки на несколько диаметров сопла, мы и так в большом плюсе.
Если вырезать заполнение шаблоном с достаточным уклоном, то линии вполне напечатаются и без дополнительных мер. Это поможет обеспечить прочность и высокую плотность заполнения вблизи поверхности.
В куре сложный характер замещения объектов. Заполнение модификатора, загруженного в рабочее поле раньше, замещается заполнением последующих, но т.к. один модификатор действует на заполнение другого, стенки и оболочка замещаются в обратной последовательности (просто к сведению, вникать не обязательно). Полезны два частных вывода: вырезающие заполнение шаблоны можно комбинировать как угодно; если нужно организовать плоскость через вырезающий шаблон - то пластинку нужно загрузить перед ним.
Две стенки - четыре слоя, верхние оболочки расширены буквально на линию - весьма скромно, но заполнение выкрутим значительное. Верхние помещения слегка нависают внутрь модели, поддержим их мостами. А после вырежем внутренний объем сетки подходящей болванкой (пластинка была загружена перед ней). Как можно видеть, под уклон заполнение ложится довольно причудливо, но достаточно ровно, стенки не хрустят и не проминаются, беспощадная экономия удалась)
Но подойдем к проблеме в более общем виде. Открываем модель в мешмиксере https://meshmixer.com/, впрочем и многие другие программы умеют что-то подобное. [Edit>transform] - задаем нужный масштаб - [accept]. Делаем равноудаленную полость [Edit>hollow] - задаем смещение [ofset distance>update hollow] - смотрим что получилось и сохраняем [accept]. Разделяем поверхности [Edit>separate shells]. Оставляем видимость по отдельности и экспортируем. Для улучшения печати заполнения можно посрезать нависающие внутрь участки. Из набора [meshmixer] перетаскиваем нужные примитивы, размещаем, и делаем следующее: зажимаем клавишу control, сначала в браузере объектов щелкаем на основную модель, затем на болванку, в появившемся окне жмем [boolean difference>accept]. Вообще программа весьма полезная, разве что работает не совсем интуитивно, несмотря на внешнюю простоту
Напомню, лучше всего срабатывает шаблон заполнения «сетка» (grid) с соединением линий заполнения (connect infill lines). Вырезаем полученной фигурой внутренний объем, разумеется, нужно поднять её на высоту смещения (тут 5).
Как-то так! На самом деле теперь даже перебор, аборигены бы точно оценили. Статуэтка вышла просто каменная. Так что такой подход вполне уверенно можно применить не только к совушкам и котикам, но и к испытывающим нагрузки прикладным моделям (к слову не обязательно вырезать заполнение полностью, можно просто снизить процент, и добавить стенку на границе раздела, и т.д.)
Сегодня это всё, что я хотел рассказать, надеюсь данная подборка немножко отдалит гибель популяции арктических выхухолей, загибающихся от глобального потепления! Ну или хотя бы размен выйдет на большее число распечатанных моделей)