Ultimaker Cura: настройка профиля для кастомного 3D принтера

Railnolds
Идет загрузка
Загрузка
29.10.2019
3771
30
Техничка

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

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

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

19

После сборки нового принтера стал вопрос: каким слайсером будет удобнее пользоваться для работы с ним. Принтер у меня самодельный, с ToolChanger на 4 сменных инструмента. Старый принтер был с одним экструдером, я использовал Simplify3D для нарезки G-code, поэтому особо не заморачивался с настройками профилей для принтера, просто менял настройки в зависимости от того, какая деталь печаталась и какое качество было нужно. Теперь же настройки печати стали занимать больше времени, если это многоцветная печать. Simplify3D позволяет работать с несколькими экструдерами, но удобство пользования его интерфейсом мне не очень подходит (возможно я просто не разобрался).

Для этого принтера будем делать профиль
Параллельно я также некоторые детали нарезал в Ultimaker Cura. В основном это были простые детали, не требующие поддержек. Делалось это из интереса, потому что часто попадались видео с различными настройками и улучшениями, которые появляются в новых версиях этого слайсера. Поначалу, как и многих, Cura пугает наличием огромного количества настроек, которые зачастую связаны между собой. Но тем не менее, у меня она отлично нарезала детали прямо после установки, на интуитивно настроенных параметрах печати.
При первом запуске Cura предлагает выбрать профиль принтера. Однако по понятным причинам моего принтера в представленном перечне небыло. Тем не менее, можно вручную задать параметры своего принтера и работать с ним без проблем (выбрав из предложенного списка вариант Custum). Однако созданный таким образом принтер имеет только базовые настройки, основанные на дефолтном профиле. Чтобы настроить принтер более тонко, а также иметь доступ к большему количеству его настроек совместно с настройками печати, рекомендуется создать для него профиль. Ниже на примере своего принтера я постараюсь показать, как это делается.
Структура профиля принтера в Ultimaker Cura
Профиль принтера в Ultimaker Cura состоит из нескольких конфигурационных файлов, в которых прописываются основные настройки принтера. Профили принтеров, которые Cura уже имеет в своем дистрибутиве, после установки программы располагаются в папке resources. Если быть конкретнее, то в папках definitions, extruders, materials, meshes, quality и variants. Чтобы настроить профиль для своего принтера, необходимо в каждую из папок добавить файл с настройками для своего принтера. Тогда ваш принтер будет отображаться в списке. В дальнейшем для добавления своего принтера в Cura необходимо будет просто скопировать эти файлы в соответствуюшие папки и затем добавить его, выбрав в списке доступных принтеров.
Папка definitions
В этой папке находятся конфигурационные файлы с именем принтера в формате json, которые описывают основные настройки принтера (габариты рабочей области, наличие подогреваемого стола, количество экструдеров, имя и т.п.). Пример такого файла для моего принтера показан на рисунке ниже.
Кратко пробежим по настройкам, которые в нем представлены.
"manufacturer": "DreamsCube",                                                название производителя принтера
"visible": true,                                                                              видимость принтера в списке включена
"file_formats": "text/x-gcode",                                                    формат файла вывода gcode
"has_materials": true,                                                                 включена возможность выбора материалов для печати
"has_machine_quality": true,                                                     выбор настроек качества печати включен
"quality_definition": "dreamscube",                                           папка расположения настроек качества печати
"has_variants": true,                                                                   выбор различных вариантов принтера включен
"variants_name": "Nozzle Size",                                                название параметра вариантов принтера
"preferred_variant_name": "0.4mm Nozzle",                           вариант принтера по умолчанию
"platform": "dreamscube.stl",                                                    название файла с моделью печатного стола принтера
"machine_extruder_trains":                                                     название и номера экструдеров принтера
 {
  "0": "dreamscube_extruder_1",
  "1": "dreamscube_extruder_2",
  "2": "dreamscube_extruder_3",
  "3": "dreamscube_extruder_4"
 }
"machine_name": { "default_value": "DreamsCube" },             название принтера
"machine_shape": { "default_value": "rectangular" },               форма стола (прямоугольный)
"machine_width": { "default_value": 290 },                                ширина печатной области (ось Х)
"machine_depth": { "default_value": 200 },                               глубина печатной области (ось Y)
"machine_height": { "default_value": 190 },                               высота печатной области (ось Z)
"machine_extruder_count": { "value": 4 },                                 количество экструдеров
"machine_buildplate_type": { "value": "glass" },                        тип покрытия стола (стекло)
"machine_heated_bed": { "default_value": true },                     стол с подогревом
"machine_center_is_zero": { "default_value": false },              ноль в центре стола (отключено)
"machine_gcode_flavor": { "default_value": "RepRap (RepRap)" }, тип генерируемого gcode
"machine_start_gcode":                                                             стартовый gcode принтера
"machine_end_gcode":                                                             завершающий gcode принтера
В принципе, тут все понятно. Единственное на что хочу обратить внимание – необходимо строго соблюдать синтаксис файла типа json, иначе Cura будет выдавать предупреждение об ошибке в файле конфигурации и ваш принтер не появится в списке. Также обратите внимание на формат стартового и завершающего gcode. Это не просто скопированный и вставленный текст из окна слайсера или откуда-то ещё. Он также имеет синтаксис, а именно – разделение на строки. В качестве разделяющего знака используется /n в конце каждой строки. Пример стартового кода:
"machine_start_gcode":         {  "default_value": "G28 X Y ; home\n G28 Z\n G21 ; unit in mm\n G90 ; absolute positioning\n M82 ; use absolute distances\n M107 ; fan off\n G1 Z10 F1500 ; go Z start position"   },

В окне настроек принтера в Cura этот gcode будет выглядеть так:
Параметры принтера в интерфейсе Cura
Папка extruders
В этой папке находятся конфигурационные файлы для экструдеров, также в формате json. Пример такого файла для одного из экструдеров моего принтера показан ниже.
Основные настройки следующие:
"id": "dreamscube_extruder_1",                                  идентификатор экструдера (совпадает с именем файла)
"name": "Extruder 1",                                                   отображаемое имя экструдера
"machine": "dreamscube",                                          идентификатор принтера
"position": "0"                                                              положение экструдера в меню слайсера
"extruder_nr": { "default_value": 0 },                          номер экструдера, передаваемый в gcode
"machine_nozzle_size": { "default_value": 0.2 },      диаметр сопла
"material_diameter": { "default_value": 1.73 }            диаметр филамента
Также в этот файл можно добавить настройки офсетов по осям XYZ, если в прошивке они не указаны. У меня эти значения в прошивке, и я рекомендую их вносить именно туда, а не в слайсер. Для этого надо добавить соответствующие строки:
"machine_nozzle_offset_x": { "default_value": 0 }, "machine_nozzle_offset_y": { "default_value": 0 }, "machine_nozzle_head_distance": { "default_value": 2.7 },
Фактически, на этом настройки профиля можно считать законченными. Тоесть, минимально должны быть созданы 2 файла – один в папке definitions и один в папке extruders. После копирования этих файлов в соответствующие папки, принтер будет доступен для выбора в списке Cura. 
Также можно продолжить настройки, добавив некоторые полезные функции для принтера.
Папка materials
В этой папке находятся файлы параметров материалов в формате xml, которые могут использоваться при печати и доступны в списке материалов. В этих файлах хранятся различные преднастройки для каждого материала – название, производитель, цвет, настройки температур, параметров ретракта и т.п. По умолчанию в Cura уже заложены различные материалы некоторых производителей. Я использую материалы ESun, и к моему удивлению их нет в перечне материалов Cura. Поэтому пришлось добавлять самому. Пример такого файла на картинке ниже.
Рассмотрим основные настройки:
brand>ESun                                                  производитель
material>ABS                                                типа материала
color>Black                                                   название цвета
label>ABS Black                                          отображаемое название материала
color_code>#000000                                 код цвета материала
adhesion_info>Print on bare glass. Use tape for cold build plates.      описание типа адгезии. Чисто для красоты
density>1.24                                                  плотность материала
diameter>1.73                                                диаметр нити
setting key="standby temperature">185.0     температура ожидания
setting key="print cooling">30.0                     проценты кулера охлаждения детали
setting key="retraction speed">55.0              скорость ретракта
setting key="retraction amount">6.5              величина ретракта
setting key="heated bed temperature">110.0     температура стола
setting key="print temperature">240.0              температура сопла
setting key="initial print temperature">240.0     температура начала печати
setting key="final print temperature">240.0     температура окончания печати
Естественно, сюда можно и другие настройки добавлять. При выборе материала они будут автоматически применяться.
Папка meshes
В этой папке располагаются модели принтеров для отображения в интерфейсе программы. В зависимости от типа принтера это может быть полная трехмерная модель принтера, либо модель только стола – на ваше усмотрение.
Поскольку принтер я проектировал и собирал сам, у меня была трехмерная модель стола в Solidworks. Чтобы она отображалась в интерфейсе Cura её необходимо сохранить в формате stl с соответствующем именем принтера в папку meshes. Имя файла должно совпадать с именем, указанным в параметрах принтера, раздел definitions ("platform": "dreamscube.stl",).
Однако при первом открытии принтера вы можете наблюдать такую картину.
Неправильное расположение модели стола в интерфейсе Cura
Это потому, что 3Д модель стола не отцентрирована относительно начала координат печатной области принтера. Чтобы её отцентрировать правильно, необходимо модель в stl открыть непосредственно самой Cura, повернуть её и отцентровать относительно начала системы координат печатной области принтера, а затем пересохранить в stl формат, выбрав в меню Cura Файл - Export.
Совмещаем ноль стола и начало координат печатной области принтера
Папка variants
В этой папке находятся файлы конфигурации конструктивных вариантов принтера с расширением cfg. В моем случае конструктивно у меня отличаются параметры экструдеров, а именно – диаметры сопел. Три экструдера у меня с соплом 0.4 мм, а один 0.2 мм. Это те, которые стоят сейчас в принтере. Но если мне захочется поменять инструмент и поставить сопло другого диаметра, то в настройках мне будут доступны различные варианты сопел, которые я могу применить к любому из установленных экструдеров.
Чтобы это сделать необходимо добавить различные конфигурации в папку vsriants. Эти конфигурации должны находиться в папке variants\имя принтера. О том, что принтер может иметь различные варианты конфигураций мы ранее объявили в настройках раздела definitions
"has_variants": true,
"variants_name": "Nozzle Size", 
"preferred_variant_name": "0.4mm Nozzle",
Пример файла конфигурации выглядит так:
Как видим, здесь всего одна настройка – диаметр сопла.
name = 0.2mm Nozzle                      название конфигурации
definition = dreamscube                  идентификатор принтера
machine_nozzle_size = 0.2              диаметр сопла
Создав несколько файлов с конфигурациями, мы имеем возможность выбирать их в меню экструдеров наравне с выбором типа и цвета филамента, загруженного в экструдер (в верхней части интерфейса Cura). Эти настройки всегда находятся на виду, всегда видно какое сопло установлено в экструдере и какой материал и цвет филамента туда заправлен, что очень удобно.
Папка quality
В этой папке находятся конфигурации для настройки параметров качества печати – в подпапках в соответствии с названием принтера. После добавления туда нескольких вариантов настроек с различным качеством печати, они будут доступны для выбора в интерфейсе Cura. Рассматривать подробно какие настройки могут входить в эти файлы я не буду. Этих настроек очень много, фактически сюда могут быть добавлены абсолютно все настройки, которые вы можете видеть в графическом интерфейсе самой программы. О целесообразности таких преднастроек качества печати я пока сказать не могу. Ведь под каждую деталь настройки приходится менять.
Тем не менее, если вдруг кто-то захочет такие настройки создать, вот по этой ссылке вы можете найти все параметры с описанием, которые могут быть включены. Они записываются в cfg файл в простейшем виде типа
layer_height = 0.1
layer_height_0 = 0.15
wall_line_count = 4
top_layers = 6
bottom_layers = 3
fill_outline_gaps = True
infill_overlap = 8
infill_sparse_density = 26
infill_sparse_thickness = 0.2
infill_sparse_density = 100
material_flow = 98
material_flow_layer_0 = 98
Сохранение настроек видимости параметров в интерфейсе Cura
В интерфейсе Cura есть несколько вариантов отображения параметров настройки печати – Basic, Advanced, Expert. Тем не менее, каждый пользователь настраивает отображение этих параметров под себя. Чтобы не делать это каждый раз при переустановке программы, или при переносе профиля принтера на другой компьютер, можно создать свой пользовательский набор настроек, который будет добавляться при копировании профиля принтера. Это можно сделать на базе встроенного набора Expert. Эти файлы располагаются в папке программы resources\ setting_visibility. Создав копию файла expert.cfg и переименовав его, можно в нем убрать ненужные параметры печати для отображения. Затем выбрать новый профиль параметров отображения настроек печати в интерфейсе программы.
Выбор отображаемых параметров настройки печати
После настройки и применения профиля принтера, интерфейс Cura в моем случае выглядит так
Интерфейс Cura с примененным профилем кастомного принтера
Теперь пользоваться программой намного удобнее. 
Я показал базовые настройки для создания профиля кастомного принтера. Наверняка можно сделать лучше. Может кому-то эта информация пригодиться и поможет сделать работу со слайсером Ultimaker Cura удобнее и комфортнее.
Удачи всем!
Полезные ссылки
Ссылка на архив профиля принтера на базе которого можно сделать свой профиль.

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

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

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

19
Комментарии к статье

Комментарии

29.10.2019 в 16:00
1

Класс. Спасибо!

29.10.2019 в 16:43
1

Вот уж разжевал так разжевал...

Спасибо.

29.10.2019 в 17:11
0

Вы печатаете через USB или через флешку ? 

Как настроили соединение ?

29.10.2019 в 17:44
0

Плата управлением принтером Duet2 WiFi. Все настройки и управление принтером идет через вэб-интерфейс по WiFi с любого устройства, подключеного к сети. Файл с кодом через него же перекидывается на карту памяти принтера и с неё уже запускается печать.

В Cura есть плагин для подключения к принтеру с Duet2 WiFi. Но я пока его не пробовал.

Разве кто-то в 2019 году ещё печатает по USB?

29.10.2019 в 19:45
0

Не планируете подробнее рассказать про свой принтер?

30.10.2019 в 05:18
0

Посмотрю, если найду фотки в процессе сборки - что-нибудь расскажу. А что именно интересует?

30.10.2019 в 23:02
0

Конструктив смены печатающих головок. Если можно в формате step или любой CAD системе. Благодарю!

31.10.2019 в 05:20
1

Если Вам интересно сделать нечто подобное, я бы порекомендовал обратиться к истокам, а не повторять мои ошибки. E3D уже выложила исходники своего варианта ToolChanger - можно посмотреть тут. Также есть ещё один проект, который я тоже рассматривал при разработке своего принтера - вот тут. Там есть сборка всего принтера, кажется во Фьюжене. Эти проекты более детально проработаны, чем мой. Вы можете их просто повторить. А мой придется допиливать в процессе сборки :)

Скорее всего я чуть позже отдельно про принтер напишу. И если будет интерес - доделаю проект и выложу.

29.10.2019 в 20:50
1

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

30.10.2019 в 03:48
0

Спасибо! Надеюсь, дойдут руки и сделаю так для своей дельты. Пока пользуюсь минимальными настройками, там даже квадрат вместо круга:)

30.10.2019 в 05:22
0

Выберите в настройках принтера форму стола Eliptic и будет круглый (если размеры по XY одинаковые).

30.10.2019 в 09:51
0

В закладки

30.10.2019 в 11:20
0

Могу скинуть руссифицированную симфли.Там гораздо интереснее копаться с настройками

30.10.2019 в 11:27
0

Спасибо, с настройками в интерфейсе я давно разобрался и без русского. Я имел ввиду настройки профилей, как в Cura я сделал. Статья тут есть на форуме как это делать, но я пока не вникал.

31.10.2019 в 21:46
0

Отличная статья. Ее не хватало! )
Подскажите пожалуйста, в моем принтере производитель для настройки к Куре. Я их скопировал и только после этого принтер заработал как нужно. Дело в том, что у меня две независимые головки на оси X и в марлине предусмотрено для них два режима работы - прошивка управляет сменой головы или этим управляет  слайсер. Так вот в стартовом коде от производителя явно включается режим когда слайсер управляет головой (т.е. Кура). И я нигде не могу найти где эта настройка в Куре.

Можете предположить?

01.11.2019 в 08:23
0

Если я правильно понял, производитель дал Вам профиль для Cura для этого принтера? Тогда надо найти файлы настройки в соответствующих папках и посмотреть что там прописано. Я не знаю какую команду дает Cura для смены экструдера для прошивки Марлин. Например для моего принтера с прошивкой RepRap подается команда T с соответствующим номером экструдера и дальше уже прошивка выполняет нужные команды для его смены. Скорее всего что-то подобное происходит и у Вас - Cura дает команду, а прошивка уже понимает о каком экструдере идет речь, нагревает нужный хотэнд и крутит нужный мотор.

Еще можно посмотреть стартовые и завершающие G-code именно для экструдеров - в закладках экструдеров в интерфейсе Cura. Может там тоже какие-то настройки производитель прописал.

03.11.2019 в 00:13
0

к сожалению ни в файлах ни в самой куре я ничего не нашёл (

03.11.2019 в 06:39
0

Но производитель Вам дал профиль для Cura для этого принтера? В каком виде он?

03.11.2019 в 22:13
0

Как раз в виде перечисленный файлов в статье. Но я по смыслу не могу найти там то-то связанное с управлением второго хотенда.

"Copy the "definitions,extruders,meshes,quality,variants " folders to the configuration folder and restart the CURA software"




04.11.2019 в 04:28
0

В файлах когфигурации ничего и не должно говориться о том, как идет управление экструдерами. Им только присваиваются соответствующие номера и объявляется сколько их есть. Остальное управление осуществляется прошивкой, когда слайсер дает соответствующую команду. Эта команда генерируется автоматически.

Так вот в стартовом коде от производителя явно включается режим когда слайсер управляет головой (т.е. Кура). И я нигде не могу найти где эта настройка в Куре.

Это скорее всего не стартовый Г-код, иначе Вы могли бы его видеть и в конфигурации, и в интерфейсе. Стартовый и завершающий Г-код пишет и вставляет сам пользователь.

Обычно Cura прежде чем выполнить стартовый Г-код нагревает стол, затем выбирает и нагревает нужный экструдер и управляет им. Затем когда нужно дает команду на активацию второго экструдера и управляет им. У меня например это команда T, но у Вас возможно может быть другая, в зависимости от прошивки. Выглядит так T0 - активирован экструдер 0, его термистор, нагреватель, вентиляторы. Остальное делает прошивка. Поэтому Вы не находите ничего в настройках Cura (кроме количества экструдеров, их имени и номера), это все в прошивке находится.

04.11.2019 в 22:36
0

Большое спасибо Вам за попытку разобраться! Я немного шарю в командах и знаю где посмотреть команды и синтаксис. Я говорю именно про стартовый код - он хранится и в файлах и виден в куре - там явно дается команда, что управлять сменой голов будет слайсер "M605 S0".

M605 S0: Full control mode. The slicer has full control over x-carriage movement M605 S1: Auto-park mode. The inactive head will auto park/unpark without slicer involvement

Если скачать куру с сайта ультимэйкеров, то при попытке ей печатать двумя головами - вторая голова не уезжает на парковку и та, что начинает печатать ее таранит.
Если же накатить то, что дал поставщик принтера (настройки куры), то все начинает работать. При этом как я уже сказал, в стартовом коде появляется команда M605 S0 т.е. слайсер должен рулить парковкой и он это делает, но где эта настройка?


Собственно зачем мне это надо - очень просто: сейчас при смене голов пока одна голова не запаркуется - вторая не поедет. На это уходит время. Хочется сделать, чтобы как только одна поехала на паркеовку - вторая уже выезжала, а еще лучше, чтобы головы не катались в парковки а просто отъезжали от модели на заданное расстояние (но это уже фантазии), а вот первое - возможно я думаю.

05.11.2019 в 10:21
0

Тогда надо посмотреть какой Г-код генерирует Cura на профиле от производителя. Есть ли там какие-то команды кроме выбора головы. Посмотреть например на том слое где происходит смена голов. Тоесть сгенерировать код со сменой головы и его проанализировать.

И посмотрите еще в настройках принтера - возможно есть стартовый и завершающий код для каждого экструдера (смотреть в настройках принтера, вкладки Экструдер). Это 4-й рисунок в моем посте.

05.11.2019 в 10:47
0

Проанализировать можно, только что это даст ) Может что-то и даст - посмотрю.
Во вкладках экструдеров смотрел - там все пусто.


05.11.2019 в 11:23
0

Анализ кода позволит определить как Cura меняет инструмент. Дописывает ли она какие-то команды кроме T. Если нет - тогда этим процессом руководит прошивка.

Ну или анализировать еще файлы профиля, который Вам прислал производитель. Может там где-то можно какие-то команды вписывать.

01.11.2019 в 20:31
0

Мой принтер тоже в Cura не прописан, но до сих пор я пользовался ещё старой версией 14.03.1, которую добрые люди модифицировали для моего принтера...

Посмотрел я файлы программы, из всех перечисленных папок нашел только папку resources... Но в ней есть ещё папка machine_profiles, в которой среди прочих есть файл профиля моего принтера в формате *.ini

Нельзя ли просто использовать его в новой версии?

01.11.2019 в 21:16
0

Не уверен что от старой версии профиль подойдет. Но возможно можно сделать профиль для новой версии, используя данные из этого ini файла - по аналогии как сделал я для своего принтера.

07.11.2019 в 21:59
0

Как можно подключить 6 экструдеров на одной планке для одновременной печати одинаковых деталей? Если на плате только 2 выхода?

08.11.2019 в 05:01
0

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

Duet2 WiFi + Duex 5 выход в Вашей ситуации.

07.11.2019 в 23:21
0

Интересно чем отличаются "machine_gcode_flavor": { "default_value": "RepRap (RepRap)" }, от "RepRap (Marlin/Sprinter)"?

А так, быстро накидал профиль под Sapphire Pro. У себя использовал как раз "RepRap (Marlin/Sprinter)". Так-то печатает)

Насколько я понял,  подогнать STL под координаты можно и не пересохраняя модельку. Можно использовать:

"platform_offset": [ -100, 0, 100 ]

08.11.2019 в 05:03
0

Если честно - не знаю. У меня РепРап. Надо искать в описании чем отличается.

Возможно можно и Вашим методом выставить модель стола относительно нуля. Надо будет попробовать.

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Уменьшаем проблемы с фторопластовой трубкой

Кастомный 3D принтер с ToolChanger

SolidFilament или как я попал под раздачу.

"Путешествие из Екатеринбурга в Москву" или "каков твой мэссэдж, человек?"

Лоток для яиц для холодильника Whirlpool.

Photon S и его приключения