mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-28 11:21:30 +00:00
Merge branch 'main' into dev/cut-keep-paint
This commit is contained in:
@@ -11072,7 +11072,7 @@ msgid "Gizmo assemble"
|
|||||||
msgstr "Gizmo sestavit"
|
msgstr "Gizmo sestavit"
|
||||||
|
|
||||||
msgid "Gizmo brim ears"
|
msgid "Gizmo brim ears"
|
||||||
msgstr "Gizmo přídavky okraje (uši)"
|
msgstr "Gizmo ouška lemu"
|
||||||
|
|
||||||
msgid "Zoom in"
|
msgid "Zoom in"
|
||||||
msgstr "Přiblížit"
|
msgstr "Přiblížit"
|
||||||
@@ -12583,13 +12583,13 @@ msgstr ""
|
|||||||
"průtokovým poměrem filamentu a případně průtokovým poměrem objektu."
|
"průtokovým poměrem filamentu a případně průtokovým poměrem objektu."
|
||||||
|
|
||||||
msgid "Set other flow ratios"
|
msgid "Set other flow ratios"
|
||||||
msgstr "Set other flow ratios"
|
msgstr "Nastavit další poměry průtoku"
|
||||||
|
|
||||||
msgid "Change flow ratios for other extrusion path types."
|
msgid "Change flow ratios for other extrusion path types."
|
||||||
msgstr "Change flow ratios for other extrusion path types."
|
msgstr "Změnit poměry průtoku pro další typy extruzních drah."
|
||||||
|
|
||||||
msgid "First layer flow ratio"
|
msgid "First layer flow ratio"
|
||||||
msgstr "First layer flow ratio"
|
msgstr "Poměr průtoku první vrstvy"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This factor affects the amount of material on the first layer for the "
|
"This factor affects the amount of material on the first layer for the "
|
||||||
@@ -12598,14 +12598,14 @@ msgid ""
|
|||||||
"For the first layer, the actual flow ratio for each path role (does not "
|
"For the first layer, the actual flow ratio for each path role (does not "
|
||||||
"affect brims and skirts) will be multiplied by this value."
|
"affect brims and skirts) will be multiplied by this value."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"This factor affects the amount of material on the first layer for the "
|
"Tento faktor ovlivňuje množství materiálu na první vrstvě pro role extruzních "
|
||||||
"extrusion path roles listed in this section.\n"
|
"drah uvedené v této sekci.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"For the first layer, the actual flow ratio for each path role (does not "
|
"Pro první vrstvu bude skutečný poměr průtoku pro každou roli dráhy (neovlivňuje "
|
||||||
"affect brims and skirts) will be multiplied by this value."
|
"lem a sukni) vynásoben touto hodnotou."
|
||||||
|
|
||||||
msgid "Outer wall flow ratio"
|
msgid "Outer wall flow ratio"
|
||||||
msgstr "Outer wall flow ratio"
|
msgstr "Poměr průtoku vnější stěny"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This factor affects the amount of material for outer walls.\n"
|
"This factor affects the amount of material for outer walls.\n"
|
||||||
@@ -12613,13 +12613,13 @@ msgid ""
|
|||||||
"The actual outer wall flow used is calculated by multiplying this value by "
|
"The actual outer wall flow used is calculated by multiplying this value by "
|
||||||
"the filament flow ratio, and if set, the object's flow ratio."
|
"the filament flow ratio, and if set, the object's flow ratio."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"This factor affects the amount of material for outer walls.\n"
|
"Tento faktor ovlivňuje množství materiálu pro vnější stěny.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The actual outer wall flow used is calculated by multiplying this value by "
|
"Skutečný průtok pro vnější stěny se vypočítá vynásobením této hodnoty "
|
||||||
"the filament flow ratio, and if set, the object's flow ratio."
|
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
|
||||||
|
|
||||||
msgid "Inner wall flow ratio"
|
msgid "Inner wall flow ratio"
|
||||||
msgstr "Inner wall flow ratio"
|
msgstr "Poměr průtoku vnitřní stěny"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This factor affects the amount of material for inner walls.\n"
|
"This factor affects the amount of material for inner walls.\n"
|
||||||
@@ -12627,13 +12627,13 @@ msgid ""
|
|||||||
"The actual inner wall flow used is calculated by multiplying this value by "
|
"The actual inner wall flow used is calculated by multiplying this value by "
|
||||||
"the filament flow ratio, and if set, the object's flow ratio."
|
"the filament flow ratio, and if set, the object's flow ratio."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"This factor affects the amount of material for inner walls.\n"
|
"Tento faktor ovlivňuje množství materiálu pro vnitřní stěny.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The actual inner wall flow used is calculated by multiplying this value by "
|
"Skutečný průtok pro vnitřní stěny se vypočítá vynásobením této hodnoty "
|
||||||
"the filament flow ratio, and if set, the object's flow ratio."
|
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
|
||||||
|
|
||||||
msgid "Overhang flow ratio"
|
msgid "Overhang flow ratio"
|
||||||
msgstr "Overhang flow ratio"
|
msgstr "Poměr průtoku převisů"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This factor affects the amount of material for overhangs.\n"
|
"This factor affects the amount of material for overhangs.\n"
|
||||||
@@ -12641,13 +12641,13 @@ msgid ""
|
|||||||
"The actual overhang flow used is calculated by multiplying this value by the "
|
"The actual overhang flow used is calculated by multiplying this value by the "
|
||||||
"filament flow ratio, and if set, the object's flow ratio."
|
"filament flow ratio, and if set, the object's flow ratio."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"This factor affects the amount of material for overhangs.\n"
|
"Tento faktor ovlivňuje množství materiálu pro převisy.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The actual overhang flow used is calculated by multiplying this value by the "
|
"Skutečný průtok pro převisy se vypočítá vynásobením této hodnoty "
|
||||||
"filament flow ratio, and if set, the object's flow ratio."
|
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
|
||||||
|
|
||||||
msgid "Sparse infill flow ratio"
|
msgid "Sparse infill flow ratio"
|
||||||
msgstr "Sparse infill flow ratio"
|
msgstr "Poměr průtoku řídké výplně"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This factor affects the amount of material for sparse infill.\n"
|
"This factor affects the amount of material for sparse infill.\n"
|
||||||
@@ -12655,13 +12655,13 @@ msgid ""
|
|||||||
"The actual sparse infill flow used is calculated by multiplying this value "
|
"The actual sparse infill flow used is calculated by multiplying this value "
|
||||||
"by the filament flow ratio, and if set, the object's flow ratio."
|
"by the filament flow ratio, and if set, the object's flow ratio."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"This factor affects the amount of material for sparse infill.\n"
|
"Tento faktor ovlivňuje množství materiálu pro řídkou výplň.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The actual sparse infill flow used is calculated by multiplying this value "
|
"Skutečný průtok pro řídkou výplň se vypočítá vynásobením této hodnoty "
|
||||||
"by the filament flow ratio, and if set, the object's flow ratio."
|
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
|
||||||
|
|
||||||
msgid "Internal solid infill flow ratio"
|
msgid "Internal solid infill flow ratio"
|
||||||
msgstr "Internal solid infill flow ratio"
|
msgstr "Poměr průtoku vnitřní plné výplně"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This factor affects the amount of material for internal solid infill.\n"
|
"This factor affects the amount of material for internal solid infill.\n"
|
||||||
@@ -12669,13 +12669,13 @@ msgid ""
|
|||||||
"The actual internal solid infill flow used is calculated by multiplying this "
|
"The actual internal solid infill flow used is calculated by multiplying this "
|
||||||
"value by the filament flow ratio, and if set, the object's flow ratio."
|
"value by the filament flow ratio, and if set, the object's flow ratio."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"This factor affects the amount of material for internal solid infill.\n"
|
"Tento faktor ovlivňuje množství materiálu pro vnitřní plnou výplň.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The actual internal solid infill flow used is calculated by multiplying this "
|
"Skutečný průtok pro vnitřní plnou výplň se vypočítá vynásobením této hodnoty "
|
||||||
"value by the filament flow ratio, and if set, the object's flow ratio."
|
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
|
||||||
|
|
||||||
msgid "Gap fill flow ratio"
|
msgid "Gap fill flow ratio"
|
||||||
msgstr "Gap fill flow ratio"
|
msgstr "Poměr průtoku vyplnění mezer"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This factor affects the amount of material for filling the gaps.\n"
|
"This factor affects the amount of material for filling the gaps.\n"
|
||||||
@@ -12683,13 +12683,13 @@ msgid ""
|
|||||||
"The actual gap filling flow used is calculated by multiplying this value by "
|
"The actual gap filling flow used is calculated by multiplying this value by "
|
||||||
"the filament flow ratio, and if set, the object's flow ratio."
|
"the filament flow ratio, and if set, the object's flow ratio."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"This factor affects the amount of material for filling the gaps.\n"
|
"Tento faktor ovlivňuje množství materiálu pro vyplnění mezer.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The actual gap filling flow used is calculated by multiplying this value by "
|
"Skutečný průtok pro vyplnění mezer se vypočítá vynásobením této hodnoty "
|
||||||
"the filament flow ratio, and if set, the object's flow ratio."
|
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
|
||||||
|
|
||||||
msgid "Support flow ratio"
|
msgid "Support flow ratio"
|
||||||
msgstr "Support flow ratio"
|
msgstr "Poměr průtoku podpěr"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This factor affects the amount of material for support.\n"
|
"This factor affects the amount of material for support.\n"
|
||||||
@@ -12697,13 +12697,13 @@ msgid ""
|
|||||||
"The actual support flow used is calculated by multiplying this value by the "
|
"The actual support flow used is calculated by multiplying this value by the "
|
||||||
"filament flow ratio, and if set, the object's flow ratio."
|
"filament flow ratio, and if set, the object's flow ratio."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"This factor affects the amount of material for support.\n"
|
"Tento faktor ovlivňuje množství materiálu pro podpěry.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The actual support flow used is calculated by multiplying this value by the "
|
"Skutečný průtok pro podpěry se vypočítá vynásobením této hodnoty "
|
||||||
"filament flow ratio, and if set, the object's flow ratio."
|
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
|
||||||
|
|
||||||
msgid "Support interface flow ratio"
|
msgid "Support interface flow ratio"
|
||||||
msgstr "Support interface flow ratio"
|
msgstr "Poměr průtoku rozhraní podpěr"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This factor affects the amount of material for the support interface.\n"
|
"This factor affects the amount of material for the support interface.\n"
|
||||||
@@ -12711,10 +12711,10 @@ msgid ""
|
|||||||
"The actual support interface flow used is calculated by multiplying this "
|
"The actual support interface flow used is calculated by multiplying this "
|
||||||
"value by the filament flow ratio, and if set, the object's flow ratio."
|
"value by the filament flow ratio, and if set, the object's flow ratio."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"This factor affects the amount of material for the support interface.\n"
|
"Tento faktor ovlivňuje množství materiálu pro rozhraní podpěr.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"The actual support interface flow used is calculated by multiplying this "
|
"Skutečný průtok pro rozhraní podpěr se vypočítá vynásobením této hodnoty "
|
||||||
"value by the filament flow ratio, and if set, the object's flow ratio."
|
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
|
||||||
|
|
||||||
msgid "Precise wall"
|
msgid "Precise wall"
|
||||||
msgstr "Přesná stěna"
|
msgstr "Přesná stěna"
|
||||||
|
|||||||
@@ -0,0 +1,159 @@
|
|||||||
|
{
|
||||||
|
"name": "LH",
|
||||||
|
"url": "https://github.com/lhndo/LH-Stinger",
|
||||||
|
"version": "01.00.00.00",
|
||||||
|
"force_update": "0",
|
||||||
|
"description": "LH 3D Printer Configuration",
|
||||||
|
"machine_model_list": [
|
||||||
|
{
|
||||||
|
"name": "LH Stinger",
|
||||||
|
"sub_path": "machine/LH Stinger.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LH Stinger MMU",
|
||||||
|
"sub_path": "machine/LH Stinger MMU.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"process_list": [
|
||||||
|
{
|
||||||
|
"name": "fdm_process_common",
|
||||||
|
"sub_path": "process/fdm_process_common.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fdm_process_lh_common",
|
||||||
|
"sub_path": "process/fdm_process_lh_common.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0.20mm Daily @LH Stinger",
|
||||||
|
"sub_path": "process/0.20mm Daily @LH Stinger.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0.25mm Vase Mode @LH Stinger",
|
||||||
|
"sub_path": "process/0.25mm Vase Mode @LH Stinger.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0.20mm TPU @LH Stinger",
|
||||||
|
"sub_path": "process/0.20mm TPU @LH Stinger.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0.20mm Strength @LH Stinger",
|
||||||
|
"sub_path": "process/0.20mm Strength @LH Stinger.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0.20mm Speed @LH Stinger",
|
||||||
|
"sub_path": "process/0.20mm Speed @LH Stinger.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0.20mm Solid @LH Stinger",
|
||||||
|
"sub_path": "process/0.20mm Solid @LH Stinger.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0.20mm Quiet @LH Stinger",
|
||||||
|
"sub_path": "process/0.20mm Quiet @LH Stinger.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0.20mm PETG @LH Stinger",
|
||||||
|
"sub_path": "process/0.20mm PETG @LH Stinger.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0.20mm MMU @LH Stinger",
|
||||||
|
"sub_path": "process/0.20mm MMU @LH Stinger.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0.10mm HueForge @LH Stinger",
|
||||||
|
"sub_path": "process/0.10mm HueForge @LH Stinger.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0.14mm Detail Strength @LH Stinger",
|
||||||
|
"sub_path": "process/0.14mm Detail Strength @LH Stinger.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "0.14mm Detail @LH Stinger",
|
||||||
|
"sub_path": "process/0.14mm Detail @LH Stinger.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"filament_list": [
|
||||||
|
{
|
||||||
|
"name": "fdm_filament_common",
|
||||||
|
"sub_path": "filament/fdm_filament_common.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fdm_filament_abs",
|
||||||
|
"sub_path": "filament/fdm_filament_abs.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fdm_filament_asa",
|
||||||
|
"sub_path": "filament/fdm_filament_asa.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fdm_filament_pc",
|
||||||
|
"sub_path": "filament/fdm_filament_pc.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fdm_filament_pet",
|
||||||
|
"sub_path": "filament/fdm_filament_pet.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fdm_filament_pla",
|
||||||
|
"sub_path": "filament/fdm_filament_pla.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fdm_filament_tpu",
|
||||||
|
"sub_path": "filament/fdm_filament_tpu.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LHS ASA",
|
||||||
|
"sub_path": "filament/LHS ASA.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LHS ABS",
|
||||||
|
"sub_path": "filament/LHS ABS.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LHS TPU",
|
||||||
|
"sub_path": "filament/LHS TPU.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LHS PLA",
|
||||||
|
"sub_path": "filament/LHS PLA.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LHS TPU Foamy 78A",
|
||||||
|
"sub_path": "filament/LHS TPU Foamy 78A.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LHS PETG",
|
||||||
|
"sub_path": "filament/LHS PETG.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LHS PCTG",
|
||||||
|
"sub_path": "filament/LHS PCTG.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LHS PC CF",
|
||||||
|
"sub_path": "filament/LHS PC CF.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"machine_list": [
|
||||||
|
{
|
||||||
|
"name": "fdm_machine_common",
|
||||||
|
"sub_path": "machine/fdm_machine_common.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fdm_lh_common",
|
||||||
|
"sub_path": "machine/fdm_lh_common.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fdm_lh_mmu_common",
|
||||||
|
"sub_path": "machine/fdm_lh_mmu_common.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LH Stinger 0.4 nozzle",
|
||||||
|
"sub_path": "machine/LH Stinger 0.4 nozzle.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "LH Stinger MMU 0.4 nozzle",
|
||||||
|
"sub_path": "machine/LH Stinger MMU 0.4 nozzle.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 65 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,355 @@
|
|||||||
|
{
|
||||||
|
"name": "LHS ABS",
|
||||||
|
"type": "filament",
|
||||||
|
"filament_id": "LHF_abs",
|
||||||
|
"setting_id": "LHF_S_abs",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "true",
|
||||||
|
"inherits": "fdm_filament_asa",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"activate_air_filtration": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"activate_chamber_temp_control": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_bridges": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_model": [
|
||||||
|
"0,0,0\n0,0,0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_overhangs": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"additional_cooling_fan_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"chamber_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"2"
|
||||||
|
],
|
||||||
|
"complete_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"default_filament_colour": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"dont_slow_down_outer_wall": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"during_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"enable_overhang_bridge_fan": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"enable_pressure_advance": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"25"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"25"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"25"
|
||||||
|
],
|
||||||
|
"filament_adaptive_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_adhesiveness_category": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_change_length": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_cooling_final_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_initial_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_moves": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.04"
|
||||||
|
],
|
||||||
|
"filament_deretraction_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_diameter": [
|
||||||
|
"1.75"
|
||||||
|
],
|
||||||
|
"filament_end_gcode": [
|
||||||
|
"; filament end gcode\n"
|
||||||
|
],
|
||||||
|
"filament_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"filament_flow_ratio": [
|
||||||
|
"0.926"
|
||||||
|
],
|
||||||
|
"filament_flush_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_flush_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_ironing_flow": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_inset": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_spacing": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_is_support": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_long_retractions_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"45"
|
||||||
|
],
|
||||||
|
"filament_minimal_purge_on_wipe_tower": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_flow": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_volume": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_notes": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"filament_printable": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"filament_ramming_parameters": [
|
||||||
|
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
||||||
|
],
|
||||||
|
"filament_retract_before_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_above": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_below": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_enforce": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_restart_extra": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_when_changing_layer": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_distances_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_length": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_minimum_travel": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_settings_id": [
|
||||||
|
"LHS - ASA"
|
||||||
|
],
|
||||||
|
"filament_shrink": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_shrinkage_compensation_z": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_soluble": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_distance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_start_gcode": [
|
||||||
|
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.07 FILAMENT_HEAT_CAPACITY=2.1\nMAX_FAN LINK_AUX=0"
|
||||||
|
],
|
||||||
|
"filament_toolchange_delay": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_dist": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_length": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_print_temp": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_purge_volume": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_tower_ironing_area": [
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"ASA"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_wipe_distance": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop_types": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"full_fan_speed_layer": [
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"idle_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"internal_bridge_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"ironing_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"long_retractions_when_ec": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"300"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"240"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"50"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"50%"
|
||||||
|
],
|
||||||
|
"pellet_flow_coefficient": [
|
||||||
|
"0.4157"
|
||||||
|
],
|
||||||
|
"pressure_advance": [
|
||||||
|
"0.019"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"required_nozzle_HRC": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"retraction_distances_when_ec": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"15"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"support_material_interface_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"110"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp_initial_layer": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"filament_vendor": [
|
||||||
|
"LH Stinger"
|
||||||
|
],
|
||||||
|
"volumetric_speed_coefficients": [
|
||||||
|
""
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,352 @@
|
|||||||
|
{
|
||||||
|
"name": "LHS ASA",
|
||||||
|
"filament_id": "LHF_asa",
|
||||||
|
"setting_id": "LHF_S_asa",
|
||||||
|
"type": "filament",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "true",
|
||||||
|
"inherits": "fdm_filament_asa",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"activate_air_filtration": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"activate_chamber_temp_control": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_bridges": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_model": [
|
||||||
|
"0,0,0\n0,0,0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_overhangs": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"additional_cooling_fan_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"chamber_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"2"
|
||||||
|
],
|
||||||
|
"complete_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"default_filament_colour": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"dont_slow_down_outer_wall": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"during_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"enable_overhang_bridge_fan": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"enable_pressure_advance": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"25"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"25"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"25"
|
||||||
|
],
|
||||||
|
"filament_adaptive_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_adhesiveness_category": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_change_length": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_cooling_final_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_initial_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_moves": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.04"
|
||||||
|
],
|
||||||
|
"filament_deretraction_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_diameter": [
|
||||||
|
"1.75"
|
||||||
|
],
|
||||||
|
"filament_end_gcode": [
|
||||||
|
"; filament end gcode\n"
|
||||||
|
],
|
||||||
|
"filament_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"filament_flow_ratio": [
|
||||||
|
"0.926"
|
||||||
|
],
|
||||||
|
"filament_flush_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_flush_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_ironing_flow": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_inset": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_spacing": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_is_support": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_long_retractions_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"45"
|
||||||
|
],
|
||||||
|
"filament_minimal_purge_on_wipe_tower": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_flow": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_volume": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_notes": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"filament_printable": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"filament_ramming_parameters": [
|
||||||
|
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
||||||
|
],
|
||||||
|
"filament_retract_before_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_above": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_below": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_enforce": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_restart_extra": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_when_changing_layer": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_distances_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_length": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_minimum_travel": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_shrink": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_shrinkage_compensation_z": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_soluble": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_distance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_start_gcode": [
|
||||||
|
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.07 FILAMENT_HEAT_CAPACITY=2.1\nMAX_FAN LINK_AUX=0"
|
||||||
|
],
|
||||||
|
"filament_toolchange_delay": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_dist": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_length": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_print_temp": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_purge_volume": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_tower_ironing_area": [
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"ASA"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_wipe_distance": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop_types": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"full_fan_speed_layer": [
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"idle_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"internal_bridge_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"ironing_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"long_retractions_when_ec": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"300"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"240"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"50"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"50%"
|
||||||
|
],
|
||||||
|
"pellet_flow_coefficient": [
|
||||||
|
"0.4157"
|
||||||
|
],
|
||||||
|
"pressure_advance": [
|
||||||
|
"0.019"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"required_nozzle_HRC": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"retraction_distances_when_ec": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"15"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"support_material_interface_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"110"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp_initial_layer": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"filament_vendor": [
|
||||||
|
"LH Stinger"
|
||||||
|
],
|
||||||
|
"volumetric_speed_coefficients": [
|
||||||
|
""
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,122 @@
|
|||||||
|
{
|
||||||
|
"name": "LHS PC CF",
|
||||||
|
"type": "filament",
|
||||||
|
"filament_id": "LHF_pccf",
|
||||||
|
"setting_id": "LHF_S_pccf",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "true",
|
||||||
|
"inherits": "fdm_filament_pla",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"additional_cooling_fan_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"enable_pressure_advance": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"11"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"5"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"5"
|
||||||
|
],
|
||||||
|
"filament_cooling_final_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_initial_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_moves": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.18"
|
||||||
|
],
|
||||||
|
"filament_flow_ratio": [
|
||||||
|
"0.945"
|
||||||
|
],
|
||||||
|
"filament_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"filament_minimal_purge_on_wipe_tower": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_flow": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_volume": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_notes": [
|
||||||
|
"Extrusion Override set to a higher value\nAux disabled\nZ-Offset increased to 0.025 due to nozzle expansion at 300C"
|
||||||
|
],
|
||||||
|
"filament_retraction_length": [
|
||||||
|
"0.4"
|
||||||
|
],
|
||||||
|
"filament_shrink": [
|
||||||
|
"99.8%"
|
||||||
|
],
|
||||||
|
"filament_start_gcode": [
|
||||||
|
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.36 FILAMENT_HEAT_CAPACITY=2.6\nMAX_FAN LINK_AUX=0"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"PC"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"is_custom_defined": "0",
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"300"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"300"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"300"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"270"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"pressure_advance": [
|
||||||
|
"0.025"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"7"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"12"
|
||||||
|
],
|
||||||
|
"filament_vendor": [
|
||||||
|
"LH Stinger"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"140"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,352 @@
|
|||||||
|
{
|
||||||
|
"name": "LHS PCTG",
|
||||||
|
"type": "filament",
|
||||||
|
"filament_id": "LHF_pctg",
|
||||||
|
"setting_id": "LHF_S_pctg",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "true",
|
||||||
|
"inherits": "fdm_filament_pla",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"activate_air_filtration": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"activate_chamber_temp_control": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_bridges": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_model": [
|
||||||
|
"0,0,0\n0,0,0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_overhangs": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"additional_cooling_fan_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"chamber_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"complete_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"default_filament_colour": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"dont_slow_down_outer_wall": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"during_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"enable_overhang_bridge_fan": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"enable_pressure_advance": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"13"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"50"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_adaptive_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_adhesiveness_category": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_change_length": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_cooling_final_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_initial_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_moves": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.24"
|
||||||
|
],
|
||||||
|
"filament_deretraction_speed": [
|
||||||
|
"25"
|
||||||
|
],
|
||||||
|
"filament_diameter": [
|
||||||
|
"1.75"
|
||||||
|
],
|
||||||
|
"filament_end_gcode": [
|
||||||
|
"; filament end gcode\n"
|
||||||
|
],
|
||||||
|
"filament_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"filament_flow_ratio": [
|
||||||
|
"0.953"
|
||||||
|
],
|
||||||
|
"filament_flush_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_flush_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_ironing_flow": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_inset": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_spacing": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_is_support": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_long_retractions_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"25"
|
||||||
|
],
|
||||||
|
"filament_minimal_purge_on_wipe_tower": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_flow": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_volume": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_notes": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"filament_printable": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"filament_ramming_parameters": [
|
||||||
|
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
||||||
|
],
|
||||||
|
"filament_retract_before_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_above": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_below": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_enforce": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_restart_extra": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_when_changing_layer": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_distances_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_length": [
|
||||||
|
"0.6"
|
||||||
|
],
|
||||||
|
"filament_retraction_minimum_travel": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_speed": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"filament_shrink": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_shrinkage_compensation_z": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_soluble": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_distance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_start_gcode": [
|
||||||
|
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.25 FILAMENT_HEAT_CAPACITY=5.5\nMAX_FAN LINK_AUX=0"
|
||||||
|
],
|
||||||
|
"filament_toolchange_delay": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_dist": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_length": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_print_temp": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_purge_volume": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_tower_ironing_area": [
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"PCTG"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_wipe": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_wipe_distance": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop_types": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"full_fan_speed_layer": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"90"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"85"
|
||||||
|
],
|
||||||
|
"idle_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"internal_bridge_fan_speed": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"ironing_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"long_retractions_when_ec": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"280"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"270"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"300"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"230"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"50"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"50%"
|
||||||
|
],
|
||||||
|
"pellet_flow_coefficient": [
|
||||||
|
"0.4157"
|
||||||
|
],
|
||||||
|
"pressure_advance": [
|
||||||
|
"0.038"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"required_nozzle_HRC": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"retraction_distances_when_ec": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"12"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"15"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"45"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"45"
|
||||||
|
],
|
||||||
|
"support_material_interface_fan_speed": [
|
||||||
|
"50"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp_initial_layer": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"55"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"55"
|
||||||
|
],
|
||||||
|
"filament_vendor": [
|
||||||
|
"LH Stinger"
|
||||||
|
],
|
||||||
|
"volumetric_speed_coefficients": [
|
||||||
|
""
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,352 @@
|
|||||||
|
{
|
||||||
|
"name": "LHS PETG",
|
||||||
|
"type": "filament",
|
||||||
|
"filament_id": "LHF_petg",
|
||||||
|
"setting_id": "LHF_S_petg",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "true",
|
||||||
|
"inherits": "fdm_filament_pla",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"activate_air_filtration": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"activate_chamber_temp_control": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_bridges": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_model": [
|
||||||
|
"0,0,0\n0,0,0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_overhangs": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"additional_cooling_fan_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"chamber_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"complete_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"default_filament_colour": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"dont_slow_down_outer_wall": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"during_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"enable_overhang_bridge_fan": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"enable_pressure_advance": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"15"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"65"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"filament_adaptive_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_adhesiveness_category": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_change_length": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_cooling_final_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_initial_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_moves": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.24"
|
||||||
|
],
|
||||||
|
"filament_deretraction_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_diameter": [
|
||||||
|
"1.75"
|
||||||
|
],
|
||||||
|
"filament_end_gcode": [
|
||||||
|
"; filament end gcode\n"
|
||||||
|
],
|
||||||
|
"filament_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"filament_flow_ratio": [
|
||||||
|
"0.923"
|
||||||
|
],
|
||||||
|
"filament_flush_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_flush_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_ironing_flow": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_inset": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_spacing": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_is_support": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_long_retractions_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"27"
|
||||||
|
],
|
||||||
|
"filament_minimal_purge_on_wipe_tower": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_flow": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_volume": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_notes": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"filament_printable": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"filament_ramming_parameters": [
|
||||||
|
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
||||||
|
],
|
||||||
|
"filament_retract_before_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_above": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_below": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_enforce": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_restart_extra": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_when_changing_layer": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_distances_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_length": [
|
||||||
|
"0.6"
|
||||||
|
],
|
||||||
|
"filament_retraction_minimum_travel": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_shrink": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_shrinkage_compensation_z": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_soluble": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_distance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_start_gcode": [
|
||||||
|
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.27 FILAMENT_HEAT_CAPACITY=5.5\nMAX_FAN LINK_AUX=0"
|
||||||
|
],
|
||||||
|
"filament_toolchange_delay": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_dist": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_length": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_print_temp": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_purge_volume": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_tower_ironing_area": [
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"PETG"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_wipe_distance": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop_types": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"full_fan_speed_layer": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"idle_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"internal_bridge_fan_speed": [
|
||||||
|
"50"
|
||||||
|
],
|
||||||
|
"ironing_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"long_retractions_when_ec": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"300"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"230"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"90"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"50%"
|
||||||
|
],
|
||||||
|
"pellet_flow_coefficient": [
|
||||||
|
"0.4157"
|
||||||
|
],
|
||||||
|
"pressure_advance": [
|
||||||
|
"0.047"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"required_nozzle_HRC": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"retraction_distances_when_ec": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"14"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"15"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"45"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"45"
|
||||||
|
],
|
||||||
|
"support_material_interface_fan_speed": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp_initial_layer": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"55"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"55"
|
||||||
|
],
|
||||||
|
"filament_vendor": [
|
||||||
|
"LH Stinger"
|
||||||
|
],
|
||||||
|
"volumetric_speed_coefficients": [
|
||||||
|
""
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,352 @@
|
|||||||
|
{
|
||||||
|
"name": "LHS PLA",
|
||||||
|
"type": "filament",
|
||||||
|
"filament_id": "LHF_pla",
|
||||||
|
"setting_id": "LHF_S_pla",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "true",
|
||||||
|
"inherits": "fdm_filament_pla",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"activate_air_filtration": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"activate_chamber_temp_control": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_bridges": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_model": [
|
||||||
|
"0,0,0\n0,0,0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_overhangs": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"additional_cooling_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"chamber_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"complete_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"default_filament_colour": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"dont_slow_down_outer_wall": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"during_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"enable_overhang_bridge_fan": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"enable_pressure_advance": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"65"
|
||||||
|
],
|
||||||
|
"filament_adaptive_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_adhesiveness_category": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_change_length": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_cooling_final_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_initial_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_moves": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.24"
|
||||||
|
],
|
||||||
|
"filament_deretraction_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_diameter": [
|
||||||
|
"1.75"
|
||||||
|
],
|
||||||
|
"filament_end_gcode": [
|
||||||
|
"; filament end gcode\n"
|
||||||
|
],
|
||||||
|
"filament_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"filament_flow_ratio": [
|
||||||
|
"0.95"
|
||||||
|
],
|
||||||
|
"filament_flush_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_flush_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_ironing_flow": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_inset": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_spacing": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_is_support": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_long_retractions_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"45"
|
||||||
|
],
|
||||||
|
"filament_minimal_purge_on_wipe_tower": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_flow": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_volume": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_notes": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"filament_printable": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"filament_ramming_parameters": [
|
||||||
|
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
||||||
|
],
|
||||||
|
"filament_retract_before_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_above": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_below": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_enforce": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_restart_extra": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_when_changing_layer": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_distances_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_length": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_minimum_travel": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_shrink": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_shrinkage_compensation_z": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_soluble": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_distance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_start_gcode": [
|
||||||
|
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.24 FILAMENT_HEAT_CAPACITY=3.2\n; MAX_FAN LINK_AUX=0"
|
||||||
|
],
|
||||||
|
"filament_toolchange_delay": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_dist": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_length": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_print_temp": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_purge_volume": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_tower_ironing_area": [
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"PLA"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_wipe_distance": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop_types": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"full_fan_speed_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"idle_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"internal_bridge_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"ironing_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"long_retractions_when_ec": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"235"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"230"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"280"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"190"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"25%"
|
||||||
|
],
|
||||||
|
"pellet_flow_coefficient": [
|
||||||
|
"0.4157"
|
||||||
|
],
|
||||||
|
"pressure_advance": [
|
||||||
|
"0.02"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"required_nozzle_HRC": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"retraction_distances_when_ec": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"15"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"45"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"45"
|
||||||
|
],
|
||||||
|
"support_material_interface_fan_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"45"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp_initial_layer": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"55"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"filament_vendor": [
|
||||||
|
"LH Stinger"
|
||||||
|
],
|
||||||
|
"volumetric_speed_coefficients": [
|
||||||
|
""
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,352 @@
|
|||||||
|
{
|
||||||
|
"name": "LHS TPU Foamy 78A",
|
||||||
|
"type": "filament",
|
||||||
|
"filament_id": "LHF_ftpuf",
|
||||||
|
"setting_id": "LHF_S_ftpuf",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "true",
|
||||||
|
"inherits": "fdm_filament_tpu",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"activate_air_filtration": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"activate_chamber_temp_control": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_bridges": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_model": [
|
||||||
|
"0,0,0\n0,0,0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_overhangs": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"additional_cooling_fan_speed": [
|
||||||
|
"55"
|
||||||
|
],
|
||||||
|
"chamber_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"complete_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"default_filament_colour": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"dont_slow_down_outer_wall": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"during_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"enable_overhang_bridge_fan": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"enable_pressure_advance": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"filament_adaptive_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_adhesiveness_category": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_change_length": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_cooling_final_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_initial_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_moves": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.02"
|
||||||
|
],
|
||||||
|
"filament_deretraction_speed": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_diameter": [
|
||||||
|
"1.75"
|
||||||
|
],
|
||||||
|
"filament_end_gcode": [
|
||||||
|
"; filament end gcode\n"
|
||||||
|
],
|
||||||
|
"filament_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"filament_flow_ratio": [
|
||||||
|
"0.85"
|
||||||
|
],
|
||||||
|
"filament_flush_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_flush_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_ironing_flow": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_inset": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_spacing": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_is_support": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_long_retractions_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"filament_minimal_purge_on_wipe_tower": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_flow": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_volume": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_notes": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"filament_printable": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"filament_ramming_parameters": [
|
||||||
|
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
||||||
|
],
|
||||||
|
"filament_retract_before_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_above": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_below": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_enforce": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_restart_extra": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_when_changing_layer": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_distances_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_length": [
|
||||||
|
"1.2"
|
||||||
|
],
|
||||||
|
"filament_retraction_minimum_travel": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"filament_retraction_speed": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"filament_shrink": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_shrinkage_compensation_z": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_soluble": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_distance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_start_gcode": [
|
||||||
|
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.02 FILAMENT_HEAT_CAPACITY=2\n; MAX_FAN LINK_AUX=0 \nSET_PRESSURE_ADVANCE EXTRUDER=extruder SMOOTH_TIME=0.04"
|
||||||
|
],
|
||||||
|
"filament_toolchange_delay": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_dist": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_length": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_print_temp": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_purge_volume": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_tower_ironing_area": [
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"TPU"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_wipe": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_wipe_distance": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_z_hop_types": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"full_fan_speed_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"25"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"25"
|
||||||
|
],
|
||||||
|
"idle_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"internal_bridge_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"ironing_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"long_retractions_when_ec": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"265"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"280"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"240"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"25%"
|
||||||
|
],
|
||||||
|
"pellet_flow_coefficient": [
|
||||||
|
"0.4157"
|
||||||
|
],
|
||||||
|
"pressure_advance": [
|
||||||
|
"0.06"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"required_nozzle_HRC": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"retraction_distances_when_ec": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"5"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"support_material_interface_fan_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp_initial_layer": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"filament_vendor": [
|
||||||
|
"LH Stinger"
|
||||||
|
],
|
||||||
|
"volumetric_speed_coefficients": [
|
||||||
|
""
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,352 @@
|
|||||||
|
{
|
||||||
|
"name": "LHS TPU",
|
||||||
|
"type": "filament",
|
||||||
|
"filament_id": "LHF_ptpu_pl",
|
||||||
|
"setting_id": "LHF_S_ptpu_pl",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "true",
|
||||||
|
"inherits": "fdm_filament_tpu",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"activate_air_filtration": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"activate_chamber_temp_control": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_bridges": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_model": [
|
||||||
|
"0,0,0\n0,0,0"
|
||||||
|
],
|
||||||
|
"adaptive_pressure_advance_overhangs": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"additional_cooling_fan_speed": [
|
||||||
|
"55"
|
||||||
|
],
|
||||||
|
"chamber_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"complete_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"default_filament_colour": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"dont_slow_down_outer_wall": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"during_print_exhaust_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"enable_overhang_bridge_fan": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"enable_pressure_advance": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"filament_adaptive_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_adhesiveness_category": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_change_length": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_cooling_final_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_initial_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cooling_moves": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.22"
|
||||||
|
],
|
||||||
|
"filament_deretraction_speed": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_diameter": [
|
||||||
|
"1.75"
|
||||||
|
],
|
||||||
|
"filament_end_gcode": [
|
||||||
|
"; filament end gcode\n"
|
||||||
|
],
|
||||||
|
"filament_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"filament_flow_ratio": [
|
||||||
|
"0.965"
|
||||||
|
],
|
||||||
|
"filament_flush_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_flush_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_ironing_flow": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_inset": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_spacing": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_ironing_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_is_support": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_loading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_long_retractions_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_minimal_purge_on_wipe_tower": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_flow": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_multitool_ramming_volume": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_notes": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"filament_printable": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"filament_ramming_parameters": [
|
||||||
|
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
||||||
|
],
|
||||||
|
"filament_retract_before_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_above": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_below": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_lift_enforce": [
|
||||||
|
"Bottom Only"
|
||||||
|
],
|
||||||
|
"filament_retract_restart_extra": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_when_changing_layer": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_distances_when_cut": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_length": [
|
||||||
|
"0.9"
|
||||||
|
],
|
||||||
|
"filament_retraction_minimum_travel": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_speed": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"filament_shrink": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_shrinkage_compensation_z": [
|
||||||
|
"100%"
|
||||||
|
],
|
||||||
|
"filament_soluble": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_distance": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_stamping_loading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_start_gcode": [
|
||||||
|
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.22 FILAMENT_HEAT_CAPACITY=2\n; MAX_FAN LINK_AUX=0\nSET_PRESSURE_ADVANCE EXTRUDER=extruder SMOOTH_TIME=0.04"
|
||||||
|
],
|
||||||
|
"filament_toolchange_delay": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_dist": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_pre_extrusion_length": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_print_temp": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"filament_tower_interface_purge_volume": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_tower_ironing_area": [
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"TPU"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_unloading_speed_start": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_wipe": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_wipe_distance": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop_types": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"full_fan_speed_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"idle_temperature": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"internal_bridge_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"ironing_fan_speed": [
|
||||||
|
"-1"
|
||||||
|
],
|
||||||
|
"long_retractions_when_ec": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"245"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"230"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"300"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"200"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"25%"
|
||||||
|
],
|
||||||
|
"pellet_flow_coefficient": [
|
||||||
|
"0.4157"
|
||||||
|
],
|
||||||
|
"pressure_advance": [
|
||||||
|
"0.08"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"required_nozzle_HRC": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"retraction_distances_when_ec": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"12"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"12"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"supertack_plate_temp_initial_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"support_material_interface_fan_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_cool_plate_temp_initial_layer": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"filament_vendor": [
|
||||||
|
"LH Stinger"
|
||||||
|
],
|
||||||
|
"volumetric_speed_coefficients": [
|
||||||
|
""
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"type": "filament",
|
||||||
|
"name": "fdm_filament_abs",
|
||||||
|
"inherits": "fdm_filament_common",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "false",
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"28.6"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"ABS"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.04"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"25%"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"110"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"240"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"270"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"3"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"type": "filament",
|
||||||
|
"name": "fdm_filament_asa",
|
||||||
|
"inherits": "fdm_filament_common",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "false",
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"105"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"28.6"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"ASA"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.04"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"25%"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"110"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"240"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"270"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"3"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,141 @@
|
|||||||
|
{
|
||||||
|
"type": "filament",
|
||||||
|
"name": "fdm_filament_common",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "false",
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"95%"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"filament_end_gcode": [
|
||||||
|
"; filament end gcode \n"
|
||||||
|
],
|
||||||
|
"filament_flow_ratio": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_deretraction_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_diameter": [
|
||||||
|
"1.75"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_minimal_purge_on_wipe_tower": [
|
||||||
|
"15"
|
||||||
|
],
|
||||||
|
"filament_retraction_minimum_travel": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_before_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_when_changing_layer": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_length": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_z_hop": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retract_restart_extra": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_retraction_speed": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_settings_id": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"filament_soluble": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"PLA"
|
||||||
|
],
|
||||||
|
"filament_vendor": [
|
||||||
|
"Generic"
|
||||||
|
],
|
||||||
|
"filament_wipe": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"filament_wipe_distance": [
|
||||||
|
"nil"
|
||||||
|
],
|
||||||
|
"bed_type": [
|
||||||
|
"Cool Plate"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"200"
|
||||||
|
],
|
||||||
|
"full_fan_speed_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
"filament_start_gcode": [
|
||||||
|
"; Filament gcode\n"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"200"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"100"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"type": "filament",
|
||||||
|
"name": "fdm_filament_pc",
|
||||||
|
"inherits": "fdm_filament_common",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "false",
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"110"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"110"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"110"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"110"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"110"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"110"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"23.2"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"PC"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.04"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"270"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"25%"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"280"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"140"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"280"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"2"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"type": "filament",
|
||||||
|
"name": "fdm_filament_pet",
|
||||||
|
"inherits": "fdm_filament_common",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "false",
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"3"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"25"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"PETG"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.27"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"255"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"255"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"80"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"220"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"260"
|
||||||
|
],
|
||||||
|
"filament_start_gcode": [
|
||||||
|
"; filament start gcode\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
{
|
||||||
|
"type": "filament",
|
||||||
|
"name": "fdm_filament_pla",
|
||||||
|
"inherits": "fdm_filament_common",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "false",
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"12"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"PLA"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.24"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"220"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"overhang_fan_threshold": [
|
||||||
|
"50%"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"220"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"190"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"230"
|
||||||
|
],
|
||||||
|
"slow_down_min_speed": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"slow_down_layer_time": [
|
||||||
|
"4"
|
||||||
|
],
|
||||||
|
"additional_cooling_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"filament_start_gcode": [
|
||||||
|
"; filament start gcode\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
"type": "filament",
|
||||||
|
"name": "fdm_filament_tpu",
|
||||||
|
"inherits": "fdm_filament_common",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "false",
|
||||||
|
"cool_plate_temp": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"eng_plate_temp": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"hot_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"textured_plate_temp": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"cool_plate_temp_initial_layer": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"eng_plate_temp_initial_layer": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"hot_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"textured_plate_temp_initial_layer": [
|
||||||
|
"35"
|
||||||
|
],
|
||||||
|
"fan_cooling_layer_time": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"filament_max_volumetric_speed": [
|
||||||
|
"15"
|
||||||
|
],
|
||||||
|
"filament_type": [
|
||||||
|
"TPU"
|
||||||
|
],
|
||||||
|
"filament_density": [
|
||||||
|
"1.24"
|
||||||
|
],
|
||||||
|
"filament_cost": [
|
||||||
|
"20"
|
||||||
|
],
|
||||||
|
"filament_retraction_length": [
|
||||||
|
"0.4"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_initial_layer": [
|
||||||
|
"240"
|
||||||
|
],
|
||||||
|
"reduce_fan_stop_start_freq": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"slow_down_for_layer_cooling": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"fan_max_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"fan_min_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"overhang_fan_speed": [
|
||||||
|
"100"
|
||||||
|
],
|
||||||
|
"additional_cooling_fan_speed": [
|
||||||
|
"70"
|
||||||
|
],
|
||||||
|
"close_fan_the_first_x_layers": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"nozzle_temperature": [
|
||||||
|
"240"
|
||||||
|
],
|
||||||
|
"temperature_vitrification": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_low": [
|
||||||
|
"200"
|
||||||
|
],
|
||||||
|
"nozzle_temperature_range_high": [
|
||||||
|
"250"
|
||||||
|
],
|
||||||
|
"filament_start_gcode": [
|
||||||
|
"; filament start gcode\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"type": "machine",
|
||||||
|
"name": "LH Stinger 0.4 nozzle",
|
||||||
|
"inherits": "fdm_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_m01_04",
|
||||||
|
"instantiation": "true",
|
||||||
|
"printer_model": "LH Stinger",
|
||||||
|
"nozzle_diameter": [
|
||||||
|
"0.4"
|
||||||
|
],
|
||||||
|
"default_filament_profile": [
|
||||||
|
"LHS PLA"
|
||||||
|
],
|
||||||
|
"printer_variant": "0.4"
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"type": "machine",
|
||||||
|
"name": "LH Stinger MMU 0.4 nozzle",
|
||||||
|
"inherits": "fdm_lh_mmu_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_m01_mmu_04",
|
||||||
|
"instantiation": "true",
|
||||||
|
"printer_model": "LH Stinger MMU",
|
||||||
|
"nozzle_diameter": [
|
||||||
|
"0.4"
|
||||||
|
],
|
||||||
|
"default_filament_profile": [
|
||||||
|
"LHS PLA"
|
||||||
|
],
|
||||||
|
"printer_variant": "0.4"
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"type": "machine_model",
|
||||||
|
"name": "LH Stinger MMU",
|
||||||
|
"model_id": "LHS_M_mmu",
|
||||||
|
"nozzle_diameter": "0.4",
|
||||||
|
"machine_tech": "FFF",
|
||||||
|
"family": "LH",
|
||||||
|
"bed_model": "LH_Stinger_buildplate_model.STL",
|
||||||
|
"bed_texture": "LH_Stinger_MMU_buildplate_texture.png",
|
||||||
|
"hotend_model": "",
|
||||||
|
"default_materials": "LHS PLA;LHS PETG;LHS PCTG;LHS ASA;LHS ABS;LHS PC CF;LHS TPU Foamy 78A;LHS TPU;"
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"type": "machine_model",
|
||||||
|
"name": "LH Stinger",
|
||||||
|
"model_id": "LHS_M_base",
|
||||||
|
"nozzle_diameter": "0.4",
|
||||||
|
"machine_tech": "FFF",
|
||||||
|
"family": "LH",
|
||||||
|
"bed_model": "LH_Stinger_buildplate_model.STL",
|
||||||
|
"bed_texture": "LH_Stinger_buildplate_texture.png",
|
||||||
|
"hotend_model": "",
|
||||||
|
"default_materials": "LHS PLA;LHS PETG;LHS PCTG;LHS ASA;LHS ABS;LHS PC CF;LHS TPU Foamy 78A;LHS TPU;"
|
||||||
|
}
|
||||||
@@ -0,0 +1,157 @@
|
|||||||
|
{
|
||||||
|
"type": "machine",
|
||||||
|
"name": "fdm_lh_common",
|
||||||
|
"inherits": "fdm_machine_common",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "false",
|
||||||
|
"gcode_flavor": "klipper",
|
||||||
|
"machine_max_acceleration_e": [
|
||||||
|
"5000",
|
||||||
|
"5000"
|
||||||
|
],
|
||||||
|
"machine_max_acceleration_extruding": [
|
||||||
|
"200000",
|
||||||
|
"20000"
|
||||||
|
],
|
||||||
|
"machine_max_acceleration_retracting": [
|
||||||
|
"200000",
|
||||||
|
"5000"
|
||||||
|
],
|
||||||
|
"machine_max_acceleration_travel": [
|
||||||
|
"20000",
|
||||||
|
"20000"
|
||||||
|
],
|
||||||
|
"machine_max_acceleration_x": [
|
||||||
|
"200000",
|
||||||
|
"20000"
|
||||||
|
],
|
||||||
|
"machine_max_acceleration_y": [
|
||||||
|
"200000",
|
||||||
|
"20000"
|
||||||
|
],
|
||||||
|
"machine_max_acceleration_z": [
|
||||||
|
"2000",
|
||||||
|
"200"
|
||||||
|
],
|
||||||
|
"machine_max_speed_e": [
|
||||||
|
"200",
|
||||||
|
"25"
|
||||||
|
],
|
||||||
|
"machine_max_speed_x": [
|
||||||
|
"1000",
|
||||||
|
"200"
|
||||||
|
],
|
||||||
|
"machine_max_speed_y": [
|
||||||
|
"1000",
|
||||||
|
"200"
|
||||||
|
],
|
||||||
|
"machine_max_speed_z": [
|
||||||
|
"100",
|
||||||
|
"12"
|
||||||
|
],
|
||||||
|
"machine_max_jerk_e": [
|
||||||
|
"15",
|
||||||
|
"2.5"
|
||||||
|
],
|
||||||
|
"machine_max_jerk_x": [
|
||||||
|
"15",
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
"machine_max_jerk_y": [
|
||||||
|
"15",
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
"machine_max_jerk_z": [
|
||||||
|
"15",
|
||||||
|
"0.4"
|
||||||
|
],
|
||||||
|
"machine_min_extruding_rate": [
|
||||||
|
"0",
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"machine_min_travel_rate": [
|
||||||
|
"0",
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"max_layer_height": [
|
||||||
|
"0.32"
|
||||||
|
],
|
||||||
|
"min_layer_height": [
|
||||||
|
"0.08"
|
||||||
|
],
|
||||||
|
"printable_area": [
|
||||||
|
"18x38",
|
||||||
|
"218x38",
|
||||||
|
"218x238",
|
||||||
|
"18x238"
|
||||||
|
],
|
||||||
|
"printable_height": "180",
|
||||||
|
"extruder_clearance_radius": "65",
|
||||||
|
"extruder_clearance_height_to_rod": "36",
|
||||||
|
"extruder_clearance_height_to_lid": "140",
|
||||||
|
"printer_settings_id": "",
|
||||||
|
"printer_technology": "FFF",
|
||||||
|
"printer_variant": "0.4",
|
||||||
|
"retraction_minimum_travel": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"retract_before_wipe": [
|
||||||
|
"70%"
|
||||||
|
],
|
||||||
|
"retract_when_changing_layer": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"retraction_length": [
|
||||||
|
"0.3"
|
||||||
|
],
|
||||||
|
"retract_length_toolchange": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"z_hop": [
|
||||||
|
"0.2"
|
||||||
|
],
|
||||||
|
"retract_restart_extra": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"retract_restart_extra_toolchange": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"retraction_speed": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"deretraction_speed": [
|
||||||
|
"30"
|
||||||
|
],
|
||||||
|
"retract_lift_enforce": [
|
||||||
|
"Top and Bottom"
|
||||||
|
],
|
||||||
|
"z_hop_types": [
|
||||||
|
"Auto Lift"
|
||||||
|
],
|
||||||
|
"silent_mode": "0",
|
||||||
|
"single_extruder_multi_material": "1",
|
||||||
|
"change_filament_gcode": "",
|
||||||
|
"manual_filament_change": "1",
|
||||||
|
"wipe": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"default_filament_profile": [
|
||||||
|
"LH Generic PLA"
|
||||||
|
],
|
||||||
|
"enable_filament_ramming": "0",
|
||||||
|
"default_print_profile": "0.20mm Daily @LH Stinger",
|
||||||
|
"bed_exclude_area": [
|
||||||
|
"0x0"
|
||||||
|
],
|
||||||
|
"machine_start_gcode": "PRINT_START_LHS BED=[bed_temperature_initial_layer_single] HOTEND=[nozzle_temperature_initial_layer] AUTOMESH=1 AUTOPURGE=1 QUIETMODE={if print_preset =~ /.*Quiet.*/ }1{else}0{endif}\n",
|
||||||
|
"machine_end_gcode": "PRINT_END",
|
||||||
|
"layer_change_gcode": ";AFTER_LAYER_CHANGES\n;[layer_z]",
|
||||||
|
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
|
||||||
|
"machine_pause_gcode": "PAUSE",
|
||||||
|
"scan_first_layer": "0",
|
||||||
|
"nozzle_type": [
|
||||||
|
"brass"
|
||||||
|
],
|
||||||
|
"bed_temperature_formula": "by_first_filament",
|
||||||
|
"auxiliary_fan": "1"
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"type": "machine",
|
||||||
|
"name": "fdm_lh_mmu_common",
|
||||||
|
"inherits": "fdm_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "false",
|
||||||
|
"cooling_tube_length": "0",
|
||||||
|
"cooling_tube_retraction": "0",
|
||||||
|
"enable_filament_ramming": "0",
|
||||||
|
"extra_loading_move": "0",
|
||||||
|
"machine_start_gcode": " _SP_PRINT_START LANE=[initial_tool] TEMP=[nozzle_temperature_initial_layer]\n\nPRINT_START_LHS BED=[bed_temperature_initial_layer_single] HOTEND=[nozzle_temperature_initial_layer] AUTOMESH=1 AUTOPURGE=1 QUIETMODE={if print_preset =~ /.*Quiet.*/ }1{else}0{endif}\n\n",
|
||||||
|
"change_filament_gcode": " _SP_SET_PURGE PURGE=[first_flush_volume] ",
|
||||||
|
"layer_change_gcode": ";AFTER_LAYER_CHANGES\n;[layer_z]",
|
||||||
|
"machine_end_gcode": "PRINT_END\n\n_SP_PRINT_END",
|
||||||
|
"machine_tool_change_time": "20",
|
||||||
|
"parking_pos_retraction": "0",
|
||||||
|
"manual_filament_change": "0",
|
||||||
|
"retract_length_toolchange": [
|
||||||
|
"0"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,119 @@
|
|||||||
|
{
|
||||||
|
"type": "machine",
|
||||||
|
"name": "fdm_machine_common",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "false",
|
||||||
|
"printer_technology": "FFF",
|
||||||
|
"deretraction_speed": [
|
||||||
|
"40"
|
||||||
|
],
|
||||||
|
"extruder_colour": [
|
||||||
|
"#FCE94F"
|
||||||
|
],
|
||||||
|
"extruder_offset": [
|
||||||
|
"0x0"
|
||||||
|
],
|
||||||
|
"gcode_flavor": "marlin",
|
||||||
|
"silent_mode": "0",
|
||||||
|
"machine_max_acceleration_e": [
|
||||||
|
"5000"
|
||||||
|
],
|
||||||
|
"machine_max_acceleration_extruding": [
|
||||||
|
"10000"
|
||||||
|
],
|
||||||
|
"machine_max_acceleration_retracting": [
|
||||||
|
"1000"
|
||||||
|
],
|
||||||
|
"machine_max_acceleration_x": [
|
||||||
|
"10000"
|
||||||
|
],
|
||||||
|
"machine_max_acceleration_y": [
|
||||||
|
"10000"
|
||||||
|
],
|
||||||
|
"machine_max_acceleration_z": [
|
||||||
|
"500"
|
||||||
|
],
|
||||||
|
"machine_max_speed_e": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"machine_max_speed_x": [
|
||||||
|
"500"
|
||||||
|
],
|
||||||
|
"machine_max_speed_y": [
|
||||||
|
"500"
|
||||||
|
],
|
||||||
|
"machine_max_speed_z": [
|
||||||
|
"10"
|
||||||
|
],
|
||||||
|
"machine_max_jerk_e": [
|
||||||
|
"5"
|
||||||
|
],
|
||||||
|
"machine_max_jerk_x": [
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
"machine_max_jerk_y": [
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
"machine_max_jerk_z": [
|
||||||
|
"0.4"
|
||||||
|
],
|
||||||
|
"machine_min_extruding_rate": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"machine_min_travel_rate": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"max_layer_height": [
|
||||||
|
"0.32"
|
||||||
|
],
|
||||||
|
"min_layer_height": [
|
||||||
|
"0.08"
|
||||||
|
],
|
||||||
|
"printable_height": "250",
|
||||||
|
"extruder_clearance_radius": "65",
|
||||||
|
"extruder_clearance_height_to_rod": "36",
|
||||||
|
"extruder_clearance_height_to_lid": "140",
|
||||||
|
"nozzle_diameter": [
|
||||||
|
"0.4"
|
||||||
|
],
|
||||||
|
"printer_settings_id": "",
|
||||||
|
"printer_variant": "0.4",
|
||||||
|
"retraction_minimum_travel": [
|
||||||
|
"2"
|
||||||
|
],
|
||||||
|
"retract_before_wipe": [
|
||||||
|
"70%"
|
||||||
|
],
|
||||||
|
"retract_when_changing_layer": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"retraction_length": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"retract_length_toolchange": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"z_hop": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"retract_restart_extra": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"retract_restart_extra_toolchange": [
|
||||||
|
"0"
|
||||||
|
],
|
||||||
|
"retraction_speed": [
|
||||||
|
"60"
|
||||||
|
],
|
||||||
|
"single_extruder_multi_material": "1",
|
||||||
|
"change_filament_gcode": "",
|
||||||
|
"wipe": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"default_print_profile": "",
|
||||||
|
"machine_start_gcode": "G0 Z20 F9000\nG92 E0; G1 E-10 F1200\nG28\nM970 Q1 A10 B10 C130 K0\nM970 Q1 A10 B131 C250 K1\nM974 Q1 S1 P0\nM970 Q0 A10 B10 C130 H20 K0\nM970 Q0 A10 B131 C250 K1\nM974 Q0 S1 P0\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nG29 ;Home\nG90;\nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM109 S205;\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder \nG1 X110 Y110 Z2.0 F3000 ;Move Z Axis up",
|
||||||
|
"machine_end_gcode": "M400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-4.0 F3600; retract \nG91\nG1 Z3;\nM104 S0 ; turn off hotend\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nG90 \nG0 X110 Y200 F3600 \nprint_end",
|
||||||
|
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
|
||||||
|
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
|
||||||
|
"machine_pause_gcode": "M601"
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "0.10mm HueForge @LH Stinger",
|
||||||
|
"inherits": "fdm_process_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_P_hueforge",
|
||||||
|
"instantiation": "true",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"bottom_shell_layers": "999",
|
||||||
|
"bottom_solid_infill_flow_ratio": "0.98",
|
||||||
|
"detect_narrow_internal_solid_infill": "0",
|
||||||
|
"ensure_vertical_shell_thickness": "none",
|
||||||
|
"initial_layer_acceleration": "1000",
|
||||||
|
"initial_layer_infill_speed": "150",
|
||||||
|
"initial_layer_print_height": "0.16",
|
||||||
|
"initial_layer_speed": "80",
|
||||||
|
"layer_height": "0.1",
|
||||||
|
"max_travel_detour_distance": "60",
|
||||||
|
"print_extruder_id": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"print_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"reduce_crossing_wall": "1",
|
||||||
|
"skirt_loops": "1",
|
||||||
|
"slice_closing_radius": "0.042",
|
||||||
|
"sparse_infill_density": "0%",
|
||||||
|
"top_bottom_infill_wall_overlap": "15%",
|
||||||
|
"top_shell_layers": "0",
|
||||||
|
"top_solid_infill_flow_ratio": "0.98",
|
||||||
|
"brim_type": "no_brim",
|
||||||
|
"wall_generator": "arachne",
|
||||||
|
"wall_sequence": "inner wall/outer wall",
|
||||||
|
"reduce_infill_retraction": "1",
|
||||||
|
"gap_fill_target": "nowhere",
|
||||||
|
"filter_out_gap_fill": "0.5",
|
||||||
|
"wall_loops": "1"
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "0.14mm Detail @LH Stinger",
|
||||||
|
"inherits": "fdm_process_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_P_detail",
|
||||||
|
"instantiation": "true",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"bottom_shell_layers": "5",
|
||||||
|
"bridge_flow": "1.2",
|
||||||
|
"default_jerk": "10",
|
||||||
|
"enable_support": "1",
|
||||||
|
"ensure_vertical_shell_thickness": "ensure_moderate",
|
||||||
|
"filter_out_gap_fill": "10",
|
||||||
|
"infill_jerk": "10",
|
||||||
|
"infill_wall_overlap": "10%",
|
||||||
|
"initial_layer_infill_speed": "90",
|
||||||
|
"initial_layer_jerk": "10",
|
||||||
|
"initial_layer_travel_speed": "250",
|
||||||
|
"inner_wall_jerk": "10",
|
||||||
|
"internal_bridge_flow": "1.2",
|
||||||
|
"layer_height": "0.14",
|
||||||
|
"max_travel_detour_distance": "50",
|
||||||
|
"outer_wall_jerk": "10",
|
||||||
|
"print_extruder_id": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"print_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"reduce_crossing_wall": "1",
|
||||||
|
"skirt_loops": "2",
|
||||||
|
"slow_down_layers": "2",
|
||||||
|
"small_perimeter_speed": "75%",
|
||||||
|
"small_perimeter_threshold": "3",
|
||||||
|
"sparse_infill_pattern": "rectilinear",
|
||||||
|
"sparse_infill_density": "15%",
|
||||||
|
"support_angle": "45",
|
||||||
|
"support_base_pattern": "rectilinear",
|
||||||
|
"support_base_pattern_spacing": "1.5",
|
||||||
|
"support_bottom_z_distance": "0.15",
|
||||||
|
"support_style": "organic",
|
||||||
|
"support_type": "tree(auto)",
|
||||||
|
"top_shell_layers": "6",
|
||||||
|
"top_surface_jerk": "10",
|
||||||
|
"wall_generator": "arachne",
|
||||||
|
"min_length_factor": "0.5",
|
||||||
|
"gap_fill_target": "nowhere",
|
||||||
|
"wall_loops": "3",
|
||||||
|
"travel_jerk": "10"
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "0.14mm Detail Strength @LH Stinger",
|
||||||
|
"inherits": "fdm_process_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_P_detail_strength",
|
||||||
|
"instantiation": "true",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"bottom_shell_layers": "6",
|
||||||
|
"bottom_shell_thickness": "0.8",
|
||||||
|
"bridge_acceleration": "7500",
|
||||||
|
"bridge_flow": "1.2",
|
||||||
|
"brim_width": "3",
|
||||||
|
"default_acceleration": "15000",
|
||||||
|
"default_jerk": "10",
|
||||||
|
"gap_infill_speed": "200",
|
||||||
|
"infill_anchor": "1000",
|
||||||
|
"infill_anchor_max": "1000",
|
||||||
|
"infill_jerk": "10",
|
||||||
|
"initial_layer_infill_speed": "90",
|
||||||
|
"initial_layer_jerk": "10",
|
||||||
|
"initial_layer_travel_speed": "250",
|
||||||
|
"inner_wall_acceleration": "10000",
|
||||||
|
"inner_wall_speed": "200",
|
||||||
|
"inner_wall_jerk": "10",
|
||||||
|
"internal_solid_infill_acceleration": "15000",
|
||||||
|
"internal_solid_infill_speed": "200",
|
||||||
|
"layer_height": "0.14",
|
||||||
|
"max_travel_detour_distance": "50",
|
||||||
|
"outer_wall_acceleration": "7500",
|
||||||
|
"outer_wall_jerk": "10",
|
||||||
|
"outer_wall_speed": "200",
|
||||||
|
"print_extruder_id": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"print_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"reduce_crossing_wall": "1",
|
||||||
|
"skirt_loops": "2",
|
||||||
|
"slow_down_layers": "2",
|
||||||
|
"small_perimeter_speed": "75%",
|
||||||
|
"small_perimeter_threshold": "3",
|
||||||
|
"sparse_infill_acceleration": "15000",
|
||||||
|
"sparse_infill_speed": "200",
|
||||||
|
"sparse_infill_density": "40%",
|
||||||
|
"sparse_infill_pattern": "gyroid",
|
||||||
|
"support_base_pattern_spacing": "1.5",
|
||||||
|
"support_bottom_interface_spacing": "0.3",
|
||||||
|
"support_bottom_z_distance": "0.15",
|
||||||
|
"support_interface_speed": "300",
|
||||||
|
"support_speed": "200",
|
||||||
|
"support_type": "normal(manual)",
|
||||||
|
"top_shell_layers": "7",
|
||||||
|
"top_shell_thickness": "1",
|
||||||
|
"top_surface_acceleration": "7500",
|
||||||
|
"top_surface_jerk": "10",
|
||||||
|
"top_surface_speed": "200",
|
||||||
|
"travel_jerk": "10",
|
||||||
|
"wall_generator": "arachne",
|
||||||
|
"wall_sequence": "inner wall/outer wall",
|
||||||
|
"top_bottom_infill_wall_overlap": "25%",
|
||||||
|
"wall_loops": "4"
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "0.20mm Daily @LH Stinger",
|
||||||
|
"inherits": "fdm_process_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_P_daily",
|
||||||
|
"instantiation": "true",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "0.20mm MMU @LH Stinger",
|
||||||
|
"inherits": "fdm_process_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_P_mmu",
|
||||||
|
"instantiation": "true",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"bottom_surface_pattern": "monotonicline",
|
||||||
|
"bridge_acceleration": "7000",
|
||||||
|
"default_jerk": "10",
|
||||||
|
"detect_narrow_internal_solid_infill": "0",
|
||||||
|
"filter_out_gap_fill": "1",
|
||||||
|
"gap_infill_speed": "220",
|
||||||
|
"infill_jerk": "10",
|
||||||
|
"infill_wall_overlap": "8%",
|
||||||
|
"initial_layer_infill_speed": "120",
|
||||||
|
"initial_layer_jerk": "10",
|
||||||
|
"initial_layer_line_width": "0.4",
|
||||||
|
"inner_wall_acceleration": "15000",
|
||||||
|
"inner_wall_jerk": "10",
|
||||||
|
"inner_wall_speed": "220",
|
||||||
|
"internal_solid_infill_acceleration": "15000",
|
||||||
|
"internal_solid_infill_speed": "220",
|
||||||
|
"only_one_wall_first_layer": "1",
|
||||||
|
"outer_wall_jerk": "10",
|
||||||
|
"outer_wall_speed": "220",
|
||||||
|
"prime_tower_width": "80",
|
||||||
|
"print_extruder_id": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"print_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"raft_first_layer_density": "50%",
|
||||||
|
"small_perimeter_threshold": "2",
|
||||||
|
"sparse_infill_acceleration": "15000",
|
||||||
|
"sparse_infill_pattern": "rectilinear",
|
||||||
|
"sparse_infill_speed": "220",
|
||||||
|
"top_bottom_infill_wall_overlap": "8%",
|
||||||
|
"top_surface_jerk": "10",
|
||||||
|
"top_surface_speed": "150",
|
||||||
|
"wall_generator": "arachne",
|
||||||
|
"sparse_infill_density": "15%",
|
||||||
|
"travel_jerk": "10"
|
||||||
|
}
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "0.20mm PETG @LH Stinger",
|
||||||
|
"inherits": "fdm_process_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_P_petg",
|
||||||
|
"instantiation": "true",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"accel_to_decel_factor": "90%",
|
||||||
|
"bottom_shell_layers": "5",
|
||||||
|
"bridge_acceleration": "3000",
|
||||||
|
"bridge_density": "95%",
|
||||||
|
"bridge_flow": "1.1",
|
||||||
|
"bridge_speed": "30",
|
||||||
|
"brim_ears_max_angle": "180",
|
||||||
|
"brim_object_gap": "0.04",
|
||||||
|
"default_acceleration": "15000",
|
||||||
|
"default_jerk": "10",
|
||||||
|
"filter_out_gap_fill": "1",
|
||||||
|
"gap_infill_speed": "200",
|
||||||
|
"infill_jerk": "10",
|
||||||
|
"infill_wall_overlap": "10%",
|
||||||
|
"initial_layer_infill_speed": "100",
|
||||||
|
"initial_layer_jerk": "10",
|
||||||
|
"initial_layer_print_height": "0.25",
|
||||||
|
"initial_layer_travel_speed": "250",
|
||||||
|
"inner_wall_acceleration": "15000",
|
||||||
|
"inner_wall_speed": "200",
|
||||||
|
"inner_wall_jerk": "10",
|
||||||
|
"inner_wall_line_width": "0.44",
|
||||||
|
"internal_bridge_speed": "50",
|
||||||
|
"internal_solid_infill_acceleration": "15000",
|
||||||
|
"internal_solid_infill_speed": "200",
|
||||||
|
"internal_solid_infill_line_width": "0.44",
|
||||||
|
"line_width": "0.44",
|
||||||
|
"max_travel_detour_distance": "50",
|
||||||
|
"outer_wall_jerk": "10",
|
||||||
|
"outer_wall_line_width": "0.44",
|
||||||
|
"outer_wall_speed": "200",
|
||||||
|
"overhang_1_4_speed": "60%",
|
||||||
|
"overhang_2_4_speed": "40",
|
||||||
|
"overhang_3_4_speed": "20",
|
||||||
|
"overhang_reverse_internal_only": "1",
|
||||||
|
"overhang_reverse_threshold": "0%",
|
||||||
|
"print_extruder_id": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"print_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"raft_first_layer_density": "60%",
|
||||||
|
"reduce_crossing_wall": "1",
|
||||||
|
"skirt_loops": "2",
|
||||||
|
"slow_down_layers": "2",
|
||||||
|
"small_perimeter_threshold": "10",
|
||||||
|
"sparse_infill_acceleration": "15000",
|
||||||
|
"sparse_infill_speed": "200",
|
||||||
|
"sparse_infill_line_width": "0.44",
|
||||||
|
"support_interface_speed": "200",
|
||||||
|
"support_line_width": "0.42",
|
||||||
|
"support_speed": "200",
|
||||||
|
"top_bottom_infill_wall_overlap": "18%",
|
||||||
|
"top_shell_layers": "6",
|
||||||
|
"top_surface_acceleration": "5000",
|
||||||
|
"top_surface_jerk": "10",
|
||||||
|
"top_surface_speed": "130",
|
||||||
|
"travel_jerk": "10",
|
||||||
|
"wall_loops": "3",
|
||||||
|
"gap_fill_target": "nowhere",
|
||||||
|
"wipe_tower_max_purge_speed": "150"
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "0.20mm Quiet @LH Stinger",
|
||||||
|
"inherits": "fdm_process_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_P_quiet",
|
||||||
|
"instantiation": "true",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"accel_to_decel_factor": "75%",
|
||||||
|
"bridge_acceleration": "5000",
|
||||||
|
"bridge_speed": "40",
|
||||||
|
"default_acceleration": "10000",
|
||||||
|
"default_jerk": "5",
|
||||||
|
"filter_out_gap_fill": "10",
|
||||||
|
"gap_infill_speed": "200",
|
||||||
|
"infill_jerk": "5",
|
||||||
|
"infill_wall_overlap": "10%",
|
||||||
|
"initial_layer_infill_speed": "100",
|
||||||
|
"initial_layer_jerk": "5",
|
||||||
|
"initial_layer_travel_speed": "180",
|
||||||
|
"inner_wall_acceleration": "10000",
|
||||||
|
"inner_wall_jerk": "5",
|
||||||
|
"internal_bridge_speed": "60",
|
||||||
|
"internal_solid_infill_acceleration": "10000",
|
||||||
|
"outer_wall_acceleration": "5000",
|
||||||
|
"outer_wall_jerk": "5",
|
||||||
|
"outer_wall_speed": "200",
|
||||||
|
"print_extruder_id": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"print_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"raft_first_layer_density": "60%",
|
||||||
|
"sparse_infill_acceleration": "10000",
|
||||||
|
"sparse_infill_pattern": "rectilinear",
|
||||||
|
"support_interface_speed": "170",
|
||||||
|
"support_speed": "170",
|
||||||
|
"top_surface_jerk": "5",
|
||||||
|
"top_surface_speed": "200",
|
||||||
|
"inner_wall_speed": "200",
|
||||||
|
"sparse_infill_speed": "200",
|
||||||
|
"internal_solid_infill_speed": "200",
|
||||||
|
"travel_acceleration": "10000",
|
||||||
|
"travel_jerk": "5",
|
||||||
|
"sparse_infill_density": "15%",
|
||||||
|
"accel_to_decel_enable": "1",
|
||||||
|
"gap_fill_target": "nowhere",
|
||||||
|
"travel_speed": "200"
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "0.20mm Solid @LH Stinger",
|
||||||
|
"inherits": "fdm_process_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_P_solid",
|
||||||
|
"instantiation": "true",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"accel_to_decel_factor": "90%",
|
||||||
|
"bottom_shell_layers": "2",
|
||||||
|
"bridge_acceleration": "5000",
|
||||||
|
"bridge_density": "97%",
|
||||||
|
"brim_object_gap": "0.04",
|
||||||
|
"default_acceleration": "15000",
|
||||||
|
"default_jerk": "10",
|
||||||
|
"detect_narrow_internal_solid_infill": "0",
|
||||||
|
"enable_support": "1",
|
||||||
|
"ensure_vertical_shell_thickness": "none",
|
||||||
|
"filter_out_gap_fill": "2",
|
||||||
|
"gap_infill_speed": "200",
|
||||||
|
"infill_jerk": "10",
|
||||||
|
"infill_wall_overlap": "18%",
|
||||||
|
"initial_layer_jerk": "10",
|
||||||
|
"initial_layer_line_width": "0.45",
|
||||||
|
"initial_layer_print_height": "0.25",
|
||||||
|
"inner_wall_acceleration": "15000",
|
||||||
|
"inner_wall_jerk": "10",
|
||||||
|
"internal_solid_infill_acceleration": "15000",
|
||||||
|
"outer_wall_jerk": "10",
|
||||||
|
"outer_wall_speed": "200",
|
||||||
|
"overhang_1_4_speed": "60%",
|
||||||
|
"overhang_2_4_speed": "40",
|
||||||
|
"overhang_3_4_speed": "20",
|
||||||
|
"print_extruder_id": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"print_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"raft_first_layer_density": "60%",
|
||||||
|
"small_perimeter_threshold": "7",
|
||||||
|
"sparse_infill_acceleration": "15000",
|
||||||
|
"sparse_infill_density": "98%",
|
||||||
|
"sparse_infill_pattern": "rectilinear",
|
||||||
|
"support_interface_speed": "200",
|
||||||
|
"support_speed": "200",
|
||||||
|
"top_shell_layers": "2",
|
||||||
|
"top_shell_thickness": "0.6",
|
||||||
|
"top_solid_infill_flow_ratio": "0.96",
|
||||||
|
"top_surface_acceleration": "5000",
|
||||||
|
"top_surface_jerk": "10",
|
||||||
|
"top_surface_speed": "150",
|
||||||
|
"inner_wall_speed": "200",
|
||||||
|
"sparse_infill_speed": "200",
|
||||||
|
"internal_solid_infill_speed": "200",
|
||||||
|
"internal_bridge_density": "95%",
|
||||||
|
"internal_bridge_speed": "150",
|
||||||
|
"gap_fill_target": "nowhere",
|
||||||
|
"wall_loops": "3",
|
||||||
|
"travel_jerk": "10"
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "0.20mm Speed @LH Stinger",
|
||||||
|
"inherits": "fdm_process_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_P_speed",
|
||||||
|
"instantiation": "true",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"bridge_acceleration": "15000",
|
||||||
|
"default_acceleration": "30000",
|
||||||
|
"filter_out_gap_fill": "10",
|
||||||
|
"infill_wall_overlap": "10%",
|
||||||
|
"initial_layer_speed": "90",
|
||||||
|
"inner_wall_acceleration": "30000",
|
||||||
|
"inner_wall_speed": "600",
|
||||||
|
"internal_solid_infill_acceleration": "30000",
|
||||||
|
"internal_solid_infill_speed": "600",
|
||||||
|
"outer_wall_acceleration": "15000",
|
||||||
|
"outer_wall_speed": "600",
|
||||||
|
"print_extruder_id": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"print_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"raft_first_layer_density": "80%",
|
||||||
|
"sparse_infill_acceleration": "30000",
|
||||||
|
"sparse_infill_pattern": "rectilinear",
|
||||||
|
"sparse_infill_speed": "600",
|
||||||
|
"support_bottom_z_distance": "0.15",
|
||||||
|
"support_expansion": "2",
|
||||||
|
"support_interface_top_layers": "3",
|
||||||
|
"support_object_xy_distance": "0.25",
|
||||||
|
"top_surface_acceleration": "15000",
|
||||||
|
"top_surface_speed": "300",
|
||||||
|
"travel_acceleration": "30000",
|
||||||
|
"sparse_infill_density": "15%",
|
||||||
|
"gap_fill_target": "nowhere",
|
||||||
|
"travel_speed": "600"
|
||||||
|
}
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "0.20mm Strength @LH Stinger",
|
||||||
|
"inherits": "fdm_process_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_P_strength",
|
||||||
|
"instantiation": "true",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"accel_to_decel_factor": "90%",
|
||||||
|
"bottom_shell_layers": "5",
|
||||||
|
"bridge_acceleration": "5000",
|
||||||
|
"bridge_flow": "1.4",
|
||||||
|
"brim_object_gap": "0.04",
|
||||||
|
"default_acceleration": "15000",
|
||||||
|
"default_jerk": "10",
|
||||||
|
"filter_out_gap_fill": "1",
|
||||||
|
"gap_infill_speed": "200",
|
||||||
|
"infill_anchor": "1000",
|
||||||
|
"infill_anchor_max": "1000",
|
||||||
|
"infill_jerk": "10",
|
||||||
|
"initial_layer_infill_speed": "120",
|
||||||
|
"initial_layer_jerk": "10",
|
||||||
|
"initial_layer_speed": "90",
|
||||||
|
"initial_layer_travel_speed": "250",
|
||||||
|
"inner_wall_acceleration": "15000",
|
||||||
|
"inner_wall_jerk": "10",
|
||||||
|
"inner_wall_line_width": "0.46",
|
||||||
|
"internal_solid_infill_acceleration": "15000",
|
||||||
|
"internal_solid_infill_line_width": "0.46",
|
||||||
|
"line_width": "0.46",
|
||||||
|
"outer_wall_jerk": "10",
|
||||||
|
"outer_wall_line_width": "0.46",
|
||||||
|
"outer_wall_speed": "200",
|
||||||
|
"overhang_1_4_speed": "60%",
|
||||||
|
"overhang_2_4_speed": "40",
|
||||||
|
"overhang_3_4_speed": "20",
|
||||||
|
"precise_outer_wall": "0",
|
||||||
|
"print_extruder_id": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"print_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"sparse_infill_acceleration": "15000",
|
||||||
|
"sparse_infill_density": "40%",
|
||||||
|
"sparse_infill_line_width": "0.46",
|
||||||
|
"sparse_infill_pattern": "gyroid",
|
||||||
|
"support_bottom_z_distance": "0.15",
|
||||||
|
"support_interface_speed": "200",
|
||||||
|
"support_line_width": "0.42",
|
||||||
|
"support_speed": "200",
|
||||||
|
"top_shell_layers": "6",
|
||||||
|
"top_shell_thickness": "1",
|
||||||
|
"top_surface_acceleration": "5000",
|
||||||
|
"top_surface_jerk": "10",
|
||||||
|
"top_surface_speed": "200",
|
||||||
|
"inner_wall_speed": "200",
|
||||||
|
"sparse_infill_speed": "200",
|
||||||
|
"internal_solid_infill_speed": "200",
|
||||||
|
"travel_jerk": "10",
|
||||||
|
"wall_sequence": "inner wall/outer wall",
|
||||||
|
"wall_loops": "4"
|
||||||
|
}
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "0.20mm TPU @LH Stinger",
|
||||||
|
"inherits": "fdm_process_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_P_tpu",
|
||||||
|
"instantiation": "true",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"accel_to_decel_factor": "90%",
|
||||||
|
"bridge_acceleration": "5000",
|
||||||
|
"bridge_density": "95%",
|
||||||
|
"bridge_flow": "1.4",
|
||||||
|
"bridge_speed": "40",
|
||||||
|
"brim_ears_max_angle": "180",
|
||||||
|
"brim_object_gap": "0.02",
|
||||||
|
"default_acceleration": "15000",
|
||||||
|
"default_jerk": "5",
|
||||||
|
"elefant_foot_compensation": "0.15",
|
||||||
|
"filter_out_gap_fill": "40",
|
||||||
|
"gap_infill_speed": "200",
|
||||||
|
"infill_jerk": "5",
|
||||||
|
"initial_layer_infill_speed": "70",
|
||||||
|
"initial_layer_jerk": "5",
|
||||||
|
"initial_layer_print_height": "0.25",
|
||||||
|
"initial_layer_speed": "40",
|
||||||
|
"initial_layer_travel_speed": "200",
|
||||||
|
"inner_wall_acceleration": "15000",
|
||||||
|
"inner_wall_jerk": "5",
|
||||||
|
"inner_wall_line_width": "0.46",
|
||||||
|
"internal_bridge_flow": "1.2",
|
||||||
|
"internal_bridge_speed": "50",
|
||||||
|
"internal_solid_infill_acceleration": "15000",
|
||||||
|
"internal_solid_infill_line_width": "0.46",
|
||||||
|
"internal_solid_infill_speed": "180",
|
||||||
|
"line_width": "0.46",
|
||||||
|
"max_travel_detour_distance": "50",
|
||||||
|
"outer_wall_jerk": "5",
|
||||||
|
"outer_wall_line_width": "0.46",
|
||||||
|
"outer_wall_speed": "150",
|
||||||
|
"overhang_1_4_speed": "60%",
|
||||||
|
"overhang_2_4_speed": "40",
|
||||||
|
"overhang_3_4_speed": "20",
|
||||||
|
"print_extruder_id": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"print_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"raft_first_layer_density": "80%",
|
||||||
|
"reduce_crossing_wall": "1",
|
||||||
|
"skirt_loops": "2",
|
||||||
|
"slow_down_layers": "2",
|
||||||
|
"small_perimeter_speed": "60%",
|
||||||
|
"small_perimeter_threshold": "10",
|
||||||
|
"sparse_infill_acceleration": "15000",
|
||||||
|
"sparse_infill_line_width": "0.46",
|
||||||
|
"sparse_infill_speed": "150",
|
||||||
|
"sparse_infill_density": "15%",
|
||||||
|
"staggered_inner_seams": "1",
|
||||||
|
"support_expansion": "2",
|
||||||
|
"support_interface_speed": "200",
|
||||||
|
"support_line_width": "0.42",
|
||||||
|
"support_speed": "200",
|
||||||
|
"top_bottom_infill_wall_overlap": "18%",
|
||||||
|
"top_surface_acceleration": "5000",
|
||||||
|
"top_surface_jerk": "5",
|
||||||
|
"top_surface_line_width": "0.42",
|
||||||
|
"top_surface_speed": "150",
|
||||||
|
"travel_jerk": "10",
|
||||||
|
"wipe_speed": "80",
|
||||||
|
"inner_wall_speed": "200",
|
||||||
|
"ensure_vertical_shell_thickness": "ensure_moderate",
|
||||||
|
"wall_sequence": "inner wall/outer wall",
|
||||||
|
"wall_loops": "3",
|
||||||
|
"gap_fill_target": "nowhere",
|
||||||
|
"reduce_infill_retraction": "1",
|
||||||
|
"infill_wall_overlap": "22%",
|
||||||
|
"wipe_tower_max_purge_speed": "80"
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "0.25mm Vase Mode @LH Stinger",
|
||||||
|
"inherits": "fdm_process_lh_common",
|
||||||
|
"from": "system",
|
||||||
|
"setting_id": "LHS_P_vase_mode",
|
||||||
|
"instantiation": "true",
|
||||||
|
"compatible_printers": [
|
||||||
|
"LH Stinger 0.4 nozzle",
|
||||||
|
"LH Stinger MMU 0.4 nozzle"
|
||||||
|
],
|
||||||
|
"accel_to_decel_factor": "90%",
|
||||||
|
"bottom_shell_layers": "5",
|
||||||
|
"bridge_acceleration": "5000",
|
||||||
|
"bridge_flow": "1.4",
|
||||||
|
"brim_object_gap": "0.04",
|
||||||
|
"default_acceleration": "15000",
|
||||||
|
"default_jerk": "10",
|
||||||
|
"filter_out_gap_fill": "1",
|
||||||
|
"gap_infill_speed": "200",
|
||||||
|
"infill_jerk": "10",
|
||||||
|
"infill_wall_overlap": "10%",
|
||||||
|
"initial_layer_jerk": "10",
|
||||||
|
"initial_layer_line_width": "0.65",
|
||||||
|
"initial_layer_print_height": "0.25",
|
||||||
|
"initial_layer_speed": "80",
|
||||||
|
"initial_layer_travel_speed": "250",
|
||||||
|
"inner_wall_acceleration": "15000",
|
||||||
|
"inner_wall_jerk": "10",
|
||||||
|
"inner_wall_line_width": "0.46",
|
||||||
|
"internal_solid_infill_acceleration": "15000",
|
||||||
|
"internal_solid_infill_line_width": "0.46",
|
||||||
|
"layer_height": "0.25",
|
||||||
|
"line_width": "0.46",
|
||||||
|
"notes": "Decrease your Filament - Minimum layer time to ~2 seconds and set your fan speeds to be constant",
|
||||||
|
"outer_wall_jerk": "10",
|
||||||
|
"outer_wall_line_width": "0.65",
|
||||||
|
"outer_wall_speed": "200",
|
||||||
|
"overhang_1_4_speed": "60%",
|
||||||
|
"overhang_2_4_speed": "40",
|
||||||
|
"overhang_3_4_speed": "20",
|
||||||
|
"print_extruder_id": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"print_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
],
|
||||||
|
"sparse_infill_acceleration": "15000",
|
||||||
|
"sparse_infill_density": "0%",
|
||||||
|
"sparse_infill_line_width": "0.46",
|
||||||
|
"sparse_infill_pattern": "3dhoneycomb",
|
||||||
|
"spiral_mode": "1",
|
||||||
|
"spiral_mode_smooth": "1",
|
||||||
|
"support_interface_speed": "200",
|
||||||
|
"support_line_width": "0.42",
|
||||||
|
"support_speed": "200",
|
||||||
|
"top_bottom_infill_wall_overlap": "10%",
|
||||||
|
"top_shell_layers": "0",
|
||||||
|
"top_shell_thickness": "1",
|
||||||
|
"top_surface_acceleration": "5000",
|
||||||
|
"top_surface_jerk": "10",
|
||||||
|
"top_surface_speed": "200",
|
||||||
|
"inner_wall_speed": "200",
|
||||||
|
"sparse_infill_speed": "200",
|
||||||
|
"internal_solid_infill_speed": "200",
|
||||||
|
"wall_sequence": "inner wall/outer wall",
|
||||||
|
"travel_jerk": "10",
|
||||||
|
"skirt_loops": "1",
|
||||||
|
"wall_loops": "1"
|
||||||
|
}
|
||||||
@@ -0,0 +1,108 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "fdm_process_common",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "false",
|
||||||
|
"adaptive_layer_height": "0",
|
||||||
|
"reduce_crossing_wall": "0",
|
||||||
|
"max_travel_detour_distance": "0",
|
||||||
|
"bottom_surface_pattern": "monotonic",
|
||||||
|
"bottom_shell_thickness": "0",
|
||||||
|
"bridge_speed": "50",
|
||||||
|
"brim_width": "5",
|
||||||
|
"brim_object_gap": "0.1",
|
||||||
|
"compatible_printers": [],
|
||||||
|
"compatible_printers_condition": "",
|
||||||
|
"print_sequence": "by layer",
|
||||||
|
"default_acceleration": "1000",
|
||||||
|
"initial_layer_acceleration": "500",
|
||||||
|
"top_surface_acceleration": "1000",
|
||||||
|
"travel_acceleration": "1000",
|
||||||
|
"inner_wall_acceleration": "1000",
|
||||||
|
"outer_wall_acceleration": "700",
|
||||||
|
"bridge_no_support": "0",
|
||||||
|
"draft_shield": "disabled",
|
||||||
|
"elefant_foot_compensation": "0",
|
||||||
|
"enable_arc_fitting": "0",
|
||||||
|
"wall_infill_order": "inner wall/outer wall/infill",
|
||||||
|
"infill_direction": "45",
|
||||||
|
"sparse_infill_density": "15%",
|
||||||
|
"sparse_infill_pattern": "crosshatch",
|
||||||
|
"initial_layer_print_height": "0.2",
|
||||||
|
"infill_combination": "0",
|
||||||
|
"infill_wall_overlap": "25%",
|
||||||
|
"interface_shells": "0",
|
||||||
|
"ironing_flow": "10%",
|
||||||
|
"ironing_spacing": "0.15",
|
||||||
|
"ironing_speed": "30",
|
||||||
|
"ironing_type": "no ironing",
|
||||||
|
"reduce_infill_retraction": "1",
|
||||||
|
"filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode",
|
||||||
|
"detect_overhang_wall": "1",
|
||||||
|
"slowdown_for_curled_perimeters": "1",
|
||||||
|
"overhang_1_4_speed": "0",
|
||||||
|
"overhang_2_4_speed": "50",
|
||||||
|
"overhang_3_4_speed": "30",
|
||||||
|
"overhang_4_4_speed": "10",
|
||||||
|
"line_width": "110%",
|
||||||
|
"inner_wall_line_width": "110%",
|
||||||
|
"outer_wall_line_width": "100%",
|
||||||
|
"top_surface_line_width": "93.75%",
|
||||||
|
"sparse_infill_line_width": "110%",
|
||||||
|
"initial_layer_line_width": "120%",
|
||||||
|
"internal_solid_infill_line_width": "120%",
|
||||||
|
"support_line_width": "96%",
|
||||||
|
"wall_loops": "3",
|
||||||
|
"print_settings_id": "",
|
||||||
|
"raft_layers": "0",
|
||||||
|
"seam_position": "aligned",
|
||||||
|
"skirt_distance": "2",
|
||||||
|
"skirt_height": "3",
|
||||||
|
"min_skirt_length": "4",
|
||||||
|
"skirt_loops": "0",
|
||||||
|
"minimum_sparse_infill_area": "15",
|
||||||
|
"spiral_mode": "0",
|
||||||
|
"standby_temperature_delta": "-5",
|
||||||
|
"enable_support": "0",
|
||||||
|
"resolution": "0.012",
|
||||||
|
"support_type": "normal(auto)",
|
||||||
|
"support_on_build_plate_only": "0",
|
||||||
|
"support_top_z_distance": "0.2",
|
||||||
|
"support_bottom_z_distance": "0.2",
|
||||||
|
"support_filament": "0",
|
||||||
|
"support_interface_loop_pattern": "0",
|
||||||
|
"support_interface_filament": "0",
|
||||||
|
"support_interface_top_layers": "2",
|
||||||
|
"support_interface_bottom_layers": "2",
|
||||||
|
"support_interface_spacing": "0.5",
|
||||||
|
"support_interface_speed": "80",
|
||||||
|
"support_base_pattern": "default",
|
||||||
|
"support_base_pattern_spacing": "2.5",
|
||||||
|
"support_speed": "150",
|
||||||
|
"support_threshold_angle": "30",
|
||||||
|
"support_object_xy_distance": "0.35",
|
||||||
|
"tree_support_branch_angle": "30",
|
||||||
|
"tree_support_wall_count": "0",
|
||||||
|
"tree_support_with_infill": "0",
|
||||||
|
"detect_thin_wall": "0",
|
||||||
|
"top_surface_pattern": "monotonicline",
|
||||||
|
"top_shell_thickness": "0.8",
|
||||||
|
"enable_prime_tower": "0",
|
||||||
|
"wipe_tower_no_sparse_layers": "0",
|
||||||
|
"prime_tower_width": "60",
|
||||||
|
"xy_hole_compensation": "0",
|
||||||
|
"xy_contour_compensation": "0",
|
||||||
|
"layer_height": "0.2",
|
||||||
|
"bottom_shell_layers": "3",
|
||||||
|
"top_shell_layers": "4",
|
||||||
|
"bridge_flow": "1",
|
||||||
|
"initial_layer_speed": "45",
|
||||||
|
"initial_layer_infill_speed": "45",
|
||||||
|
"outer_wall_speed": "45",
|
||||||
|
"inner_wall_speed": "80",
|
||||||
|
"sparse_infill_speed": "150",
|
||||||
|
"internal_solid_infill_speed": "150",
|
||||||
|
"top_surface_speed": "50",
|
||||||
|
"gap_infill_speed": "30",
|
||||||
|
"travel_speed": "200"
|
||||||
|
}
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"name": "fdm_process_lh_common",
|
||||||
|
"inherits": "fdm_process_common",
|
||||||
|
"from": "system",
|
||||||
|
"instantiation": "false",
|
||||||
|
"exclude_object": "1",
|
||||||
|
"accel_to_decel_enable": "0",
|
||||||
|
"bottom_shell_layers": "4",
|
||||||
|
"bridge_acceleration": "10000",
|
||||||
|
"bridge_density": "100%",
|
||||||
|
"brim_object_gap": "0.05",
|
||||||
|
"brim_width": "4",
|
||||||
|
"default_acceleration": "20000",
|
||||||
|
"dont_filter_internal_bridges": "limited",
|
||||||
|
"elefant_foot_compensation": "0.05",
|
||||||
|
"ensure_vertical_shell_thickness": "ensure_critical_only",
|
||||||
|
"filter_out_gap_fill": "1",
|
||||||
|
"gap_fill_target": "everywhere",
|
||||||
|
"gap_infill_speed": "400",
|
||||||
|
"independent_support_layer_height": "0",
|
||||||
|
"infill_jerk": "15",
|
||||||
|
"infill_wall_overlap": "15%",
|
||||||
|
"top_bottom_infill_wall_overlap": "22%",
|
||||||
|
"initial_layer_acceleration": "600",
|
||||||
|
"initial_layer_infill_speed": "140",
|
||||||
|
"initial_layer_jerk": "15",
|
||||||
|
"initial_layer_line_width": "0.5",
|
||||||
|
"initial_layer_speed": "60",
|
||||||
|
"initial_layer_travel_speed": "300",
|
||||||
|
"inner_wall_acceleration": "20000",
|
||||||
|
"inner_wall_jerk": "15",
|
||||||
|
"inner_wall_line_width": "0.4",
|
||||||
|
"inner_wall_speed": "400",
|
||||||
|
"internal_bridge_speed": "70",
|
||||||
|
"internal_solid_infill_acceleration": "20000",
|
||||||
|
"internal_solid_infill_line_width": "0.4",
|
||||||
|
"internal_solid_infill_speed": "400",
|
||||||
|
"ironing_flow": "19%",
|
||||||
|
"ironing_inset": "0.3",
|
||||||
|
"ironing_speed": "50",
|
||||||
|
"line_width": "0.4",
|
||||||
|
"min_bead_width": "75%",
|
||||||
|
"min_feature_size": "20%",
|
||||||
|
"min_length_factor": "1.5",
|
||||||
|
"min_width_top_surface": "200%",
|
||||||
|
"only_one_wall_top": "1",
|
||||||
|
"outer_wall_acceleration": "10000",
|
||||||
|
"outer_wall_jerk": "15",
|
||||||
|
"outer_wall_line_width": "0.4",
|
||||||
|
"outer_wall_speed": "400",
|
||||||
|
"overhang_1_4_speed": "70%",
|
||||||
|
"overhang_4_4_speed": "15",
|
||||||
|
"prime_tower_brim_width": "2",
|
||||||
|
"prime_tower_width": "80",
|
||||||
|
"prime_volume": "75",
|
||||||
|
"raft_first_layer_density": "70%",
|
||||||
|
"reduce_infill_retraction": "0",
|
||||||
|
"resolution": "0.01",
|
||||||
|
"role_based_wipe_speed": "0",
|
||||||
|
"seam_gap": "0",
|
||||||
|
"skirt_distance": "8",
|
||||||
|
"skirt_height": "1",
|
||||||
|
"skirt_speed": "100",
|
||||||
|
"skirt_start_angle": "-25",
|
||||||
|
"slice_closing_radius": "0.04",
|
||||||
|
"slowdown_for_curled_perimeters": "0",
|
||||||
|
"sparse_infill_acceleration": "20000",
|
||||||
|
"sparse_infill_density": "20%",
|
||||||
|
"sparse_infill_line_width": "0.4",
|
||||||
|
"sparse_infill_pattern": "3dhoneycomb",
|
||||||
|
"sparse_infill_speed": "400",
|
||||||
|
"support_angle": "135",
|
||||||
|
"support_base_pattern_spacing": "2",
|
||||||
|
"support_expansion": "1",
|
||||||
|
"support_interface_spacing": "0.3",
|
||||||
|
"support_interface_speed": "400",
|
||||||
|
"support_line_width": "0.4",
|
||||||
|
"support_object_xy_distance": "0.2",
|
||||||
|
"support_on_build_plate_only": "1",
|
||||||
|
"support_speed": "400",
|
||||||
|
"support_style": "snug",
|
||||||
|
"support_top_z_distance": "0.15",
|
||||||
|
"thick_internal_bridges": "0",
|
||||||
|
"top_shell_layers": "5",
|
||||||
|
"top_surface_acceleration": "10000",
|
||||||
|
"top_surface_jerk": "15",
|
||||||
|
"top_surface_line_width": "0.4",
|
||||||
|
"top_surface_speed": "250",
|
||||||
|
"travel_acceleration": "20000",
|
||||||
|
"travel_jerk": "15",
|
||||||
|
"travel_speed": "400",
|
||||||
|
"wall_generator": "classic",
|
||||||
|
"wall_loops": "2",
|
||||||
|
"wall_sequence": "outer wall/inner wall",
|
||||||
|
"wipe_speed": "150",
|
||||||
|
"wipe_tower_bridging": "15",
|
||||||
|
"wipe_tower_extra_flow": "120%",
|
||||||
|
"wipe_tower_max_purge_speed": "200",
|
||||||
|
"enable_prime_tower": "1",
|
||||||
|
"precise_outer_wall": "0",
|
||||||
|
"print_extruder_id": [
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
"brim_type": "auto_brim",
|
||||||
|
"print_extruder_variant": [
|
||||||
|
"Direct Drive Standard"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -6,7 +6,9 @@
|
|||||||
"from": "system",
|
"from": "system",
|
||||||
"instantiation": "true",
|
"instantiation": "true",
|
||||||
"inherits": "fdm_filament_pet",
|
"inherits": "fdm_filament_pet",
|
||||||
"filament_type": "PP",
|
"filament_type": [
|
||||||
|
"PP"
|
||||||
|
],
|
||||||
"nozzle_temperature_initial_layer": [
|
"nozzle_temperature_initial_layer": [
|
||||||
"185"
|
"185"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -360,6 +360,50 @@ CONFLICT_KEYS = [
|
|||||||
['extruder_clearance_radius', 'extruder_clearance_max_radius'],
|
['extruder_clearance_radius', 'extruder_clearance_max_radius'],
|
||||||
]
|
]
|
||||||
|
|
||||||
|
VECTOR_KEYS = {
|
||||||
|
"filament_type",
|
||||||
|
}
|
||||||
|
|
||||||
|
def check_vector_type_keys(profiles_dir, vendor_name):
|
||||||
|
"""
|
||||||
|
Check that properties expected to be vectors (JSON arrays) are not stored as scalars.
|
||||||
|
For example, `filament_type` must be a list like ["PA-CF"], not a string "PA-CF".
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
profiles_dir (Path): Base profiles directory
|
||||||
|
vendor_name (str): Vendor name
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
int: Number of errors found
|
||||||
|
"""
|
||||||
|
error_count = 0
|
||||||
|
vendor_path = profiles_dir / vendor_name
|
||||||
|
|
||||||
|
if not vendor_path.exists():
|
||||||
|
return 0
|
||||||
|
|
||||||
|
for file_path in vendor_path.rglob("*.json"):
|
||||||
|
try:
|
||||||
|
with open(file_path, "r", encoding="UTF-8") as fp:
|
||||||
|
data = json.load(fp)
|
||||||
|
except Exception as e:
|
||||||
|
print_error(f"Error processing {file_path.relative_to(profiles_dir)}: {e}")
|
||||||
|
error_count += 1
|
||||||
|
continue
|
||||||
|
|
||||||
|
if not isinstance(data, dict):
|
||||||
|
continue
|
||||||
|
|
||||||
|
for key in VECTOR_KEYS:
|
||||||
|
if key in data and not isinstance(data[key], list):
|
||||||
|
print_error(
|
||||||
|
f"'{key}' must be an array in {file_path.relative_to(profiles_dir)}, "
|
||||||
|
f"got {type(data[key]).__name__}: {data[key]!r}"
|
||||||
|
)
|
||||||
|
error_count += 1
|
||||||
|
|
||||||
|
return error_count
|
||||||
|
|
||||||
def check_conflict_keys(profiles_dir, vendor_name):
|
def check_conflict_keys(profiles_dir, vendor_name):
|
||||||
"""
|
"""
|
||||||
Check for keys that could not be specified at the same time,
|
Check for keys that could not be specified at the same time,
|
||||||
@@ -448,6 +492,8 @@ def main():
|
|||||||
errors_found += new_errors
|
errors_found += new_errors
|
||||||
warnings_found += new_warnings
|
warnings_found += new_warnings
|
||||||
|
|
||||||
|
errors_found += check_vector_type_keys(profiles_dir, vendor_name)
|
||||||
|
|
||||||
errors_found += check_filament_id(vendor_name, vendor_path / "filament")
|
errors_found += check_filament_id(vendor_name, vendor_path / "filament")
|
||||||
checked_vendor_count += 1
|
checked_vendor_count += 1
|
||||||
|
|
||||||
|
|||||||
@@ -132,6 +132,7 @@ def update_profile_library(vendor="",profile_type="filament"):
|
|||||||
library[profile_section] = sorted_profiles
|
library[profile_section] = sorted_profiles
|
||||||
f.seek(0)
|
f.seek(0)
|
||||||
json.dump(library, f, indent="\t", ensure_ascii=False)
|
json.dump(library, f, indent="\t", ensure_ascii=False)
|
||||||
|
f.write('\n')
|
||||||
f.truncate()
|
f.truncate()
|
||||||
|
|
||||||
print(f"Profile library for {vendor} updated successfully!")
|
print(f"Profile library for {vendor} updated successfully!")
|
||||||
@@ -230,6 +231,7 @@ def clean_up_profile(vendor="", profile_type="", force=False):
|
|||||||
f.seek(0)
|
f.seek(0)
|
||||||
ordered_profile = create_ordered_profile(_profile, ['type', 'name', 'renamed_from', 'inherits', 'from', 'setting_id', 'filament_id', 'instantiation'])
|
ordered_profile = create_ordered_profile(_profile, ['type', 'name', 'renamed_from', 'inherits', 'from', 'setting_id', 'filament_id', 'instantiation'])
|
||||||
json.dump(ordered_profile, f, indent="\t", ensure_ascii=False)
|
json.dump(ordered_profile, f, indent="\t", ensure_ascii=False)
|
||||||
|
f.write('\n')
|
||||||
f.truncate()
|
f.truncate()
|
||||||
print(f"Updated profile: {full_path}")
|
print(f"Updated profile: {full_path}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -274,6 +276,7 @@ def rename_filament_system(vendor="OrcaFilamentLibrary"):
|
|||||||
if modified:
|
if modified:
|
||||||
with open(full_path, 'w', encoding='utf-8') as f:
|
with open(full_path, 'w', encoding='utf-8') as f:
|
||||||
json.dump(data, f, indent="\t", ensure_ascii=False)
|
json.dump(data, f, indent="\t", ensure_ascii=False)
|
||||||
|
f.write('\n')
|
||||||
print(f"Updated {full_path}")
|
print(f"Updated {full_path}")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@@ -66,9 +66,240 @@ static std::unique_ptr<noise::module::Module> get_noise_module(const FuzzySkinCo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// Ripple noise — deterministic sine-wave displacement along the path arc length.
|
||||||
|
//
|
||||||
|
// Unlike the other noise types, the ripple pattern is driven by cumulative arc
|
||||||
|
// length along the print path rather than world-space (x, y, z) coordinates.
|
||||||
|
// This gives a uniform wave period regardless of the polygon's geometry.
|
||||||
|
//
|
||||||
|
// A consistent visual anchor is established by finding the leftmost Y=0 crossing
|
||||||
|
// of the polygon (the point where the sine wave always peaks when phase shift is
|
||||||
|
// zero), ensuring the pattern aligns across layers.
|
||||||
|
//
|
||||||
|
// Per-layer-group phase shifting works as follows:
|
||||||
|
// period_index = floor(layer_id / layers_between_ripple_offset)
|
||||||
|
// phase_shift = period_index * ripple_offset * 2π [radians]
|
||||||
|
//
|
||||||
|
// Setting layers_between_ripple_offset = 1 shifts the phase on every layer;
|
||||||
|
// setting it to N makes N consecutive layers share the same pattern.
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Compute the per-layer-group phase shift in radians.
|
||||||
|
static double ripple_phase_shift_rad(const FuzzySkinConfig& cfg)
|
||||||
|
{
|
||||||
|
if (cfg.ripple_offset == 0.0 || cfg.layers_between_ripple_offset <= 0)
|
||||||
|
return 0.0;
|
||||||
|
|
||||||
|
const int effective_layer = std::max(cfg.layer_id, 0);
|
||||||
|
const int period_index = effective_layer / std::max(cfg.layers_between_ripple_offset, 1);
|
||||||
|
const double raw_shift = period_index * cfg.ripple_offset * (2.0 * M_PI);
|
||||||
|
return fmod(raw_shift, 2.0 * M_PI);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find the arc-length (in mm) of the visual anchor point along the polygon perimeter.
|
||||||
|
// The anchor is the leftmost Y=0 crossing, falling back to the vertex with the
|
||||||
|
// smallest |y| if no crossing exists. The anchor is where sin(phase) = 1 (a peak)
|
||||||
|
// when the phase shift is zero, giving a stable reference across layers.
|
||||||
|
static double ripple_anchor_arc_mm(const Points& poly)
|
||||||
|
{
|
||||||
|
const size_t np = poly.size();
|
||||||
|
|
||||||
|
// Find anchor world position: leftmost Y=0 crossing.
|
||||||
|
Vec2d anchor_world(std::numeric_limits<double>::max(), std::numeric_limits<double>::max());
|
||||||
|
bool found_crossing = false;
|
||||||
|
for (size_t i = 0; i < np; ++i) {
|
||||||
|
const double ya = unscale_(poly[i].y());
|
||||||
|
const double yb = unscale_(poly[(i + 1) % np].y());
|
||||||
|
if ((ya <= 0.0 && yb >= 0.0) || (ya >= 0.0 && yb <= 0.0)) {
|
||||||
|
const double t = (std::abs(yb - ya) < 1e-9) ? 0.0 : ya / (ya - yb);
|
||||||
|
const double x_cross = unscale_(poly[i].x()) +
|
||||||
|
std::max(0.0, std::min(1.0, t)) * (unscale_(poly[(i + 1) % np].x()) - unscale_(poly[i].x()));
|
||||||
|
if (!found_crossing || x_cross < anchor_world.x()) {
|
||||||
|
anchor_world = Vec2d(x_cross, 0.0);
|
||||||
|
found_crossing = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found_crossing) {
|
||||||
|
double best_abs_y = std::numeric_limits<double>::max();
|
||||||
|
for (const Point& p : poly) {
|
||||||
|
const double ay = std::abs(unscale_(p.y()));
|
||||||
|
if (ay < best_abs_y) {
|
||||||
|
best_abs_y = ay;
|
||||||
|
anchor_world = Vec2d(unscale_(p.x()), unscale_(p.y()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find the arc-length of the closest point on the polyline to anchor_world.
|
||||||
|
double anchor_arc_mm = 0.0;
|
||||||
|
double best_dist_sq = std::numeric_limits<double>::max();
|
||||||
|
double accum_mm = 0.0;
|
||||||
|
for (size_t i = 0; i < np; ++i) {
|
||||||
|
const Vec2d pa_mm(unscale_(poly[i].x()), unscale_(poly[i].y()));
|
||||||
|
const Vec2d pb_mm(unscale_(poly[(i + 1) % np].x()), unscale_(poly[(i + 1) % np].y()));
|
||||||
|
const Vec2d seg = pb_mm - pa_mm;
|
||||||
|
const double seg_len = seg.norm();
|
||||||
|
if (seg_len > 1e-9) {
|
||||||
|
const double t = std::max(0.0, std::min(1.0, (anchor_world - pa_mm).dot(seg) / (seg_len * seg_len)));
|
||||||
|
const double dist_sq = (pa_mm + seg * t - anchor_world).squaredNorm();
|
||||||
|
if (dist_sq < best_dist_sq) {
|
||||||
|
best_dist_sq = dist_sq;
|
||||||
|
anchor_arc_mm = accum_mm + t * seg_len;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
accum_mm += seg_len;
|
||||||
|
}
|
||||||
|
return anchor_arc_mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply a sine-wave ripple displacement to a closed polygon.
|
||||||
|
// Points are resampled at cfg.point_distance intervals along the perimeter.
|
||||||
|
static void fuzzy_polyline_ripple(Points& poly, const FuzzySkinConfig& cfg)
|
||||||
|
{
|
||||||
|
const double amplitude = unscale_(cfg.thickness);
|
||||||
|
const double N = static_cast<double>(cfg.ripples_per_layer);
|
||||||
|
const double fill_step_mm = unscale_(cfg.point_distance);
|
||||||
|
|
||||||
|
if (N <= 0.0 || fill_step_mm < 1e-6)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Compute total perimeter length in mm.
|
||||||
|
const size_t np = poly.size();
|
||||||
|
double perimeter_mm = 0.0;
|
||||||
|
for (size_t i = 0; i < np; ++i)
|
||||||
|
perimeter_mm += unscale_((poly[(i + 1) % np] - poly[i]).cast<double>().norm());
|
||||||
|
|
||||||
|
if (perimeter_mm < 1e-6)
|
||||||
|
return;
|
||||||
|
|
||||||
|
const double anchor_arc_mm = ripple_anchor_arc_mm(poly);
|
||||||
|
const double phase_shift_rad = ripple_phase_shift_rad(cfg);
|
||||||
|
|
||||||
|
// Phase function: φ(s) = N·2π·(s - anchor_arc) / perimeter + π/2 + phase_shift
|
||||||
|
// Adding π/2 ensures sin(φ) = 1 at the anchor when phase_shift = 0 (a peak).
|
||||||
|
const double phase_at_anchor = M_PI * 2.0 + phase_shift_rad;
|
||||||
|
auto arc_phase = [&](double arc_mm) -> double { return N * (2.0 * M_PI) * (arc_mm - anchor_arc_mm) / perimeter_mm + phase_at_anchor; };
|
||||||
|
|
||||||
|
Points out;
|
||||||
|
out.reserve(static_cast<size_t>(perimeter_mm / fill_step_mm) + np * 2);
|
||||||
|
|
||||||
|
double accum_mm = 0.0;
|
||||||
|
for (size_t i = 0; i < np; ++i) {
|
||||||
|
const Point& p0 = poly[i];
|
||||||
|
const Point& p1 = poly[(i + 1) % np];
|
||||||
|
const Vec2d seg = (p1 - p0).cast<double>();
|
||||||
|
const double seg_len = seg.norm();
|
||||||
|
if (seg_len < EPSILON)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
const double seg_len_mm = unscale_(seg_len);
|
||||||
|
const Vec2d seg_unit = seg / seg_len;
|
||||||
|
const Vec2d seg_perp = perp(seg_unit);
|
||||||
|
const double seg_end_mm = accum_mm + seg_len_mm;
|
||||||
|
const double first_s = std::ceil(accum_mm / fill_step_mm) * fill_step_mm;
|
||||||
|
|
||||||
|
for (double s = first_s; s < seg_end_mm; s += fill_step_mm) {
|
||||||
|
const double t = (s - accum_mm) / seg_len_mm;
|
||||||
|
const double disp = std::sin(arc_phase(s)) * amplitude;
|
||||||
|
const Point pt = p0 + (seg * t).cast<coord_t>();
|
||||||
|
out.emplace_back(pt + (seg_perp * scale_(disp)).cast<coord_t>());
|
||||||
|
}
|
||||||
|
|
||||||
|
accum_mm = seg_end_mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (out.size() < 3)
|
||||||
|
out.emplace_back(poly[poly.size() - 2]);
|
||||||
|
|
||||||
|
if (out.size() >= 3)
|
||||||
|
poly = std::move(out);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply a sine-wave ripple displacement to an Arachne extrusion line.
|
||||||
|
// Mirrors fuzzy_polyline_ripple but operates on ExtrusionJunction vectors so
|
||||||
|
// that per-point line width (j.w) is preserved correctly.
|
||||||
|
static void fuzzy_extrusion_line_ripple(Arachne::ExtrusionJunctions& ext_lines, const FuzzySkinConfig& cfg)
|
||||||
|
{
|
||||||
|
const double amplitude = unscale_(cfg.thickness);
|
||||||
|
const double N = static_cast<double>(cfg.ripples_per_layer);
|
||||||
|
const double fill_step_mm = unscale_(cfg.point_distance);
|
||||||
|
|
||||||
|
if (N <= 0.0 || fill_step_mm < 1e-6)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Build a Points vector for perimeter/anchor calculations.
|
||||||
|
Points poly;
|
||||||
|
poly.reserve(ext_lines.size());
|
||||||
|
for (const auto& j : ext_lines)
|
||||||
|
poly.push_back(j.p);
|
||||||
|
|
||||||
|
// Compute total length in mm.
|
||||||
|
const size_t np = poly.size();
|
||||||
|
double perimeter_mm = 0.0;
|
||||||
|
for (size_t i = 0; i + 1 < np; ++i)
|
||||||
|
perimeter_mm += unscale_((poly[i + 1] - poly[i]).cast<double>().norm());
|
||||||
|
|
||||||
|
if (perimeter_mm < 1e-6)
|
||||||
|
return;
|
||||||
|
|
||||||
|
const double anchor_arc_mm = ripple_anchor_arc_mm(poly);
|
||||||
|
const double phase_shift_rad = ripple_phase_shift_rad(cfg);
|
||||||
|
const double phase_at_anchor = M_PI * 2.0 + phase_shift_rad;
|
||||||
|
|
||||||
|
auto arc_phase = [&](double arc_mm) -> double { return N * (2.0 * M_PI) * (arc_mm - anchor_arc_mm) / perimeter_mm + phase_at_anchor; };
|
||||||
|
|
||||||
|
Arachne::ExtrusionJunctions out;
|
||||||
|
out.reserve(static_cast<size_t>(perimeter_mm / fill_step_mm) + np * 2);
|
||||||
|
|
||||||
|
double accum_mm = 0.0;
|
||||||
|
for (size_t i = 0; i + 1 < np; ++i) {
|
||||||
|
const Arachne::ExtrusionJunction& j0 = ext_lines[i];
|
||||||
|
const Arachne::ExtrusionJunction& j1 = ext_lines[i + 1];
|
||||||
|
const Vec2d seg = (j1.p - j0.p).cast<double>();
|
||||||
|
const double seg_len = seg.norm();
|
||||||
|
if (seg_len < EPSILON)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
const double seg_len_mm = unscale_(seg_len);
|
||||||
|
const Vec2d seg_unit = seg / seg_len;
|
||||||
|
const Vec2d seg_perp = perp(seg_unit);
|
||||||
|
const double seg_end_mm = accum_mm + seg_len_mm;
|
||||||
|
const double first_s = std::ceil(accum_mm / fill_step_mm) * fill_step_mm;
|
||||||
|
|
||||||
|
for (double s = first_s; s < seg_end_mm; s += fill_step_mm) {
|
||||||
|
const double t = (s - accum_mm) / seg_len_mm;
|
||||||
|
const double disp = std::sin(arc_phase(s)) * amplitude;
|
||||||
|
const Point pt = j0.p + (seg * t).cast<coord_t>();
|
||||||
|
out.emplace_back(pt + (seg_perp * scale_(disp)).cast<coord_t>(), j1.w, j1.perimeter_index);
|
||||||
|
}
|
||||||
|
|
||||||
|
accum_mm = seg_end_mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (out.size() < 3) {
|
||||||
|
size_t point_idx = ext_lines.size() - 2;
|
||||||
|
out.emplace_back(ext_lines[point_idx].p, ext_lines[point_idx].w, ext_lines[point_idx].perimeter_index);
|
||||||
|
if (point_idx == 0)
|
||||||
|
break;
|
||||||
|
--point_idx;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (out.size() >= 3)
|
||||||
|
ext_lines = std::move(out);
|
||||||
|
}
|
||||||
|
|
||||||
// Thanks Cura developers for this function.
|
// Thanks Cura developers for this function.
|
||||||
void fuzzy_polyline(Points& poly, bool closed, coordf_t slice_z, const FuzzySkinConfig& cfg)
|
void fuzzy_polyline(Points& poly, bool closed, coordf_t slice_z, const FuzzySkinConfig& cfg)
|
||||||
{
|
{
|
||||||
|
if (cfg.noise_type == NoiseType::Ripple) {
|
||||||
|
if (poly.size() < 3)
|
||||||
|
return;
|
||||||
|
fuzzy_polyline_ripple(poly, cfg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
std::unique_ptr<noise::module::Module> noise = get_noise_module(cfg);
|
std::unique_ptr<noise::module::Module> noise = get_noise_module(cfg);
|
||||||
|
|
||||||
const double min_dist_between_points = cfg.point_distance * 3. / 4.; // hardcoded: the point distance may vary between 3/4 and 5/4 the supplied value
|
const double min_dist_between_points = cfg.point_distance * 3. / 4.; // hardcoded: the point distance may vary between 3/4 and 5/4 the supplied value
|
||||||
@@ -113,6 +344,14 @@ void fuzzy_polyline(Points& poly, bool closed, coordf_t slice_z, const FuzzySkin
|
|||||||
// Thanks Cura developers for this function.
|
// Thanks Cura developers for this function.
|
||||||
void fuzzy_extrusion_line(Arachne::ExtrusionJunctions& ext_lines, coordf_t slice_z, const FuzzySkinConfig& cfg, bool closed)
|
void fuzzy_extrusion_line(Arachne::ExtrusionJunctions& ext_lines, coordf_t slice_z, const FuzzySkinConfig& cfg, bool closed)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (cfg.noise_type == NoiseType::Ripple) {
|
||||||
|
if (ext_lines.size() < 3)
|
||||||
|
return;
|
||||||
|
fuzzy_extrusion_line_ripple(ext_lines, cfg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
std::unique_ptr<noise::module::Module> noise = get_noise_module(cfg);
|
std::unique_ptr<noise::module::Module> noise = get_noise_module(cfg);
|
||||||
|
|
||||||
const double min_dist_between_points = cfg.point_distance * 3. / 4.; // hardcoded: the point distance may vary between 3/4 and 5/4 the supplied value
|
const double min_dist_between_points = cfg.point_distance * 3. / 4.; // hardcoded: the point distance may vary between 3/4 and 5/4 the supplied value
|
||||||
@@ -190,7 +429,11 @@ void group_region_by_fuzzify(PerimeterGenerator& g)
|
|||||||
region_config.fuzzy_skin_scale,
|
region_config.fuzzy_skin_scale,
|
||||||
region_config.fuzzy_skin_octaves,
|
region_config.fuzzy_skin_octaves,
|
||||||
region_config.fuzzy_skin_persistence,
|
region_config.fuzzy_skin_persistence,
|
||||||
region_config.fuzzy_skin_mode};
|
region_config.fuzzy_skin_mode,
|
||||||
|
region_config.fuzzy_skin_ripples_per_layer,
|
||||||
|
region_config.fuzzy_skin_ripple_offset,
|
||||||
|
region_config.fuzzy_skin_layers_between_ripple_offset,
|
||||||
|
g.layer_id};
|
||||||
auto& surfaces = regions[cfg];
|
auto& surfaces = regions[cfg];
|
||||||
for (const auto& surface : region->slices.surfaces) {
|
for (const auto& surface : region->slices.surfaces) {
|
||||||
surfaces.push_back(&surface);
|
surfaces.push_back(&surface);
|
||||||
|
|||||||
@@ -21,6 +21,10 @@ struct FuzzySkinConfig
|
|||||||
int noise_octaves;
|
int noise_octaves;
|
||||||
double noise_persistence;
|
double noise_persistence;
|
||||||
FuzzySkinMode mode;
|
FuzzySkinMode mode;
|
||||||
|
int ripples_per_layer;
|
||||||
|
double ripple_offset;
|
||||||
|
int layers_between_ripple_offset;
|
||||||
|
int layer_id;
|
||||||
|
|
||||||
bool operator==(const FuzzySkinConfig& r) const
|
bool operator==(const FuzzySkinConfig& r) const
|
||||||
{
|
{
|
||||||
@@ -32,7 +36,10 @@ struct FuzzySkinConfig
|
|||||||
&& noise_scale == r.noise_scale
|
&& noise_scale == r.noise_scale
|
||||||
&& noise_octaves == r.noise_octaves
|
&& noise_octaves == r.noise_octaves
|
||||||
&& noise_persistence == r.noise_persistence
|
&& noise_persistence == r.noise_persistence
|
||||||
&& mode == r.mode;
|
&& mode == r.mode
|
||||||
|
&& ripples_per_layer == r.ripples_per_layer
|
||||||
|
&& ripple_offset == r.ripple_offset
|
||||||
|
&& layers_between_ripple_offset == r.layers_between_ripple_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator!=(const FuzzySkinConfig& r) const { return !(*this == r); }
|
bool operator!=(const FuzzySkinConfig& r) const { return !(*this == r); }
|
||||||
@@ -52,6 +59,10 @@ template<> struct hash<Slic3r::FuzzySkinConfig>
|
|||||||
boost::hash_combine(seed, std::hash<double>{}(c.noise_scale));
|
boost::hash_combine(seed, std::hash<double>{}(c.noise_scale));
|
||||||
boost::hash_combine(seed, std::hash<int>{}(c.noise_octaves));
|
boost::hash_combine(seed, std::hash<int>{}(c.noise_octaves));
|
||||||
boost::hash_combine(seed, std::hash<double>{}(c.noise_persistence));
|
boost::hash_combine(seed, std::hash<double>{}(c.noise_persistence));
|
||||||
|
boost::hash_combine(seed, std::hash<Slic3r::FuzzySkinMode>{}(c.mode));
|
||||||
|
boost::hash_combine(seed, std::hash<int>{}(c.ripples_per_layer));
|
||||||
|
boost::hash_combine(seed, std::hash<double>{}(c.ripple_offset));
|
||||||
|
boost::hash_combine(seed, std::hash<int>{}(c.layers_between_ripple_offset));
|
||||||
return seed;
|
return seed;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1043,7 +1043,7 @@ static std::vector<std::string> s_Preset_print_options{
|
|||||||
"support_ironing_flow",
|
"support_ironing_flow",
|
||||||
"support_ironing_spacing",
|
"support_ironing_spacing",
|
||||||
"max_travel_detour_distance",
|
"max_travel_detour_distance",
|
||||||
"fuzzy_skin", "fuzzy_skin_thickness", "fuzzy_skin_point_distance", "fuzzy_skin_first_layer", "fuzzy_skin_noise_type", "fuzzy_skin_mode", "fuzzy_skin_scale", "fuzzy_skin_octaves", "fuzzy_skin_persistence",
|
"fuzzy_skin", "fuzzy_skin_thickness", "fuzzy_skin_point_distance", "fuzzy_skin_first_layer", "fuzzy_skin_noise_type", "fuzzy_skin_mode", "fuzzy_skin_scale", "fuzzy_skin_octaves", "fuzzy_skin_persistence", "fuzzy_skin_ripples_per_layer", "fuzzy_skin_ripple_offset", "fuzzy_skin_layers_between_ripple_offset",
|
||||||
"max_volumetric_extrusion_rate_slope", "max_volumetric_extrusion_rate_slope_segment_length","extrusion_rate_smoothing_external_perimeter_only",
|
"max_volumetric_extrusion_rate_slope", "max_volumetric_extrusion_rate_slope_segment_length","extrusion_rate_smoothing_external_perimeter_only",
|
||||||
"inner_wall_speed", "outer_wall_speed", "sparse_infill_speed", "internal_solid_infill_speed",
|
"inner_wall_speed", "outer_wall_speed", "sparse_infill_speed", "internal_solid_infill_speed",
|
||||||
"top_surface_speed", "support_speed", "support_object_xy_distance", "support_object_first_layer_gap", "support_interface_speed",
|
"top_surface_speed", "support_speed", "support_object_xy_distance", "support_object_first_layer_gap", "support_interface_speed",
|
||||||
|
|||||||
@@ -4549,6 +4549,7 @@ std::pair<PresetsConfigSubstitutions, size_t> PresetBundle::load_vendor_configs_
|
|||||||
std::string version_str = it.value();
|
std::string version_str = it.value();
|
||||||
auto config_version = Semver::parse(version_str);
|
auto config_version = Semver::parse(version_str);
|
||||||
if (! config_version) {
|
if (! config_version) {
|
||||||
|
++m_errors;
|
||||||
throw ConfigurationError((boost::format("vendor %1%'s config version: %2% invalid\nSuggest cleaning the directory %3% firstly")
|
throw ConfigurationError((boost::format("vendor %1%'s config version: %2% invalid\nSuggest cleaning the directory %3% firstly")
|
||||||
% vendor_name % version_str % path).str());
|
% vendor_name % version_str % path).str());
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -183,7 +183,8 @@ static t_config_enum_values s_keys_map_NoiseType {
|
|||||||
{ "perlin", int(NoiseType::Perlin) },
|
{ "perlin", int(NoiseType::Perlin) },
|
||||||
{ "billow", int(NoiseType::Billow) },
|
{ "billow", int(NoiseType::Billow) },
|
||||||
{ "ridgedmulti", int(NoiseType::RidgedMulti) },
|
{ "ridgedmulti", int(NoiseType::RidgedMulti) },
|
||||||
{ "voronoi", int(NoiseType::Voronoi) }
|
{ "voronoi", int(NoiseType::Voronoi) },
|
||||||
|
{ "ripple", int(NoiseType::Ripple) }
|
||||||
};
|
};
|
||||||
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(NoiseType)
|
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(NoiseType)
|
||||||
|
|
||||||
@@ -696,10 +697,10 @@ void PrintConfigDef::init_common_params()
|
|||||||
def->set_default_value(new ConfigOptionInt(1));
|
def->set_default_value(new ConfigOptionInt(1));
|
||||||
|
|
||||||
def = this->add("elefant_foot_layers_density", coPercent);
|
def = this->add("elefant_foot_layers_density", coPercent);
|
||||||
def->label = L("Elefant foot layers density");
|
def->label = L("Elephant foot layers density");
|
||||||
def->category = L("Quality");
|
def->category = L("Quality");
|
||||||
def->tooltip = L("Density of internal solid infill for elefant foot layers compensation. "
|
def->tooltip = L("Density of internal solid infill for Elephant foot layers compensation.\n"
|
||||||
"The initial value for the second layer is set. "
|
"The initial value for the second layer is set.\n"
|
||||||
"Subsequent layers become linearly denser by the height specified in elefant_foot_compensation_layers.");
|
"Subsequent layers become linearly denser by the height specified in elefant_foot_compensation_layers.");
|
||||||
def->sidetext = "%";
|
def->sidetext = "%";
|
||||||
def->min = 50;
|
def->min = 50;
|
||||||
@@ -2191,6 +2192,7 @@ void PrintConfigDef::init_fff_params()
|
|||||||
"This setting changes all extrusion flow of this filament in G-code proportionally. "
|
"This setting changes all extrusion flow of this filament in G-code proportionally. "
|
||||||
"The recommended value range is between 0.95 and 1.05. "
|
"The recommended value range is between 0.95 and 1.05. "
|
||||||
"You may be able to tune this value to get a nice flat surface if there is slight overflow or underflow.");
|
"You may be able to tune this value to get a nice flat surface if there is slight overflow or underflow.");
|
||||||
|
def->min = 0;
|
||||||
def->max = 2;
|
def->max = 2;
|
||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
def->nullable = true;
|
def->nullable = true;
|
||||||
@@ -3369,7 +3371,7 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->tooltip = L("The width within which to jitter. It's advised to be below outer wall line width.");
|
def->tooltip = L("The width within which to jitter. It's advised to be below outer wall line width.");
|
||||||
def->sidetext = L("mm"); // millimeters, CIS languages need translation
|
def->sidetext = L("mm"); // millimeters, CIS languages need translation
|
||||||
def->min = 0;
|
def->min = 0;
|
||||||
def->max = 1;
|
def->max = 2;
|
||||||
def->mode = comSimple;
|
def->mode = comSimple;
|
||||||
def->set_default_value(new ConfigOptionFloat(0.2));
|
def->set_default_value(new ConfigOptionFloat(0.2));
|
||||||
|
|
||||||
@@ -3421,18 +3423,21 @@ void PrintConfigDef::init_fff_params()
|
|||||||
"Perlin: Perlin noise, which gives a more consistent texture.\n"
|
"Perlin: Perlin noise, which gives a more consistent texture.\n"
|
||||||
"Billow: Similar to perlin noise, but clumpier.\n"
|
"Billow: Similar to perlin noise, but clumpier.\n"
|
||||||
"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates marble-like textures.\n"
|
"Ridged Multifractal: Ridged noise with sharp, jagged features. Creates marble-like textures.\n"
|
||||||
"Voronoi: Divides the surface into voronoi cells, and displaces each one by a random amount. Creates a patchwork texture.");
|
"Voronoi: Divides the surface into voronoi cells, and displaces each one by a random amount. Creates a patchwork texture.\n"
|
||||||
|
"Ripple: Uniform ripple pattern that ripples left and right of the original path. Repeating pattern, woven appearance.");
|
||||||
def->enum_keys_map = &ConfigOptionEnum<NoiseType>::get_enum_values();
|
def->enum_keys_map = &ConfigOptionEnum<NoiseType>::get_enum_values();
|
||||||
def->enum_values.push_back("classic");
|
def->enum_values.push_back("classic");
|
||||||
def->enum_values.push_back("perlin");
|
def->enum_values.push_back("perlin");
|
||||||
def->enum_values.push_back("billow");
|
def->enum_values.push_back("billow");
|
||||||
def->enum_values.push_back("ridgedmulti");
|
def->enum_values.push_back("ridgedmulti");
|
||||||
def->enum_values.push_back("voronoi");
|
def->enum_values.push_back("voronoi");
|
||||||
|
def->enum_values.push_back("ripple");
|
||||||
def->enum_labels.push_back(L("Classic"));
|
def->enum_labels.push_back(L("Classic"));
|
||||||
def->enum_labels.push_back(L("Perlin"));
|
def->enum_labels.push_back(L("Perlin"));
|
||||||
def->enum_labels.push_back(L("Billow"));
|
def->enum_labels.push_back(L("Billow"));
|
||||||
def->enum_labels.push_back(L("Ridged Multifractal"));
|
def->enum_labels.push_back(L("Ridged Multifractal"));
|
||||||
def->enum_labels.push_back(L("Voronoi"));
|
def->enum_labels.push_back(L("Voronoi"));
|
||||||
|
def->enum_labels.push_back(L("Ripple"));
|
||||||
def->mode = comSimple;
|
def->mode = comSimple;
|
||||||
def->set_default_value(new ConfigOptionEnum<NoiseType>(NoiseType::Classic));
|
def->set_default_value(new ConfigOptionEnum<NoiseType>(NoiseType::Classic));
|
||||||
|
|
||||||
@@ -3464,6 +3469,38 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
def->set_default_value(new ConfigOptionFloat(0.5));
|
def->set_default_value(new ConfigOptionFloat(0.5));
|
||||||
|
|
||||||
|
def = this->add("fuzzy_skin_ripples_per_layer", coInt);
|
||||||
|
def->label = L("Number of ripples per layer");
|
||||||
|
def->category = L("Others");
|
||||||
|
def->tooltip = L("When using the Ripple noise type, this controls how many full cycles of ripples will be added per layer.");
|
||||||
|
def->min = 1;
|
||||||
|
def->mode = comAdvanced;
|
||||||
|
def->set_default_value(new ConfigOptionInt(15));
|
||||||
|
|
||||||
|
def = this->add("fuzzy_skin_ripple_offset", coFloat);
|
||||||
|
def->label = L("Ripple offset");
|
||||||
|
def->category = L("Others");
|
||||||
|
def->tooltip = L("When using the Ripple noise type, shifts the ripple pattern forward along the print path by this amount each "
|
||||||
|
"layer-period. A value of 0 keeps every layer identical. A value equal to 0.5 shifts by a full "
|
||||||
|
"half-wavelength, inverting the pattern. The shift is applied once per 'Layers between Ripple offset' layers, "
|
||||||
|
"so consecutive layers within a period are printed identically on top of each other.");
|
||||||
|
def->min = 0;
|
||||||
|
def->max = 1;
|
||||||
|
def->mode = comAdvanced;
|
||||||
|
def->set_default_value(new ConfigOptionFloat(0.5));
|
||||||
|
|
||||||
|
def = this->add("fuzzy_skin_layers_between_ripple_offset", coInt);
|
||||||
|
def->label = L("Layers between ripple offset");
|
||||||
|
def->category = L("Others");
|
||||||
|
def->tooltip = L("When using the Ripple noise type with a non-zero layer offset, this controls how "
|
||||||
|
"many consecutive layers share the same ripple phase before the offset is applied. "
|
||||||
|
"For example, a period of 3 means layers 0, 1 and 2 are identical, then layers 3, 4 "
|
||||||
|
"and 5 are shifted by one full 'Ripple layer offset', and so on. "
|
||||||
|
"Set to 1 to shift on every layer.");
|
||||||
|
def->min = 1;
|
||||||
|
def->mode = comAdvanced;
|
||||||
|
def->set_default_value(new ConfigOptionInt(1));
|
||||||
|
|
||||||
def = this->add("filter_out_gap_fill", coFloat);
|
def = this->add("filter_out_gap_fill", coFloat);
|
||||||
def->label = L("Filter out tiny gaps");
|
def->label = L("Filter out tiny gaps");
|
||||||
def->category = L("Layers and Perimeters");
|
def->category = L("Layers and Perimeters");
|
||||||
@@ -5239,7 +5276,8 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->label = L("Scarf joint flow ratio");
|
def->label = L("Scarf joint flow ratio");
|
||||||
def->category = L("Quality");
|
def->category = L("Quality");
|
||||||
def->tooltip = L("This factor affects the amount of material for scarf joints.");
|
def->tooltip = L("This factor affects the amount of material for scarf joints.");
|
||||||
def->mode = comDevelop;
|
def->mode = comExpert;
|
||||||
|
def->min = 0;
|
||||||
def->max = 2;
|
def->max = 2;
|
||||||
def->set_default_value(new ConfigOptionFloat(1));
|
def->set_default_value(new ConfigOptionFloat(1));
|
||||||
|
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ enum class NoiseType {
|
|||||||
Billow,
|
Billow,
|
||||||
RidgedMulti,
|
RidgedMulti,
|
||||||
Voronoi,
|
Voronoi,
|
||||||
|
Ripple,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class WipeTowerType {
|
enum class WipeTowerType {
|
||||||
@@ -1084,6 +1085,9 @@ PRINT_CONFIG_CLASS_DEFINE(
|
|||||||
((ConfigOptionFloat, fuzzy_skin_scale))
|
((ConfigOptionFloat, fuzzy_skin_scale))
|
||||||
((ConfigOptionInt, fuzzy_skin_octaves))
|
((ConfigOptionInt, fuzzy_skin_octaves))
|
||||||
((ConfigOptionFloat, fuzzy_skin_persistence))
|
((ConfigOptionFloat, fuzzy_skin_persistence))
|
||||||
|
((ConfigOptionInt, fuzzy_skin_ripples_per_layer))
|
||||||
|
((ConfigOptionFloat, fuzzy_skin_ripple_offset))
|
||||||
|
((ConfigOptionInt, fuzzy_skin_layers_between_ripple_offset))
|
||||||
((ConfigOptionFloat, gap_infill_speed))
|
((ConfigOptionFloat, gap_infill_speed))
|
||||||
((ConfigOptionInt, sparse_infill_filament))
|
((ConfigOptionInt, sparse_infill_filament))
|
||||||
((ConfigOptionFloatOrPercent, sparse_infill_line_width))
|
((ConfigOptionFloatOrPercent, sparse_infill_line_width))
|
||||||
|
|||||||
@@ -881,9 +881,13 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
|
|||||||
|
|
||||||
// Show noise type specific options with the same logic
|
// Show noise type specific options with the same logic
|
||||||
NoiseType fuzzy_skin_noise_type = config->opt_enum<NoiseType>("fuzzy_skin_noise_type");
|
NoiseType fuzzy_skin_noise_type = config->opt_enum<NoiseType>("fuzzy_skin_noise_type");
|
||||||
toggle_line("fuzzy_skin_scale", fuzzy_skin_noise_type != NoiseType::Classic && has_fuzzy_skin);
|
const bool is_ripple = fuzzy_skin_noise_type == NoiseType::Ripple;
|
||||||
toggle_line("fuzzy_skin_octaves", fuzzy_skin_noise_type != NoiseType::Classic && fuzzy_skin_noise_type != NoiseType::Voronoi && has_fuzzy_skin);
|
toggle_line("fuzzy_skin_scale", fuzzy_skin_noise_type != NoiseType::Classic && has_fuzzy_skin && !is_ripple);
|
||||||
toggle_line("fuzzy_skin_persistence", (fuzzy_skin_noise_type == NoiseType::Perlin || fuzzy_skin_noise_type == NoiseType::Billow) && has_fuzzy_skin);
|
toggle_line("fuzzy_skin_octaves", fuzzy_skin_noise_type != NoiseType::Classic && fuzzy_skin_noise_type != NoiseType::Voronoi && has_fuzzy_skin && !is_ripple);
|
||||||
|
toggle_line("fuzzy_skin_persistence", (fuzzy_skin_noise_type == NoiseType::Perlin || fuzzy_skin_noise_type == NoiseType::Billow) && has_fuzzy_skin && !is_ripple);
|
||||||
|
toggle_line("fuzzy_skin_ripples_per_layer", is_ripple && has_fuzzy_skin);
|
||||||
|
toggle_line("fuzzy_skin_ripple_offset", is_ripple && has_fuzzy_skin);
|
||||||
|
toggle_line("fuzzy_skin_layers_between_ripple_offset", is_ripple && has_fuzzy_skin);
|
||||||
|
|
||||||
bool have_arachne = config->opt_enum<PerimeterGeneratorType>("wall_generator") == PerimeterGeneratorType::Arachne;
|
bool have_arachne = config->opt_enum<PerimeterGeneratorType>("wall_generator") == PerimeterGeneratorType::Arachne;
|
||||||
for (auto el : {"wall_transition_length", "wall_transition_filter_deviation", "wall_transition_angle", "min_feature_size", "min_length_factor",
|
for (auto el : {"wall_transition_length", "wall_transition_filter_deviation", "wall_transition_angle", "min_feature_size", "min_length_factor",
|
||||||
|
|||||||
@@ -516,13 +516,15 @@ void GCodeViewer::SequentialView::Marker::render_position_window(const libvgcode
|
|||||||
}
|
}
|
||||||
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding , 3.f * m_scale);
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding , 3.f * m_scale);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_ButtonTextAlign, ImVec2(.5f, .5f));
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding , ImVec2(2.f, 2.f) * m_scale);
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button , ImVec4(0, 0, 0, 0));
|
ImGui::PushStyleColor(ImGuiCol_Button , ImVec4(0, 0, 0, 0));
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered , ImVec4(84 / 255.f, 84 / 255.f, 90 / 255.f, 1.f));
|
ImGui::PushStyleColor(ImGuiCol_ButtonHovered , ImVec4(84 / 255.f, 84 / 255.f, 90 / 255.f, 1.f));
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive , ImVec4(84 / 255.f, 84 / 255.f, 90 / 255.f, 1.f));
|
ImGui::PushStyleColor(ImGuiCol_ButtonActive , ImVec4(84 / 255.f, 84 / 255.f, 90 / 255.f, 1.f));
|
||||||
|
|
||||||
const float main_wnd_height = ImGui::GetWindowHeight();
|
const float main_wnd_height = ImGui::GetWindowHeight();
|
||||||
if (ImGui::Button(into_u8(properties_shown ? ImGui::UnfoldButtonIcon : ImGui::FoldButtonIcon).c_str(), ImVec2(24.f, 24.f) * m_scale)) {
|
// ORCA use glyph based button for fixing button sizes changing depends on used font size on platform
|
||||||
|
const wchar_t foldIcon = properties_shown ? ImGui::UnfoldButtonIcon : ImGui::FoldButtonIcon;
|
||||||
|
if (imgui.glyph_button(foldIcon, ImVec2(16.f, 16.f) * m_scale)) {
|
||||||
properties_shown = !properties_shown;
|
properties_shown = !properties_shown;
|
||||||
static float main_wnd_height_temp = ImGui::GetWindowHeight();
|
static float main_wnd_height_temp = ImGui::GetWindowHeight();
|
||||||
static float first_click = true;
|
static float first_click = true;
|
||||||
@@ -537,6 +539,7 @@ void GCodeViewer::SequentialView::Marker::render_position_window(const libvgcode
|
|||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
|
||||||
|
if(!properties_shown)
|
||||||
ImGui::SetCursorPosY(ImGui::GetCursorPosY() - ImGui::GetStyle().FramePadding.y); // aligns button with next group
|
ImGui::SetCursorPosY(ImGui::GetCursorPosY() - ImGui::GetStyle().FramePadding.y); // aligns button with next group
|
||||||
|
|
||||||
ImGui::BeginGroup(); // group contents to make information area more compact
|
ImGui::BeginGroup(); // group contents to make information area more compact
|
||||||
@@ -3327,29 +3330,26 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv
|
|||||||
ImGui::Dummy({ window_padding, window_padding });
|
ImGui::Dummy({ window_padding, window_padding });
|
||||||
ImGui::Dummy({ window_padding, window_padding });
|
ImGui::Dummy({ window_padding, window_padding });
|
||||||
ImGui::SameLine(window_padding * 2); // ORCA Ignores item spacing to get perfect window margins since since this part uses dummies for window padding
|
ImGui::SameLine(window_padding * 2); // ORCA Ignores item spacing to get perfect window margins since since this part uses dummies for window padding
|
||||||
std::wstring btn_name;
|
|
||||||
if (m_fold)
|
|
||||||
btn_name = ImGui::UnfoldButtonIcon;
|
|
||||||
else
|
|
||||||
btn_name = ImGui::FoldButtonIcon;
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0, 0, 0, 0));
|
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0, 0, 0, 0));
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(84 / 255.f, 84 / 255.f, 90 / 255.f, 1.f));
|
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(84 / 255.f, 84 / 255.f, 90 / 255.f, 1.f));
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(84 / 255.f, 84 / 255.f, 90 / 255.f, 1.f));
|
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(84 / 255.f, 84 / 255.f, 90 / 255.f, 1.f));
|
||||||
float calc_padding = (ImGui::GetFrameHeight() - 16 * m_scale) / 2; // ORCA calculated padding for 16x16 icon
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding , ImVec2(2.f, 2.f) * m_scale);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(calc_padding, calc_padding)); // ORCA Center icon with frame padding
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0f * m_scale); // ORCA Match button style with combo box
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0f * m_scale); // ORCA Match button style with combo box
|
||||||
|
|
||||||
float button_width = 16 * m_scale + calc_padding * 2; // ORCA match buttons height with combo box
|
// ORCA use glyph based button for fixing button sizes changing depends on used font size on platform
|
||||||
if (ImGui::Button(into_u8(btn_name).c_str(), ImVec2(button_width, button_width))) {
|
const wchar_t foldIcon = m_fold ? ImGui::UnfoldButtonIcon : ImGui::FoldButtonIcon;
|
||||||
|
if (imgui.glyph_button(foldIcon, ImVec2(16.f, 16.f) * m_scale)) {
|
||||||
m_fold = !m_fold;
|
m_fold = !m_fold;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
const wchar_t gCodeToggle = ImGui::gCodeButtonIcon;
|
const wchar_t gCodeToggle = ImGui::gCodeButtonIcon;
|
||||||
if (ImGui::Button(into_u8(gCodeToggle).c_str(), ImVec2(button_width, button_width))) {
|
if (imgui.glyph_button(gCodeToggle, ImVec2(16.f, 16.f) * m_scale)) {
|
||||||
wxGetApp().toggle_show_gcode_window();
|
wxGetApp().toggle_show_gcode_window();
|
||||||
wxGetApp().plater()->get_current_canvas3D()->post_event(SimpleEvent(wxEVT_PAINT));
|
wxGetApp().plater()->get_current_canvas3D()->post_event(SimpleEvent(wxEVT_PAINT));
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::PopStyleColor(3);
|
ImGui::PopStyleColor(3);
|
||||||
ImGui::PopStyleVar(2);
|
ImGui::PopStyleVar(2);
|
||||||
|
|
||||||
|
|||||||
+44
-147
@@ -276,8 +276,8 @@ bool is_associate_files(std::wstring extend)
|
|||||||
class SplashScreen : public wxSplashScreen
|
class SplashScreen : public wxSplashScreen
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SplashScreen(const wxBitmap& bitmap, long splashStyle, int milliseconds, wxPoint pos = wxDefaultPosition)
|
SplashScreen(wxPoint pos = wxDefaultPosition)
|
||||||
: wxSplashScreen(bitmap, splashStyle, milliseconds, static_cast<wxWindow*>(wxGetApp().mainframe), wxID_ANY, wxDefaultPosition, wxDefaultSize,
|
: wxSplashScreen(wxBitmap(FromDIP(wxSize(480,480),nullptr)), wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_TIMEOUT, 1500, nullptr, wxID_ANY, wxDefaultPosition, wxDefaultSize,
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
wxBORDER_NONE | wxFRAME_NO_TASKBAR | wxSTAY_ON_TOP
|
wxBORDER_NONE | wxFRAME_NO_TASKBAR | wxSTAY_ON_TOP
|
||||||
#else
|
#else
|
||||||
@@ -285,51 +285,53 @@ public:
|
|||||||
#endif // !__APPLE__
|
#endif // !__APPLE__
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
int init_dpi = get_dpi_for_window(this);
|
|
||||||
this->SetPosition(pos);
|
this->SetPosition(pos);
|
||||||
this->CenterOnScreen();
|
this->CenterOnScreen();
|
||||||
int new_dpi = get_dpi_for_window(this);
|
|
||||||
|
|
||||||
m_scale = (float)(new_dpi) / (float)(init_dpi);
|
scale_font(m_font_version, 1.65f); // only scale this one since it hasnt a preloaded font like Label::Body_24;
|
||||||
|
|
||||||
m_main_bitmap = bitmap;
|
m_bg_color = StateColor::darkModeColorFor(wxColour("#FFFFFF"));
|
||||||
|
m_fg_color = StateColor::darkModeColorFor(wxColour("#6B6A6A"));
|
||||||
|
bool dark_mode = m_fg_color != wxColour("#6B6A6A");
|
||||||
|
wxSize sz = m_window->GetClientSize();
|
||||||
|
BitmapCache bmp_cache;
|
||||||
|
m_logo_bmp = *bmp_cache.load_svg(dark_mode ? "splash_logo_dark" : "splash_logo", sz.GetWidth(), sz.GetHeight());
|
||||||
|
|
||||||
scale_bitmap(m_main_bitmap, m_scale);
|
m_window->Bind(wxEVT_PAINT, &SplashScreen::OnPaint, this);
|
||||||
|
m_window->Refresh();
|
||||||
|
m_window->Update();
|
||||||
|
}
|
||||||
|
|
||||||
// init constant texts and scale fonts
|
void OnPaint(wxPaintEvent& evt)
|
||||||
m_constant_text.init(Label::Body_16);
|
{
|
||||||
|
wxPaintDC dc(m_window);
|
||||||
|
wxSize c_sz = m_window->GetClientSize();
|
||||||
|
|
||||||
// ORCA scale all fonts with monitor scale
|
dc.SetBackground(wxBrush(m_bg_color));
|
||||||
scale_font(m_constant_text.version_font, m_scale * 2);
|
dc.Clear();
|
||||||
scale_font(m_constant_text.based_on_font, m_scale * 1.5f);
|
if (m_logo_bmp.IsOk())
|
||||||
scale_font(m_constant_text.credits_font, m_scale * 2);
|
dc.DrawBitmap(m_logo_bmp, 0, 0, true);
|
||||||
|
|
||||||
// this font will be used for the action string
|
wxRect rc = wxRect(0, 0, c_sz.GetWidth(), 0);
|
||||||
m_action_font = m_constant_text.credits_font;
|
dc.SetTextForeground(m_fg_color);
|
||||||
|
|
||||||
// draw logo and constant info text
|
dc.SetFont(m_font_version);
|
||||||
Decorate(m_main_bitmap);
|
rc.y = c_sz.GetHeight() * 0.72;
|
||||||
wxGetApp().UpdateFrameDarkUI(this);
|
rc.height = dc.GetTextExtent(m_text_version).GetHeight();
|
||||||
|
dc.DrawLabel(m_text_version, rc, wxALIGN_CENTER);
|
||||||
|
|
||||||
|
dc.SetFont(m_font_action);
|
||||||
|
rc.y = c_sz.GetHeight() * 0.88;
|
||||||
|
rc.height = dc.GetTextExtent(m_text_action).GetHeight();
|
||||||
|
dc.DrawLabel(m_text_action, rc, wxALIGN_CENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetText(const wxString& text)
|
void SetText(const wxString& text)
|
||||||
{
|
{
|
||||||
set_bitmap(m_main_bitmap);
|
|
||||||
if (!text.empty()) {
|
if (!text.empty()) {
|
||||||
wxBitmap bitmap(m_main_bitmap);
|
m_text_action = text;
|
||||||
|
m_window->Refresh();
|
||||||
wxMemoryDC memDC;
|
m_window->Update();
|
||||||
memDC.SelectObject(bitmap);
|
|
||||||
memDC.SetFont(m_action_font);
|
|
||||||
memDC.SetTextForeground(StateColor::darkModeColorFor(wxColour(144, 144, 144)));
|
|
||||||
int width = bitmap.GetWidth();
|
|
||||||
int text_height = memDC.GetTextExtent(text).GetHeight();
|
|
||||||
int text_width = memDC.GetTextExtent(text).GetWidth();
|
|
||||||
wxRect text_rect(wxPoint(0, m_action_line_y_position), wxPoint(width, m_action_line_y_position + text_height));
|
|
||||||
memDC.DrawLabel(text, text_rect, wxALIGN_CENTER);
|
|
||||||
|
|
||||||
memDC.SelectObject(wxNullBitmap);
|
|
||||||
set_bitmap(bitmap);
|
|
||||||
#ifdef __WXOSX__
|
#ifdef __WXOSX__
|
||||||
// without this code splash screen wouldn't be updated under OSX
|
// without this code splash screen wouldn't be updated under OSX
|
||||||
wxYield();
|
wxYield();
|
||||||
@@ -337,77 +339,6 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Decorate(wxBitmap& bmp)
|
|
||||||
{
|
|
||||||
if (!bmp.IsOk())
|
|
||||||
return;
|
|
||||||
|
|
||||||
bool is_dark = wxGetApp().app_config->get("dark_color_mode") == "1";
|
|
||||||
|
|
||||||
// use a memory DC to draw directly onto the bitmap
|
|
||||||
wxMemoryDC memDc(bmp);
|
|
||||||
|
|
||||||
int width = bmp.GetWidth();
|
|
||||||
int height = bmp.GetHeight();
|
|
||||||
|
|
||||||
// Logo
|
|
||||||
BitmapCache bmp_cache;
|
|
||||||
wxBitmap logo_bmp = *bmp_cache.load_svg(is_dark ? "splash_logo_dark" : "splash_logo", width, height); // use with full width & height
|
|
||||||
memDc.DrawBitmap(logo_bmp, 0, 0, true);
|
|
||||||
|
|
||||||
// Version
|
|
||||||
memDc.SetFont(m_constant_text.version_font);
|
|
||||||
memDc.SetTextForeground(StateColor::darkModeColorFor(wxColor(134, 134, 134)));
|
|
||||||
wxSize version_ext = memDc.GetTextExtent(m_constant_text.version);
|
|
||||||
wxRect version_rect(
|
|
||||||
wxPoint(0, int(height * 0.70)),
|
|
||||||
wxPoint(width, int(height * 0.70) + version_ext.GetHeight())
|
|
||||||
);
|
|
||||||
memDc.DrawLabel(m_constant_text.version, version_rect, wxALIGN_CENTER);
|
|
||||||
|
|
||||||
// Dynamic Text
|
|
||||||
m_action_line_y_position = int(height * 0.83);
|
|
||||||
}
|
|
||||||
|
|
||||||
static wxBitmap MakeBitmap()
|
|
||||||
{
|
|
||||||
int width = FromDIP(480, nullptr);
|
|
||||||
int height = FromDIP(480, nullptr);
|
|
||||||
|
|
||||||
wxImage image(width, height);
|
|
||||||
wxBitmap new_bmp(image);
|
|
||||||
|
|
||||||
wxMemoryDC memDC;
|
|
||||||
memDC.SelectObject(new_bmp);
|
|
||||||
memDC.SetBrush(StateColor::darkModeColorFor(*wxWHITE));
|
|
||||||
memDC.DrawRectangle(-1, -1, width + 2, height + 2);
|
|
||||||
memDC.DrawBitmap(new_bmp, 0, 0, true);
|
|
||||||
return new_bmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
void set_bitmap(wxBitmap& bmp)
|
|
||||||
{
|
|
||||||
m_window->SetBitmap(bmp);
|
|
||||||
m_window->Refresh();
|
|
||||||
m_window->Update();
|
|
||||||
}
|
|
||||||
|
|
||||||
void scale_bitmap(wxBitmap& bmp, float scale)
|
|
||||||
{
|
|
||||||
if (scale == 1.0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
wxImage image = bmp.ConvertToImage();
|
|
||||||
if (!image.IsOk() || image.GetWidth() == 0 || image.GetHeight() == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
int width = int(scale * image.GetWidth());
|
|
||||||
int height = int(scale * image.GetHeight());
|
|
||||||
image.Rescale(width, height, wxIMAGE_QUALITY_BILINEAR);
|
|
||||||
|
|
||||||
bmp = wxBitmap(std::move(image));
|
|
||||||
}
|
|
||||||
|
|
||||||
void scale_font(wxFont& font, float scale)
|
void scale_font(wxFont& font, float scale)
|
||||||
{
|
{
|
||||||
#ifdef __WXMSW__
|
#ifdef __WXMSW__
|
||||||
@@ -425,47 +356,16 @@ public:
|
|||||||
#endif //__WXMSW__
|
#endif //__WXMSW__
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
wxStaticText* m_staticText_slicer_name;
|
wxBitmap m_logo_bmp;
|
||||||
wxStaticText* m_staticText_slicer_version;
|
wxColour m_fg_color;
|
||||||
wxStaticBitmap* m_bitmap;
|
wxColour m_bg_color;
|
||||||
wxStaticText* m_staticText_loading;
|
|
||||||
|
|
||||||
wxBitmap m_main_bitmap;
|
wxString m_text_version = GUI_App::format_display_version();
|
||||||
wxFont m_action_font;
|
wxString m_text_action = _L("Loading configuration") + dots;
|
||||||
int m_action_line_y_position;
|
|
||||||
float m_scale {1.0};
|
|
||||||
|
|
||||||
struct ConstantText
|
wxFont m_font_version = Label::Body_16;
|
||||||
{
|
wxFont m_font_action = Label::Body_16;
|
||||||
wxString title;
|
|
||||||
wxString version;
|
|
||||||
wxString credits;
|
|
||||||
|
|
||||||
wxFont title_font;
|
|
||||||
wxFont version_font;
|
|
||||||
wxFont credits_font;
|
|
||||||
wxFont based_on_font;
|
|
||||||
|
|
||||||
void init(wxFont init_font)
|
|
||||||
{
|
|
||||||
// title
|
|
||||||
//title = wxGetApp().is_editor() ? SLIC3R_APP_FULL_NAME : GCODEVIEWER_APP_NAME;
|
|
||||||
|
|
||||||
// dynamically get the version to display
|
|
||||||
version = GUI_App::format_display_version();
|
|
||||||
|
|
||||||
// credits infornation
|
|
||||||
credits = "";
|
|
||||||
|
|
||||||
//title_font = Label::Head_16;
|
|
||||||
version_font = Label::Body_13;
|
|
||||||
based_on_font = Label::Body_8;
|
|
||||||
credits_font = Label::Body_8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
m_constant_text;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
@@ -2844,9 +2744,6 @@ bool GUI_App::on_init_inner()
|
|||||||
|
|
||||||
SplashScreen * scrn = nullptr;
|
SplashScreen * scrn = nullptr;
|
||||||
if (app_config->get("show_splash_screen") == "true") {
|
if (app_config->get("show_splash_screen") == "true") {
|
||||||
// make a bitmap with dark grey banner on the left side
|
|
||||||
//BBS make BBL splash screen bitmap
|
|
||||||
wxBitmap bmp = SplashScreen::MakeBitmap();
|
|
||||||
// Detect position (display) to show the splash screen
|
// Detect position (display) to show the splash screen
|
||||||
// Now this position is equal to the mainframe position
|
// Now this position is equal to the mainframe position
|
||||||
wxPoint splashscreen_pos = wxDefaultPosition;
|
wxPoint splashscreen_pos = wxDefaultPosition;
|
||||||
@@ -2858,9 +2755,9 @@ bool GUI_App::on_init_inner()
|
|||||||
|
|
||||||
BOOST_LOG_TRIVIAL(info) << "begin to show the splash screen...";
|
BOOST_LOG_TRIVIAL(info) << "begin to show the splash screen...";
|
||||||
//BBS use BBL splashScreen
|
//BBS use BBL splashScreen
|
||||||
scrn = new SplashScreen(bmp, wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_TIMEOUT, 1500, splashscreen_pos);
|
scrn = new SplashScreen(splashscreen_pos);
|
||||||
wxYield();
|
wxYield();
|
||||||
scrn->SetText(_L("Loading configuration")+ dots);
|
//scrn->SetText(_L("Loading configuration")+ dots);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_LOG_TRIVIAL(info) << "loading systen presets...";
|
BOOST_LOG_TRIVIAL(info) << "loading systen presets...";
|
||||||
|
|||||||
@@ -191,6 +191,12 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l
|
|||||||
if (! m_c->selection_info()->model_object())
|
if (! m_c->selection_info()->model_object())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
float scale = m_parent.get_scale();
|
||||||
|
#ifdef WIN32
|
||||||
|
int dpi = get_dpi_for_window(wxGetApp().GetTopWindow());
|
||||||
|
scale *= (float) dpi / (float) DPI_DEFAULT;
|
||||||
|
#endif // WIN32
|
||||||
|
|
||||||
// BBS
|
// BBS
|
||||||
wchar_t old_tool = m_current_tool;
|
wchar_t old_tool = m_current_tool;
|
||||||
|
|
||||||
@@ -258,30 +264,24 @@ void GLGizmoFdmSupports::on_render_input_window(float x, float y, float bottom_l
|
|||||||
|
|
||||||
std::array<wxString, 4> tool_tips = { _L("Circle"), _L("Sphere"), _L("Fill"), _L("Gap Fill") };
|
std::array<wxString, 4> tool_tips = { _L("Circle"), _L("Sphere"), _L("Fill"), _L("Gap Fill") };
|
||||||
for (int i = 0; i < tool_ids.size(); i++) {
|
for (int i = 0; i < tool_ids.size(); i++) {
|
||||||
std::string str_label = std::string("##");
|
//std::string str_label = std::string("##");
|
||||||
std::wstring btn_name = icons[i] + boost::nowide::widen(str_label);
|
//std::wstring btn_name = icons[i] + boost::nowide::widen(str_label);
|
||||||
|
|
||||||
if (i != 0) ImGui::SameLine((empty_button_width + m_imgui->scaled(1.75f)) * i + m_imgui->scaled(1.3f));
|
if (i != 0) ImGui::SameLine((empty_button_width + m_imgui->scaled(1.75f)) * i + m_imgui->scaled(1.3f));
|
||||||
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0);
|
bool is_active = m_current_tool == tool_ids[i];
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f, 0.f, 0.f, 0.f)); // ORCA Removes button background on dark mode
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f)); // ORCA: Fixes icon rendered without colors while using Light theme
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding , 3.f * scale);
|
||||||
if (m_current_tool == tool_ids[i]) {
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding , ImVec2(4.f * scale, 4.f * scale));
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_Text , ImVec4(1,1,1,1)); // ORCA Fixes icon rendered without colors while using Light theme
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_Button , is_active ? ImVec4(0.f, .59f, .53f, .25f) : ImVec4(0,0,0,0)); // ORCA
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.f, 0.59f, 0.53f, 0.30f)); // ORCA use orca color for selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, is_active ? ImVec4(0.f, .59f, .53f, .25f) : ImVec4(.6f,.6f,.6f,.2f)); // ORCA
|
||||||
ImGui::PushStyleColor(ImGuiCol_Border, ImGuiWrapper::COL_ORCA); // ORCA use orca color for border on selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_ButtonActive , is_active ? ImVec4(0.f, .59f, .53f, .30f) : ImVec4(0,0,0,0)); // ORCA
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0);
|
ImGui::PushStyleColor(ImGuiCol_Border , is_active ? ImGuiWrapper::COL_ORCA : ImVec4(0,0,0,0)); // ORCA
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 1.0);
|
ImGui::PushStyleColor(ImGuiCol_BorderActive , is_active ? ImGuiWrapper::COL_ORCA : ImVec4(0,0,0,0)); // ORCA matched color for fixing flicker on click
|
||||||
}
|
bool btn_clicked = m_imgui->glyph_button(icons[i], ImVec2(16.f * scale, 16.f * scale)); // ORCA glyph_button for fixing unequal paddings
|
||||||
bool btn_clicked = ImGui::Button(into_u8(btn_name).c_str());
|
ImGui::PopStyleColor(6);
|
||||||
if (m_current_tool == tool_ids[i])
|
ImGui::PopStyleVar(3);
|
||||||
{
|
|
||||||
ImGui::PopStyleColor(4);
|
|
||||||
ImGui::PopStyleVar(2);
|
|
||||||
}
|
|
||||||
ImGui::PopStyleColor(2);
|
|
||||||
ImGui::PopStyleVar(1);
|
|
||||||
|
|
||||||
if (btn_clicked && m_current_tool != tool_ids[i]) {
|
if (btn_clicked && m_current_tool != tool_ids[i]) {
|
||||||
m_current_tool = tool_ids[i];
|
m_current_tool = tool_ids[i];
|
||||||
|
|||||||
@@ -117,6 +117,12 @@ void GLGizmoFuzzySkin::on_render_input_window(float x, float y, float bottom_lim
|
|||||||
if (!mo)
|
if (!mo)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
float scale = m_parent.get_scale();
|
||||||
|
#ifdef WIN32
|
||||||
|
int dpi = get_dpi_for_window(wxGetApp().GetTopWindow());
|
||||||
|
scale *= (float) dpi / (float) DPI_DEFAULT;
|
||||||
|
#endif // WIN32
|
||||||
|
|
||||||
const DynamicPrintConfig &obj_cfg = mo->config.get();
|
const DynamicPrintConfig &obj_cfg = mo->config.get();
|
||||||
|
|
||||||
const float approx_height = m_imgui->scaled(22.f);
|
const float approx_height = m_imgui->scaled(22.f);
|
||||||
@@ -192,29 +198,24 @@ void GLGizmoFuzzySkin::on_render_input_window(float x, float y, float bottom_lim
|
|||||||
icons = { ImGui::CircleButtonIcon, ImGui::SphereButtonIcon, ImGui::TriangleButtonIcon, ImGui::FillButtonIcon };
|
icons = { ImGui::CircleButtonIcon, ImGui::SphereButtonIcon, ImGui::TriangleButtonIcon, ImGui::FillButtonIcon };
|
||||||
std::array<wxString, 4> tool_tips = { _L("Circle"), _L("Sphere"), _L("Triangle"), _L("Fill") };
|
std::array<wxString, 4> tool_tips = { _L("Circle"), _L("Sphere"), _L("Triangle"), _L("Fill") };
|
||||||
for (int i = 0; i < tool_ids.size(); i++) {
|
for (int i = 0; i < tool_ids.size(); i++) {
|
||||||
std::string str_label = std::string("");
|
//std::string str_label = std::string("");
|
||||||
std::wstring btn_name = icons[i] + boost::nowide::widen(str_label);
|
//std::wstring btn_name = icons[i] + boost::nowide::widen(str_label);
|
||||||
|
|
||||||
if (i != 0) ImGui::SameLine((empty_button_width + m_imgui->scaled(1.75f)) * i + m_imgui->scaled(1.5f));
|
if (i != 0) ImGui::SameLine((empty_button_width + m_imgui->scaled(1.75f)) * i + m_imgui->scaled(1.5f));
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0);
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f, 0.f, 0.f, 0.f)); // ORCA Removes button background on dark mode
|
bool is_active = m_current_tool == tool_ids[i];
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f)); // ORCA Fixes icon rendered without colors while using Light theme
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);
|
||||||
if (m_current_tool == tool_ids[i]) {
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding , 3.f * scale);
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding , ImVec2(4.f * scale, 4.f * scale));
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_Text , ImVec4(1,1,1,1)); // ORCA Fixes icon rendered without colors while using Light theme
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.f, 0.59f, 0.53f, 0.30f)); // ORCA use orca color for selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_Button , is_active ? ImVec4(0.f, .59f, .53f, .25f) : ImVec4(0,0,0,0)); // ORCA
|
||||||
ImGui::PushStyleColor(ImGuiCol_Border, ImGuiWrapper::COL_ORCA); // ORCA use orca color for border on selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, is_active ? ImVec4(0.f, .59f, .53f, .25f) : ImVec4(.6f,.6f,.6f,.2f)); // ORCA
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0);
|
ImGui::PushStyleColor(ImGuiCol_ButtonActive , is_active ? ImVec4(0.f, .59f, .53f, .30f) : ImVec4(0,0,0,0)); // ORCA
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 1.0);
|
ImGui::PushStyleColor(ImGuiCol_Border , is_active ? ImGuiWrapper::COL_ORCA : ImVec4(0,0,0,0)); // ORCA
|
||||||
}
|
ImGui::PushStyleColor(ImGuiCol_BorderActive , is_active ? ImGuiWrapper::COL_ORCA : ImVec4(0,0,0,0)); // ORCA matched color for fixing flicker on click
|
||||||
bool btn_clicked = ImGui::Button(into_u8(btn_name).c_str());
|
bool btn_clicked = m_imgui->glyph_button(icons[i], ImVec2(16.f * scale, 16.f * scale)); // ORCA glyph_button for fixing unequal paddings
|
||||||
if (m_current_tool == tool_ids[i])
|
ImGui::PopStyleColor(6);
|
||||||
{
|
ImGui::PopStyleVar(3);
|
||||||
ImGui::PopStyleColor(4);
|
|
||||||
ImGui::PopStyleVar(2);
|
|
||||||
}
|
|
||||||
ImGui::PopStyleColor(2);
|
|
||||||
ImGui::PopStyleVar(1);
|
|
||||||
|
|
||||||
if (btn_clicked && m_current_tool != tool_ids[i]) {
|
if (btn_clicked && m_current_tool != tool_ids[i]) {
|
||||||
m_current_tool = tool_ids[i];
|
m_current_tool = tool_ids[i];
|
||||||
|
|||||||
@@ -115,9 +115,9 @@ bool GLGizmoMmuSegmentation::on_init()
|
|||||||
m_desc["smart_fill_angle"] = _L("Smart fill angle");
|
m_desc["smart_fill_angle"] = _L("Smart fill angle");
|
||||||
m_desc["height_range"] = _L("Height range");
|
m_desc["height_range"] = _L("Height range");
|
||||||
m_desc["toggle_wireframe"] = _L("Toggle Wireframe");
|
m_desc["toggle_wireframe"] = _L("Toggle Wireframe");
|
||||||
m_desc["perform_remap"] = _L("Remap filaments");
|
m_desc["perform_remap"] = _u8L("Remap filaments");
|
||||||
m_desc["remap"] = _L("Remap");
|
m_desc["remap"] = _L("Remap");
|
||||||
m_desc["cancel_remap"] = _L("Cancel");
|
m_desc["remap_reset"] = _L("Reset");
|
||||||
|
|
||||||
std::pair<wxString, wxString> paint_shortcut = {_L("Left mouse button"), m_desc["paint"]};
|
std::pair<wxString, wxString> paint_shortcut = {_L("Left mouse button"), m_desc["paint"]};
|
||||||
std::pair<wxString, wxString> erase_shortcut = {shift + _L("Left mouse button"), m_desc["erase"]};
|
std::pair<wxString, wxString> erase_shortcut = {shift + _L("Left mouse button"), m_desc["erase"]};
|
||||||
@@ -304,10 +304,56 @@ void GLGizmoMmuSegmentation::render_tooltip_button(float x, float y)
|
|||||||
GLGizmoUtils::render_tooltip_button(m_imgui, m_parent, get_shortcuts(), x, y);
|
GLGizmoUtils::render_tooltip_button(m_imgui, m_parent, get_shortcuts(), x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ORCA
|
||||||
|
bool GLGizmoMmuSegmentation::draw_color_button(int idx, std::string id_str, const ColorRGBA& color, ColorRGBA& map_color, bool active, float scale)
|
||||||
|
{
|
||||||
|
ImDrawList* draw_list = ImGui::GetWindowDrawList();
|
||||||
|
std::string label_id = std::to_string(idx) + id_str + std::to_string(idx);
|
||||||
|
ImVec2 pos = ImGui::GetCursorScreenPos();
|
||||||
|
ImVec2 size = ImVec2(27.f * scale, 27.f * scale);
|
||||||
|
ImVec4 color_vec = ImGuiWrapper::to_ImVec4(color);
|
||||||
|
ImU32 br_color = ImGui::ColorConvertFloat4ToU32(active ? ImGuiWrapper::COL_ORCA : m_is_dark_mode ? ImVec4(.35f, .35f, .35f, 1) : ImVec4(.85f, .85f, .85f, 1));
|
||||||
|
bool dark_tone = (0.299f * color.r() + 0.587f * color.g() + 0.114f * color.b()) < 0.51f; // matching values used by wxWidgets with clr.GetLuminance() < 0.51
|
||||||
|
|
||||||
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0);
|
||||||
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding , 7.f * scale);
|
||||||
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding , ImVec2(0, 0));
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text , dark_tone ? ImVec4(1,1,1,1) : ImVec4(0,0,0,1));
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Button , color_vec);
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, color_vec);
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_ButtonActive , color_vec);
|
||||||
|
bool clicked = ImGui::Button(label_id.c_str(), size);
|
||||||
|
ImGui::PopStyleVar(3);
|
||||||
|
ImGui::PopStyleColor(4);
|
||||||
|
|
||||||
|
auto drawBorder = [&](float d, float r, float t, ImU32 col) {
|
||||||
|
draw_list->AddRect({pos.x + d * scale, pos.y + d * scale}, {pos.x + size.x - d * scale , pos.y + size.y - d * scale}, col, r * scale, 0, t * scale);
|
||||||
|
};
|
||||||
|
drawBorder(1.5f, 3.f, 4.f, ImGui::ColorConvertFloat4ToU32(ImGui::GetStyleColorVec4(ImGuiCol_WindowBg)));
|
||||||
|
if(active)
|
||||||
|
drawBorder(.5f, 4.f , 2.f, br_color);
|
||||||
|
else
|
||||||
|
drawBorder(3.f, 2.5f, 1.f, br_color);
|
||||||
|
|
||||||
|
if (color != map_color){ // show mapped color as bubble if mapped
|
||||||
|
ImVec2 center = {pos.x + size.x - 3.f * scale, pos.y + 3.f * scale};
|
||||||
|
draw_list->AddCircleFilled(center, 6.f * scale, br_color, 16); // outer border for better visibility
|
||||||
|
draw_list->AddCircleFilled(center, 5.f * scale, ImGuiWrapper::to_ImU32(map_color), 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
return clicked;
|
||||||
|
};
|
||||||
|
|
||||||
void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bottom_limit)
|
void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bottom_limit)
|
||||||
{
|
{
|
||||||
if (!m_c->selection_info()->model_object()) return;
|
if (!m_c->selection_info()->model_object()) return;
|
||||||
|
|
||||||
|
float scale = m_parent.get_scale();
|
||||||
|
#ifdef WIN32
|
||||||
|
int dpi = get_dpi_for_window(wxGetApp().GetTopWindow());
|
||||||
|
scale *= (float) dpi / (float) DPI_DEFAULT;
|
||||||
|
#endif // WIN32
|
||||||
|
|
||||||
const float approx_height = m_imgui->scaled(22.0f);
|
const float approx_height = m_imgui->scaled(22.0f);
|
||||||
y = std::min(y, bottom_limit - approx_height);
|
y = std::min(y, bottom_limit - approx_height);
|
||||||
GizmoImguiSetNextWIndowPos(x, y, ImGuiCond_Always);
|
GizmoImguiSetNextWIndowPos(x, y, ImGuiCond_Always);
|
||||||
@@ -363,69 +409,67 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott
|
|||||||
const float drag_left_width = ImGui::GetStyle().WindowPadding.x + sliders_width - space_size;
|
const float drag_left_width = ImGui::GetStyle().WindowPadding.x + sliders_width - space_size;
|
||||||
|
|
||||||
const float max_tooltip_width = ImGui::GetFontSize() * 20.0f;
|
const float max_tooltip_width = ImGui::GetFontSize() * 20.0f;
|
||||||
ImDrawList * draw_list = ImGui::GetWindowDrawList();
|
|
||||||
ImVec2 pos = ImGui::GetCursorScreenPos();
|
|
||||||
static float color_button_high = 25.0;
|
|
||||||
draw_list->AddRectFilled({pos.x - 10.0f, pos.y - 7.0f}, {pos.x + window_width + ImGui::GetFrameHeight(), pos.y + color_button_high}, ImGui::GetColorU32(ImGuiCol_FrameBgActive, 1.0f), 5.0f);
|
|
||||||
|
|
||||||
float color_button = ImGui::GetCursorPos().y;
|
|
||||||
|
|
||||||
m_imgui->text(m_desc.at("filaments"));
|
m_imgui->text(m_desc.at("filaments"));
|
||||||
|
|
||||||
float start_pos_x = ImGui::GetCursorPos().x;
|
|
||||||
const ImVec2 max_label_size = ImGui::CalcTextSize("99", NULL, true);
|
|
||||||
const float item_spacing = m_imgui->scaled(0.8f);
|
|
||||||
size_t n_extruder_colors = std::min((size_t)EnforcerBlockerType::ExtruderMax, m_extruders_colors.size());
|
size_t n_extruder_colors = std::min((size_t)EnforcerBlockerType::ExtruderMax, m_extruders_colors.size());
|
||||||
|
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(7.f * scale, 7.f * scale));
|
||||||
|
ImGui::PushStyleVar(ImGuiStyleVar_IndentSpacing, 0); // removes extra space on tree node indentation
|
||||||
for (int extruder_idx = 0; extruder_idx < n_extruder_colors; extruder_idx++) {
|
for (int extruder_idx = 0; extruder_idx < n_extruder_colors; extruder_idx++) {
|
||||||
const ColorRGBA &extruder_color = m_extruders_colors[extruder_idx];
|
|
||||||
ImVec4 color_vec = ImGuiWrapper::to_ImVec4(extruder_color);
|
|
||||||
std::string color_label = std::string("##extruder color ") + std::to_string(extruder_idx);
|
|
||||||
std::string item_text = std::to_string(extruder_idx + 1);
|
|
||||||
const ImVec2 label_size = ImGui::CalcTextSize(item_text.c_str(), NULL, true);
|
|
||||||
|
|
||||||
const ImVec2 button_size(max_label_size.x + m_imgui->scaled(0.5f),0.f);
|
if (extruder_idx % max_filament_items_per_line != 0)
|
||||||
|
ImGui::SameLine();
|
||||||
|
|
||||||
float button_offset = start_pos_x;
|
if (draw_color_button(
|
||||||
if (extruder_idx % max_filament_items_per_line != 0) {
|
extruder_idx + 1, // idx
|
||||||
button_offset += filament_item_width * (extruder_idx % max_filament_items_per_line);
|
"###extruder_color_", // button_id
|
||||||
ImGui::SameLine(button_offset);
|
m_extruders_colors[extruder_idx], // color
|
||||||
|
m_extruders_colors[extruder_idx], // mapped_color (not used in here)
|
||||||
|
m_selected_extruder_idx == extruder_idx, // is_active
|
||||||
|
scale
|
||||||
|
)){
|
||||||
|
m_selected_extruder_idx = extruder_idx;
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw filament background
|
|
||||||
ImGuiColorEditFlags flags = ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_NoPicker | ImGuiColorEditFlags_NoTooltip;
|
|
||||||
if (m_selected_extruder_idx != extruder_idx) flags |= ImGuiColorEditFlags_NoBorder;
|
|
||||||
#ifdef __APPLE__
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImGuiWrapper::COL_ORCA); // ORCA use orca color for selected filament border
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f);
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0);
|
|
||||||
bool color_picked = ImGui::ColorButton(color_label.c_str(), color_vec, flags, button_size);
|
|
||||||
ImGui::PopStyleVar(2);
|
|
||||||
ImGui::PopStyleColor(1);
|
|
||||||
#else
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImGuiWrapper::COL_ORCA); // ORCA use orca color for selected filament border
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0);
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 2.0);
|
|
||||||
bool color_picked = ImGui::ColorButton(color_label.c_str(), color_vec, flags, button_size);
|
|
||||||
ImGui::PopStyleVar(2);
|
|
||||||
ImGui::PopStyleColor(1);
|
|
||||||
#endif
|
|
||||||
color_button_high = ImGui::GetCursorPos().y - color_button - 2.0;
|
|
||||||
if (color_picked) { m_selected_extruder_idx = extruder_idx; }
|
|
||||||
|
|
||||||
if (extruder_idx < 16 && ImGui::IsItemHovered()) m_imgui->tooltip(_L("Shortcut Key ") + std::to_string(extruder_idx + 1), max_tooltip_width);
|
if (extruder_idx < 16 && ImGui::IsItemHovered()) m_imgui->tooltip(_L("Shortcut Key ") + std::to_string(extruder_idx + 1), max_tooltip_width);
|
||||||
|
|
||||||
// draw filament id
|
|
||||||
float gray = 0.299 * extruder_color.r() + 0.587 * extruder_color.g() + 0.114 * extruder_color.b();
|
|
||||||
ImGui::SameLine(button_offset + (button_size.x - label_size.x) / 2.f);
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, {10.0,15.0});
|
|
||||||
if (gray * 255.f < 80.f)
|
|
||||||
ImGui::TextColored(ImVec4(1.0f, 1.0f, 1.0f, 1.0f), "%s", item_text.c_str());
|
|
||||||
else
|
|
||||||
ImGui::TextColored(ImVec4(0.0f, 0.0f, 0.0f, 1.0f), "%s", item_text.c_str());
|
|
||||||
|
|
||||||
ImGui::PopStyleVar();
|
|
||||||
}
|
}
|
||||||
//ImGui::NewLine();
|
// ORCA: Remap filaments section (Border only, Title in border).
|
||||||
|
// Styled as a panel for visual grouping.
|
||||||
|
if (ImGui::TreeNodeEx(m_desc.at("perform_remap").c_str(), ImGuiTreeNodeFlags_SpanAvailWidth | ImGuiTreeNodeFlags_FramePadding)){
|
||||||
|
render_filament_remap_ui(window_width, max_tooltip_width, scale);
|
||||||
|
|
||||||
|
bool has_mapping = false;
|
||||||
|
for (size_t i = 0; i < m_extruder_remap.size(); ++i){
|
||||||
|
if(m_extruder_remap[i] != i){
|
||||||
|
has_mapping = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::Dummy(ImVec2(0,0));
|
||||||
|
|
||||||
|
// ORCA: Add Remap and Cancel buttons (outside the panel)
|
||||||
|
m_imgui->disabled_begin(!has_mapping); // disable when no mapping
|
||||||
|
if (m_imgui->button(m_desc.at("remap"))) {
|
||||||
|
this->remap_filament_assignments();
|
||||||
|
// Reset mapping to identity after apply
|
||||||
|
for (size_t i = 0; i < m_extruder_remap.size(); ++i) m_extruder_remap[i] = i;
|
||||||
|
}
|
||||||
|
m_imgui->disabled_end(/*m_is_unknown_font*/);
|
||||||
|
|
||||||
|
if (has_mapping){ // show only when it has mapping
|
||||||
|
ImGui::SameLine();
|
||||||
|
if (m_imgui->button(m_desc.at("remap_reset"))) {
|
||||||
|
// Reset mapping to identity
|
||||||
|
for (size_t i = 0; i < m_extruder_remap.size(); ++i) m_extruder_remap[i] = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//ImGui::Dummy(ImVec2(0.0f, 3.f * scale));
|
||||||
|
ImGui::TreePop();
|
||||||
|
}
|
||||||
|
ImGui::PopStyleVar(2); // IndentSpacing ItemSpacing
|
||||||
|
|
||||||
ImGui::Dummy(ImVec2(0.0f, ImGui::GetFontSize() * 0.1));
|
ImGui::Dummy(ImVec2(0.0f, ImGui::GetFontSize() * 0.1));
|
||||||
|
|
||||||
m_imgui->text(m_desc.at("tool_type"));
|
m_imgui->text(m_desc.at("tool_type"));
|
||||||
@@ -439,29 +483,24 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott
|
|||||||
icons = { ImGui::CircleButtonIcon, ImGui::SphereButtonIcon, ImGui::TriangleButtonIcon, ImGui::HeightRangeIcon, ImGui::FillButtonIcon, ImGui::GapFillIcon };
|
icons = { ImGui::CircleButtonIcon, ImGui::SphereButtonIcon, ImGui::TriangleButtonIcon, ImGui::HeightRangeIcon, ImGui::FillButtonIcon, ImGui::GapFillIcon };
|
||||||
std::array<wxString, 6> tool_tips = { _L("Circle"), _L("Sphere"), _L("Triangle"), _L("Height Range"), _L("Fill"), _L("Gap Fill") };
|
std::array<wxString, 6> tool_tips = { _L("Circle"), _L("Sphere"), _L("Triangle"), _L("Height Range"), _L("Fill"), _L("Gap Fill") };
|
||||||
for (int i = 0; i < tool_ids.size(); i++) {
|
for (int i = 0; i < tool_ids.size(); i++) {
|
||||||
std::string str_label = std::string("");
|
//std::string str_label = std::string("");
|
||||||
std::wstring btn_name = icons[i] + boost::nowide::widen(str_label);
|
//std::wstring btn_name = icons[i] + boost::nowide::widen(str_label);
|
||||||
|
|
||||||
if (i != 0) ImGui::SameLine((empty_button_width + m_imgui->scaled(1.75f)) * i + m_imgui->scaled(1.5f));
|
if (i != 0) ImGui::SameLine((empty_button_width + m_imgui->scaled(1.75f)) * i + m_imgui->scaled(1.5f));
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0);
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f, 0.f, 0.f, 0.f)); // ORCA Removes button background on dark mode
|
bool is_active = m_current_tool == tool_ids[i];
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f)); // ORCA Fixes icon rendered without colors while using Light theme
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);
|
||||||
if (m_current_tool == tool_ids[i]) {
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding , 3.f * scale);
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding , ImVec2(4.f * scale, 4.f * scale));
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_Text , ImVec4(1,1,1,1)); // ORCA Fixes icon rendered without colors while using Light theme
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.f, 0.59f, 0.53f, 0.30f)); // ORCA use orca color for selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_Button , is_active ? ImVec4(0.f, .59f, .53f, .25f) : ImVec4(0,0,0,0)); // ORCA
|
||||||
ImGui::PushStyleColor(ImGuiCol_Border, ImGuiWrapper::COL_ORCA); // ORCA use orca color for border on selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, is_active ? ImVec4(0.f, .59f, .53f, .25f) : ImVec4(.6f,.6f,.6f,.2f)); // ORCA
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0);
|
ImGui::PushStyleColor(ImGuiCol_ButtonActive , is_active ? ImVec4(0.f, .59f, .53f, .30f) : ImVec4(0,0,0,0)); // ORCA
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 1.0);
|
ImGui::PushStyleColor(ImGuiCol_Border , is_active ? ImGuiWrapper::COL_ORCA : ImVec4(0,0,0,0)); // ORCA
|
||||||
}
|
ImGui::PushStyleColor(ImGuiCol_BorderActive , is_active ? ImGuiWrapper::COL_ORCA : ImVec4(0,0,0,0)); // ORCA matched color for fixing flicker on click
|
||||||
bool btn_clicked = ImGui::Button(into_u8(btn_name).c_str());
|
bool btn_clicked = m_imgui->glyph_button(icons[i], ImVec2(16.f * scale, 16.f * scale)); // ORCA glyph_button for fixing unequal paddings
|
||||||
if (m_current_tool == tool_ids[i])
|
ImGui::PopStyleColor(6);
|
||||||
{
|
ImGui::PopStyleVar(3);
|
||||||
ImGui::PopStyleColor(4);
|
|
||||||
ImGui::PopStyleVar(2);
|
|
||||||
}
|
|
||||||
ImGui::PopStyleColor(2);
|
|
||||||
ImGui::PopStyleVar(1);
|
|
||||||
|
|
||||||
if (btn_clicked && m_current_tool != tool_ids[i]) {
|
if (btn_clicked && m_current_tool != tool_ids[i]) {
|
||||||
m_current_tool = tool_ids[i];
|
m_current_tool = tool_ids[i];
|
||||||
@@ -598,60 +637,6 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott
|
|||||||
m_c->object_clipper()->set_position_by_ratio(clp_dist, true);
|
m_c->object_clipper()->set_position_by_ratio(clp_dist, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::Separator();
|
|
||||||
// ORCA: Remap filaments section (Border only, Title in border).
|
|
||||||
// Styled as a panel for visual grouping.
|
|
||||||
if (m_imgui->button(m_desc.at("perform_remap"))) {
|
|
||||||
m_show_remap_panel = !m_show_remap_panel;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_show_remap_panel)
|
|
||||||
{
|
|
||||||
ImGui::Spacing();
|
|
||||||
|
|
||||||
ImDrawList* draw_list = ImGui::GetWindowDrawList();
|
|
||||||
std::string title = into_u8(m_desc.at("perform_remap"));
|
|
||||||
float available_width = ImGui::GetContentRegionAvail().x;
|
|
||||||
|
|
||||||
// ORCA: Draw Background filled (consistent with Filaments section)
|
|
||||||
// Use static to remember height from previous frame so we can draw it behind.
|
|
||||||
static float remap_panel_high = 40.0f;
|
|
||||||
ImVec2 p_bg_min = ImGui::GetCursorScreenPos();
|
|
||||||
// Adjust background position: slight negative offset to align with padding, width fills available
|
|
||||||
// height from static variable.
|
|
||||||
draw_list->AddRectFilled({p_bg_min.x - 10.0f, p_bg_min.y - 7.0f}, {p_bg_min.x + available_width + ImGui::GetFrameHeight(), p_bg_min.y + remap_panel_high}, ImGui::GetColorU32(ImGuiCol_FrameBgActive, 1.0f), 5.0f);
|
|
||||||
|
|
||||||
float start_y = ImGui::GetCursorPos().y;
|
|
||||||
|
|
||||||
// ORCA: Title as simple text - Removed as per request (redundant with button)
|
|
||||||
// m_imgui->text(title);
|
|
||||||
|
|
||||||
ImGui::BeginGroup();
|
|
||||||
// ORCA: Reduce vertical spacing within this group
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(m_imgui->scaled(0.4f), m_imgui->scaled(0.2f)));
|
|
||||||
|
|
||||||
render_filament_remap_ui(window_width, max_tooltip_width);
|
|
||||||
|
|
||||||
ImGui::PopStyleVar();
|
|
||||||
ImGui::EndGroup();
|
|
||||||
|
|
||||||
// ORCA: Update height for next frame fill
|
|
||||||
remap_panel_high = ImGui::GetCursorPos().y - start_y;
|
|
||||||
|
|
||||||
// ORCA: Add Remap and Cancel buttons (outside the panel)
|
|
||||||
ImGui::Spacing();
|
|
||||||
if (m_imgui->button(m_desc.at("remap"))) {
|
|
||||||
this->remap_filament_assignments();
|
|
||||||
// Reset mapping to identity after apply
|
|
||||||
for (size_t i = 0; i < m_extruder_remap.size(); ++i) m_extruder_remap[i] = i;
|
|
||||||
}
|
|
||||||
ImGui::SameLine();
|
|
||||||
if (m_imgui->button(m_desc.at("cancel_remap"))) {
|
|
||||||
// Reset mapping to identity
|
|
||||||
for (size_t i = 0; i < m_extruder_remap.size(); ++i) m_extruder_remap[i] = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(6.0f, 10.0f));
|
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(6.0f, 10.0f));
|
||||||
@@ -1000,180 +985,85 @@ void GLGizmoMmuSegmentation::update_used_filaments()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLGizmoMmuSegmentation::render_filament_remap_ui(float window_width, float max_tooltip_width)
|
void GLGizmoMmuSegmentation::render_filament_remap_ui(float window_width, float max_tooltip_width, float scale)
|
||||||
{
|
{
|
||||||
size_t n_extr = std::min((size_t)EnforcerBlockerType::ExtruderMax, m_extruders_colors.size());
|
size_t n_extr = std::min((size_t)EnforcerBlockerType::ExtruderMax, m_extruders_colors.size());
|
||||||
|
|
||||||
const ImVec2 max_label_size = ImGui::CalcTextSize("99", NULL, true);
|
|
||||||
const ImVec2 button_size(max_label_size.x + m_imgui->scaled(0.5f), 0.f);
|
|
||||||
|
|
||||||
int displayed_count = 0;
|
int displayed_count = 0;
|
||||||
const int max_per_line = 8;
|
const int max_per_line = 8;
|
||||||
|
|
||||||
// ORCA: Use m_used_filaments to show only relevant source filaments
|
// ORCA: Use m_used_filaments to show only relevant source filaments
|
||||||
|
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(7.f * scale, 7.f * scale));
|
||||||
for (size_t src : m_used_filaments) {
|
for (size_t src : m_used_filaments) {
|
||||||
if (src >= n_extr) continue;
|
if (src >= n_extr) continue;
|
||||||
|
|
||||||
const ColorRGBA &src_col = m_extruders_colors[src]; // keep for text contrast
|
|
||||||
const ColorRGBA &dst_col = m_extruders_colors[m_extruder_remap[src]];
|
|
||||||
|
|
||||||
// ORCA: Button now shows the SOURCE color (per maintainer request)
|
|
||||||
// This keeps the UI stable until "Remap" is clicked.
|
|
||||||
ImVec4 col_vec = ImGuiWrapper::to_ImVec4(src_col);
|
|
||||||
|
|
||||||
if (displayed_count > 0 && (displayed_count % max_per_line != 0))
|
if (displayed_count > 0 && (displayed_count % max_per_line != 0))
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
|
||||||
std::string btn_id = "##remap_src_" + std::to_string(src);
|
|
||||||
std::string pop_id = "popup_" + std::to_string(src);
|
std::string pop_id = "popup_" + std::to_string(src);
|
||||||
|
|
||||||
ImGuiColorEditFlags flags = ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_NoInputs |
|
bool src_clicked = draw_color_button(
|
||||||
ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_NoPicker |
|
(int)src + 1, // idx
|
||||||
ImGuiColorEditFlags_NoTooltip;
|
"###remap_src_", // button_id
|
||||||
|
m_extruders_colors[src], // color
|
||||||
|
m_extruders_colors[m_extruder_remap[src]], // mapped_color (shows bubble if not matches with Color)
|
||||||
|
ImGui::IsPopupOpen(pop_id.c_str()), // is_active
|
||||||
|
scale
|
||||||
|
);
|
||||||
|
|
||||||
// ORCA: Show border ONLY if the popup is open (visual feedback for active selection)
|
if (src_clicked) {
|
||||||
// Decoupled from m_selected_extruder_idx to prevent unwanted selection highlights.
|
|
||||||
if (!ImGui::IsPopupOpen(pop_id.c_str()))
|
|
||||||
flags |= ImGuiColorEditFlags_NoBorder;
|
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImGuiWrapper::COL_ORCA);
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f);
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0);
|
|
||||||
bool clicked = ImGui::ColorButton(btn_id.c_str(), col_vec, flags, button_size);
|
|
||||||
ImGui::PopStyleVar(2);
|
|
||||||
ImGui::PopStyleColor(1);
|
|
||||||
#else
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImGuiWrapper::COL_ORCA);
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0);
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 2.0);
|
|
||||||
bool clicked = ImGui::ColorButton(btn_id.c_str(), col_vec, flags, button_size);
|
|
||||||
ImGui::PopStyleVar(2);
|
|
||||||
ImGui::PopStyleColor(1);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// overlay destination number with proper contrast calculation
|
|
||||||
// ORCA: Text still shows DESTINATION index, but contrast is against SOURCE color now.
|
|
||||||
std::string dst_txt = std::to_string(m_extruder_remap[src] + 1);
|
|
||||||
float gray = 0.299f * src_col.r() + 0.587f * src_col.g() + 0.114f * src_col.b();
|
|
||||||
ImVec2 txt_sz = ImGui::CalcTextSize(dst_txt.c_str());
|
|
||||||
ImVec2 pos = ImGui::GetItemRectMin();
|
|
||||||
ImVec2 size = ImGui::GetItemRectSize();
|
|
||||||
|
|
||||||
if (gray * 255.f < 80.f)
|
|
||||||
ImGui::GetWindowDrawList()->AddText(
|
|
||||||
ImVec2(pos.x + (size.x - txt_sz.x) * 0.5f, pos.y + (size.y - txt_sz.y) * 0.5f),
|
|
||||||
IM_COL32(255,255,255,255), dst_txt.c_str());
|
|
||||||
else
|
|
||||||
ImGui::GetWindowDrawList()->AddText(
|
|
||||||
ImVec2(pos.x + (size.x - txt_sz.x) * 0.5f, pos.y + (size.y - txt_sz.y) * 0.5f),
|
|
||||||
IM_COL32(0,0,0,255), dst_txt.c_str());
|
|
||||||
|
|
||||||
// ORCA: Show NEW color as a small triangle in the corner if remapped
|
|
||||||
if (src != m_extruder_remap[src]) {
|
|
||||||
float s = m_imgui->scaled(0.55f);
|
|
||||||
float offset = m_imgui->scaled(0.15f); // Inset to avoid rounded corner clipping
|
|
||||||
ImVec2 p = ImVec2(pos.x + offset, pos.y + offset);
|
|
||||||
|
|
||||||
// Contrast outline: White for dark backgrounds, Black for light backgrounds
|
|
||||||
// Use dst_col (new color) for outline contrast check? Or src_col?
|
|
||||||
// Usually outline is around the triangle (dst_col).
|
|
||||||
float dst_gray = 0.299f * dst_col.r() + 0.587f * dst_col.g() + 0.114f * dst_col.b();
|
|
||||||
ImU32 outline_col = (dst_gray * 255.f < 80.f) ? IM_COL32(255, 255, 255, 180) : IM_COL32(0, 0, 0, 180);
|
|
||||||
|
|
||||||
ImDrawList* draw_list = ImGui::GetWindowDrawList();
|
|
||||||
draw_list->AddTriangleFilled(
|
|
||||||
p,
|
|
||||||
ImVec2(p.x + s, p.y),
|
|
||||||
ImVec2(p.x, p.y + s),
|
|
||||||
ImGuiWrapper::to_ImU32(dst_col));
|
|
||||||
|
|
||||||
// ORCA: Add a thin outline for better contrast when colors are similar
|
|
||||||
draw_list->AddTriangle(
|
|
||||||
p,
|
|
||||||
ImVec2(p.x + s, p.y),
|
|
||||||
ImVec2(p.x, p.y + s),
|
|
||||||
outline_col,
|
|
||||||
0.5f);
|
|
||||||
}
|
|
||||||
|
|
||||||
// popup with possible destinations
|
|
||||||
if (clicked) {
|
|
||||||
// Calculate popup position centered below the current button
|
// Calculate popup position centered below the current button
|
||||||
ImVec2 button_pos = ImGui::GetItemRectMin();
|
ImVec2 button_pos = ImGui::GetItemRectMin();
|
||||||
ImVec2 button_size = ImGui::GetItemRectSize();
|
ImVec2 button_size = ImGui::GetItemRectSize();
|
||||||
ImVec2 popup_pos(button_pos.x + button_size.x * 0.5f, button_pos.y + button_size.y);
|
|
||||||
|
|
||||||
// Set popup styling BEFORE opening popup
|
// Ensure popup is within the main viewport bounds
|
||||||
|
int dst_count = (int)std::min(n_extr, (size_t)max_per_line);
|
||||||
|
float est_popup_w = button_size.x * dst_count
|
||||||
|
+ ImGui::GetStyle().ItemSpacing.x * (dst_count - 1)
|
||||||
|
+ ImGui::GetStyle().WindowPadding.x * 2.f;
|
||||||
|
|
||||||
|
ImGuiViewport* vp = ImGui::GetMainViewport();
|
||||||
|
float right_limit = vp->WorkPos.x + vp->WorkSize.x - est_popup_w * 0.5f; // pivot is 0.5 so subtract half
|
||||||
|
float centered_x = button_pos.x + button_size.x * 0.5f; // pivot 0.5 just needs center x
|
||||||
|
|
||||||
|
ImVec2 popup_pos(std::min(centered_x, right_limit), button_pos.y + button_size.y);
|
||||||
|
|
||||||
ImGui::SetNextWindowPos(popup_pos, ImGuiCond_Appearing, ImVec2(0.5f, -0.1f));
|
ImGui::SetNextWindowPos(popup_pos, ImGuiCond_Appearing, ImVec2(0.5f, -0.1f));
|
||||||
ImGui::SetNextWindowBgAlpha(1.0f); // Ensure full opacity
|
ImGui::SetNextWindowBgAlpha(1.0f); // Ensure full opacity
|
||||||
ImGui::OpenPopup(pop_id.c_str());
|
ImGui::OpenPopup(pop_id.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ImGui::IsItemHovered() && src != m_extruder_remap[src]) // show tooltip if it has mapping info
|
||||||
|
m_imgui->tooltip(std::to_string(src + 1) + " >> " + std::to_string(m_extruder_remap[src] + 1), max_tooltip_width);
|
||||||
|
|
||||||
// Apply popup styling before BeginPopup using standard Orca colors
|
// Apply popup styling before BeginPopup using standard Orca colors
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_PopupRounding, 4.0f);
|
ImGui::PushStyleVar(ImGuiStyleVar_PopupRounding , 8.0f * scale);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_PopupBorderSize, 1.0f);
|
ImGui::PushStyleVar(ImGuiStyleVar_PopupBorderSize, 2.0f * scale); // thicker & colored border to prevent mixing with main window. Current ImGui version not supports shadows
|
||||||
// ORCA: Use FrameBgActive for consistency and to ensure visibility of white filaments
|
ImGui::PushStyleColor(ImGuiCol_PopupBg, ImGui::GetStyleColorVec4(ImGuiCol_WindowBg));
|
||||||
ImGui::PushStyleColor(ImGuiCol_PopupBg, ImGui::GetStyleColorVec4(ImGuiCol_FrameBgActive));
|
ImGui::PushStyleColor(ImGuiCol_Border , ImGui::ColorConvertFloat4ToU32(ImGuiWrapper::COL_ORCA));
|
||||||
ImGui::PushStyleColor(ImGuiCol_Border, m_is_dark_mode ? ImVec4(0.5f, 0.5f, 0.5f, 1.0f) : ImVec4(0.6f, 0.6f, 0.6f, 1.0f));
|
|
||||||
|
|
||||||
if (ImGui::BeginPopup(pop_id.c_str())) {
|
if (ImGui::BeginPopup(pop_id.c_str())) {
|
||||||
|
|
||||||
m_imgui->text(_L("To:"));
|
m_imgui->text(_L("To:"));
|
||||||
|
|
||||||
for (int dst = 0; dst < (int)n_extr; ++dst) {
|
for (int dst = 0; dst < (int)n_extr; ++dst) {
|
||||||
const ColorRGBA &dst_col_popup = m_extruders_colors[dst];
|
|
||||||
ImVec4 dst_vec = ImGuiWrapper::to_ImVec4(dst_col_popup);
|
|
||||||
if (dst > 0 && (dst % max_per_line != 0))
|
if (dst > 0 && (dst % max_per_line != 0))
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
std::string dst_btn = "##dst_" + std::to_string(src) + "_" + std::to_string(dst);
|
bool dst_clicked = draw_color_button(
|
||||||
|
dst + 1, // idx
|
||||||
// Apply same styling to destination buttons
|
"###remap_dst_", // button_id
|
||||||
ImGuiColorEditFlags dst_flags = ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_NoInputs |
|
m_extruders_colors[dst], // color
|
||||||
ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_NoPicker |
|
m_extruders_colors[dst], // mapped_color (non fuctional in here)
|
||||||
ImGuiColorEditFlags_NoTooltip;
|
m_extruder_remap[src] == dst, // is_active
|
||||||
// Show border for currently selected destination filament
|
scale
|
||||||
if (m_extruder_remap[src] != dst) dst_flags |= ImGuiColorEditFlags_NoBorder;
|
);
|
||||||
|
if (dst_clicked) {
|
||||||
#ifdef __APPLE__
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImGuiWrapper::COL_ORCA);
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f);
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0);
|
|
||||||
bool dst_clicked = ImGui::ColorButton(dst_btn.c_str(), dst_vec, dst_flags, button_size);
|
|
||||||
ImGui::PopStyleVar(2);
|
|
||||||
ImGui::PopStyleColor(1);
|
|
||||||
#else
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_FrameBg, ImGuiWrapper::COL_ORCA);
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0);
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 2.0);
|
|
||||||
bool dst_clicked = ImGui::ColorButton(dst_btn.c_str(), dst_vec, dst_flags, button_size);
|
|
||||||
ImGui::PopStyleVar(2);
|
|
||||||
ImGui::PopStyleColor(1);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// overlay destination number on popup buttons
|
|
||||||
std::string dst_num_txt = std::to_string(dst + 1);
|
|
||||||
float dst_gray = 0.299f * dst_col_popup.r() + 0.587f * dst_col_popup.g() + 0.114f * dst_col_popup.b();
|
|
||||||
ImVec2 dst_txt_sz = ImGui::CalcTextSize(dst_num_txt.c_str());
|
|
||||||
ImVec2 dst_pos = ImGui::GetItemRectMin();
|
|
||||||
ImVec2 dst_size = ImGui::GetItemRectSize();
|
|
||||||
|
|
||||||
if (dst_gray * 255.f < 80.f)
|
|
||||||
ImGui::GetWindowDrawList()->AddText(
|
|
||||||
ImVec2(dst_pos.x + (dst_size.x - dst_txt_sz.x) * 0.5f, dst_pos.y + (dst_size.y - dst_txt_sz.y) * 0.5f),
|
|
||||||
IM_COL32(255,255,255,255), dst_num_txt.c_str());
|
|
||||||
else
|
|
||||||
ImGui::GetWindowDrawList()->AddText(
|
|
||||||
ImVec2(dst_pos.x + (dst_size.x - dst_txt_sz.x) * 0.5f, dst_pos.y + (dst_size.y - dst_txt_sz.y) * 0.5f),
|
|
||||||
IM_COL32(0,0,0,255), dst_num_txt.c_str());
|
|
||||||
|
|
||||||
if (dst_clicked)
|
|
||||||
{
|
|
||||||
m_extruder_remap[src] = dst;
|
m_extruder_remap[src] = dst;
|
||||||
// update the source button color immediately
|
// update the source button color immediately
|
||||||
ImGui::CloseCurrentPopup();
|
ImGui::CloseCurrentPopup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ImGui::Dummy(ImVec2(0.0f, 2.f * scale));
|
||||||
ImGui::EndPopup();
|
ImGui::EndPopup();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1183,6 +1073,7 @@ void GLGizmoMmuSegmentation::render_filament_remap_ui(float window_width, float
|
|||||||
|
|
||||||
displayed_count++;
|
displayed_count++;
|
||||||
}
|
}
|
||||||
|
ImGui::PopStyleVar(1); // ItemSpacing
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLGizmoMmuSegmentation::remap_filament_assignments()
|
void GLGizmoMmuSegmentation::remap_filament_assignments()
|
||||||
|
|||||||
@@ -114,7 +114,6 @@ protected:
|
|||||||
bool m_detect_geometry_edge = true;
|
bool m_detect_geometry_edge = true;
|
||||||
|
|
||||||
// Filament remap feature
|
// Filament remap feature
|
||||||
bool m_show_remap_panel = false;
|
|
||||||
std::vector<size_t> m_extruder_remap; // index → target extruder index
|
std::vector<size_t> m_extruder_remap; // index → target extruder index
|
||||||
// ORCA: Cache used filaments to filter UI
|
// ORCA: Cache used filaments to filter UI
|
||||||
std::set<size_t> m_used_filaments; // Set of used filament indices (cached)
|
std::set<size_t> m_used_filaments; // Set of used filament indices (cached)
|
||||||
@@ -136,13 +135,16 @@ private:
|
|||||||
|
|
||||||
void init_model_triangle_selectors();
|
void init_model_triangle_selectors();
|
||||||
|
|
||||||
|
// ORCA
|
||||||
|
bool draw_color_button(int idx, std::string id_str, const ColorRGBA& color, ColorRGBA& map_color, bool active, float scale);
|
||||||
|
|
||||||
// BBS
|
// BBS
|
||||||
void update_triangle_selectors_colors();
|
void update_triangle_selectors_colors();
|
||||||
void init_extruders_data();
|
void init_extruders_data();
|
||||||
|
|
||||||
// Filament remapping methods
|
// Filament remapping methods
|
||||||
void remap_filament_assignments();
|
void remap_filament_assignments();
|
||||||
void render_filament_remap_ui(float window_width, float max_tooltip_width);
|
void render_filament_remap_ui(float window_width, float max_tooltip_width, float scale);
|
||||||
// ORCA: Helper to update the cache of used filaments
|
// ORCA: Helper to update the cache of used filaments
|
||||||
void update_used_filaments();
|
void update_used_filaments();
|
||||||
|
|
||||||
|
|||||||
@@ -121,6 +121,12 @@ void GLGizmoSeam::on_render_input_window(float x, float y, float bottom_limit)
|
|||||||
if (! m_c->selection_info()->model_object())
|
if (! m_c->selection_info()->model_object())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
float scale = m_parent.get_scale();
|
||||||
|
#ifdef WIN32
|
||||||
|
int dpi = get_dpi_for_window(wxGetApp().GetTopWindow());
|
||||||
|
scale *= (float) dpi / (float) DPI_DEFAULT;
|
||||||
|
#endif // WIN32
|
||||||
|
|
||||||
const float approx_height = m_imgui->scaled(12.5f);
|
const float approx_height = m_imgui->scaled(12.5f);
|
||||||
y = std::min(y, bottom_limit - approx_height);
|
y = std::min(y, bottom_limit - approx_height);
|
||||||
//BBS: GUI refactor: move gizmo to the right
|
//BBS: GUI refactor: move gizmo to the right
|
||||||
@@ -170,29 +176,25 @@ void GLGizmoSeam::on_render_input_window(float x, float y, float bottom_limit)
|
|||||||
icons = { ImGui::CircleButtonIcon, ImGui::SphereButtonIcon };
|
icons = { ImGui::CircleButtonIcon, ImGui::SphereButtonIcon };
|
||||||
std::array<wxString, 2> tool_tips = { _L("Circle"), _L("Sphere")};
|
std::array<wxString, 2> tool_tips = { _L("Circle"), _L("Sphere")};
|
||||||
for (int i = 0; i < tool_ids.size(); i++) {
|
for (int i = 0; i < tool_ids.size(); i++) {
|
||||||
std::string str_label = std::string("##");
|
//std::string str_label = std::string("##");
|
||||||
std::wstring btn_name = icons[i] + boost::nowide::widen(str_label);
|
//std::wstring btn_name = icons[i] + boost::nowide::widen(str_label);
|
||||||
|
|
||||||
if (i != 0) ImGui::SameLine((empty_button_width + m_imgui->scaled(1.75f)) * i + m_imgui->scaled(1.3f));
|
if (i != 0) ImGui::SameLine((empty_button_width + m_imgui->scaled(1.75f)) * i + m_imgui->scaled(1.3f));
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0);
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f, 0.f, 0.f, 0.f)); // ORCA Removes button background on dark mode
|
bool is_active = m_current_tool == tool_ids[i];
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.f, 1.f, 1.f, 1.f)); // ORCA: Fixes icon rendered without colors while using Light theme
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);
|
||||||
if (m_current_tool == tool_ids[i]) {
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding , 3.f * scale);
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding , ImVec2(4.f * scale, 4.f * scale));
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.f, 0.59f, 0.53f, 0.25f)); // ORCA use orca color for selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_Text , ImVec4(1,1,1,1)); // ORCA Fixes icon rendered without colors while using Light theme
|
||||||
ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.f, 0.59f, 0.53f, 0.30f)); // ORCA use orca color for selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_Button , is_active ? ImVec4(0.f, .59f, .53f, .25f) : ImVec4(0,0,0,0)); // ORCA
|
||||||
ImGui::PushStyleColor(ImGuiCol_Border, ImGuiWrapper::COL_ORCA); // ORCA use orca color for border on selected tool / brush
|
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, is_active ? ImVec4(0.f, .59f, .53f, .25f) : ImVec4(.6f,.6f,.6f,.2f)); // ORCA
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0);
|
ImGui::PushStyleColor(ImGuiCol_ButtonActive , is_active ? ImVec4(0.f, .59f, .53f, .30f) : ImVec4(0,0,0,0)); // ORCA
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 1.0);
|
ImGui::PushStyleColor(ImGuiCol_Border , is_active ? ImGuiWrapper::COL_ORCA : ImVec4(0,0,0,0)); // ORCA
|
||||||
}
|
ImGui::PushStyleColor(ImGuiCol_BorderActive , is_active ? ImGuiWrapper::COL_ORCA : ImVec4(0,0,0,0)); // ORCA matched color for fixing flicker on click
|
||||||
bool btn_clicked = ImGui::Button(into_u8(btn_name).c_str());
|
bool btn_clicked = m_imgui->glyph_button(icons[i], ImVec2(16.f * scale, 16.f * scale)); // ORCA glyph_button for fixing unequal paddings
|
||||||
if (m_current_tool == tool_ids[i])
|
ImGui::PopStyleColor(6);
|
||||||
{
|
ImGui::PopStyleVar(3);
|
||||||
ImGui::PopStyleColor(4);
|
|
||||||
ImGui::PopStyleVar(2);
|
|
||||||
}
|
|
||||||
ImGui::PopStyleColor(2);
|
|
||||||
ImGui::PopStyleVar(1);
|
|
||||||
if (btn_clicked && m_current_tool != tool_ids[i]) {
|
if (btn_clicked && m_current_tool != tool_ids[i]) {
|
||||||
m_current_tool = tool_ids[i];
|
m_current_tool = tool_ids[i];
|
||||||
for (auto& triangle_selector : m_triangle_selectors) {
|
for (auto& triangle_selector : m_triangle_selectors) {
|
||||||
|
|||||||
@@ -908,6 +908,54 @@ bool ImGuiWrapper::button(const wxString& label, const ImVec2 &size, bool enable
|
|||||||
return (enable) ? res : false;
|
return (enable) ? res : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ORCA Glyph based button for correctly rendering icon size based Glyph
|
||||||
|
// excludes spacings after Glyph and centers icon properly
|
||||||
|
// compared to image_button this supports styling
|
||||||
|
bool ImGuiWrapper::glyph_button(wchar_t icon_char, ImVec2 icon_size)
|
||||||
|
{
|
||||||
|
ImDrawList* draw_list = ImGui::GetWindowDrawList();
|
||||||
|
ImFont* font = ImGui::GetFont();
|
||||||
|
ImGuiStyle& style = ImGui::GetStyle();
|
||||||
|
ImVec2 padding = style.FramePadding;
|
||||||
|
float border_w = style.FrameBorderSize;
|
||||||
|
float rounding = style.FrameRounding;
|
||||||
|
std::string icon_str = into_u8(icon_char);
|
||||||
|
const char* icon = icon_str.c_str();
|
||||||
|
|
||||||
|
float width = icon_size.x + (padding.x + border_w) * 2.f;
|
||||||
|
float height = icon_size.y + (padding.y + border_w) * 2.f;
|
||||||
|
ImVec2 rc_min = ImGui::GetCursorScreenPos();
|
||||||
|
ImVec2 rc_max = ImVec2(rc_min.x + width, rc_min.y + height);
|
||||||
|
|
||||||
|
ImGui::Dummy(ImVec2(width, height));
|
||||||
|
|
||||||
|
ImGuiCol bg_color = ImGuiCol_Button;
|
||||||
|
ImGuiCol border_color = ImGuiCol_Border;
|
||||||
|
bool clicked = false;
|
||||||
|
|
||||||
|
if (ImGui::IsMouseHoveringRect(rc_min, rc_max)) {
|
||||||
|
bg_color = ImGuiCol_ButtonHovered;
|
||||||
|
if (ImGui::IsMouseClicked(ImGuiMouseButton_Left)) {
|
||||||
|
bg_color = ImGuiCol_ButtonActive;
|
||||||
|
border_color = ImGuiCol_BorderShadow;
|
||||||
|
clicked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
draw_list->AddRectFilled(rc_min, rc_max, ImGui::GetColorU32(bg_color), rounding);
|
||||||
|
|
||||||
|
if (border_w > 0.f)
|
||||||
|
draw_list->AddRect(rc_min, rc_max, ImGui::GetColorU32(border_color), rounding, 0, border_w);
|
||||||
|
|
||||||
|
ImVec2 text_pos = ImVec2(
|
||||||
|
rc_min.x + (width - font->FontSize) * .5f,
|
||||||
|
rc_min.y + (height - font->FontSize) * .5f
|
||||||
|
);
|
||||||
|
draw_list->AddText(font, font->FontSize, text_pos, ImGui::GetColorU32(ImGuiCol_Text), icon);
|
||||||
|
|
||||||
|
return clicked;
|
||||||
|
}
|
||||||
|
|
||||||
bool ImGuiWrapper::radio_button(const wxString &label, bool active)
|
bool ImGuiWrapper::radio_button(const wxString &label, bool active)
|
||||||
{
|
{
|
||||||
auto label_utf8 = into_u8(label);
|
auto label_utf8 = into_u8(label);
|
||||||
|
|||||||
@@ -133,6 +133,7 @@ public:
|
|||||||
bool bbl_button(const wxString &label, const wxString& tooltip = {});
|
bool bbl_button(const wxString &label, const wxString& tooltip = {});
|
||||||
bool button(const wxString& label, float width, float height);
|
bool button(const wxString& label, float width, float height);
|
||||||
bool button(const wxString& label, const ImVec2 &size, bool enable); // default size = ImVec2(0.f, 0.f)
|
bool button(const wxString& label, const ImVec2 &size, bool enable); // default size = ImVec2(0.f, 0.f)
|
||||||
|
bool glyph_button(wchar_t icon_char, ImVec2 icon_size); // ORCA
|
||||||
bool radio_button(const wxString &label, bool active);
|
bool radio_button(const wxString &label, bool active);
|
||||||
static ImVec4 to_ImVec4(const ColorRGB &color);
|
static ImVec4 to_ImVec4(const ColorRGB &color);
|
||||||
bool input_double(const std::string &label, const double &value, const std::string &format = "%.3f");
|
bool input_double(const std::string &label, const double &value, const std::string &format = "%.3f");
|
||||||
|
|||||||
@@ -1355,16 +1355,16 @@ void PlaterPresetComboBox::update()
|
|||||||
bool unsupported = group == "Unsupported presets";
|
bool unsupported = group == "Unsupported presets";
|
||||||
for (auto it : list) {
|
for (auto it : list) {
|
||||||
// ORCA add sorting support for vendor / type for user presets
|
// ORCA add sorting support for vendor / type for user presets
|
||||||
auto groupName2 = groupName == "by_bundle" ? (preset_bundle_names[it->first].empty() ? _L("Unspecified") : preset_bundle_names[it->first])
|
auto groupName2 = groupName == "by_bundle" ? (preset_bundle_names[it->first].empty() ? _L("Unspecified") : from_u8(preset_bundle_names[it->first]))
|
||||||
: groupName == "by_type" ? (preset_filament_types[it->first].empty() ? _L("Unspecified") : preset_filament_types[it->first])
|
: groupName == "by_type" ? (preset_filament_types[it->first].empty() ? _L("Unspecified") : from_u8(preset_filament_types[it->first]))
|
||||||
: groupName == "by_vendor" ? (preset_filament_vendors[it->first].empty() ? _L("Unspecified") : preset_filament_vendors[it->first])
|
: groupName == "by_vendor" ? (preset_filament_vendors[it->first].empty() ? _L("Unspecified") : from_u8(preset_filament_vendors[it->first]))
|
||||||
: groupByGroup ? groupName
|
: groupByGroup ? groupName
|
||||||
: preset_filament_vendors[it->first];
|
: from_u8(preset_filament_vendors[it->first]);
|
||||||
int index = groupName == "by_bundle"
|
int index = groupName == "by_bundle"
|
||||||
? Append(preset_aliases[it->first], *it->second,
|
? Append(from_u8(preset_aliases[it->first]), *it->second,
|
||||||
from_u8(preset_bundle_ids[it->first]), groupName2, nullptr,
|
from_u8(preset_bundle_ids[it->first]), groupName2, nullptr,
|
||||||
unsupported ? DD_ITEM_STYLE_DISABLED : 0)
|
unsupported ? DD_ITEM_STYLE_DISABLED : 0)
|
||||||
: Append(preset_aliases[it->first], *it->second, groupName2, nullptr,
|
: Append(from_u8(preset_aliases[it->first]), *it->second, groupName2, nullptr,
|
||||||
unsupported ? DD_ITEM_STYLE_DISABLED : 0);
|
unsupported ? DD_ITEM_STYLE_DISABLED : 0);
|
||||||
SetItemAlias(index, it->first);
|
SetItemAlias(index, it->first);
|
||||||
if (unsupported)
|
if (unsupported)
|
||||||
@@ -1380,7 +1380,7 @@ void PlaterPresetComboBox::update()
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (std::map<wxString, wxBitmap *>::const_iterator it = presets.begin(); it != presets.end(); ++it) {
|
for (std::map<wxString, wxBitmap *>::const_iterator it = presets.begin(); it != presets.end(); ++it) {
|
||||||
int index = Append(preset_aliases[it->first], *it->second);
|
int index = Append(from_u8(preset_aliases[it->first]), *it->second);
|
||||||
SetItemAlias(index, it->first);
|
SetItemAlias(index, it->first);
|
||||||
SetItemTooltip(index, preset_descriptions[it->first]);
|
SetItemTooltip(index, preset_descriptions[it->first]);
|
||||||
if (group == "System presets")
|
if (group == "System presets")
|
||||||
@@ -1767,10 +1767,10 @@ void TabPresetComboBox::update()
|
|||||||
// Get bundle name for grouping
|
// Get bundle name for grouping
|
||||||
wxString bundle_name = _L("Unspecified");
|
wxString bundle_name = _L("Unspecified");
|
||||||
if (preset_bundle_names.count(it->first) > 0 && !preset_bundle_names[it->first].empty()) {
|
if (preset_bundle_names.count(it->first) > 0 && !preset_bundle_names[it->first].empty()) {
|
||||||
bundle_name = preset_bundle_names[it->first];
|
bundle_name = from_u8(preset_bundle_names[it->first]);
|
||||||
}
|
}
|
||||||
// Use Append with group parameter for sub-dropdown grouping
|
// Use Append with group parameter for sub-dropdown grouping
|
||||||
int item_id = Append(preset_aliases[it->first], *it->second.first, from_u8(preset_bundle_ids[it->first]), bundle_name);
|
int item_id = Append(from_u8(preset_aliases[it->first]), *it->second.first, from_u8(preset_bundle_ids[it->first]), bundle_name);
|
||||||
SetItemAlias(item_id, it->first);
|
SetItemAlias(item_id, it->first);
|
||||||
SetItemTooltip(item_id, preset_descriptions[it->first]);
|
SetItemTooltip(item_id, preset_descriptions[it->first]);
|
||||||
bool is_enabled = it->second.second;
|
bool is_enabled = it->second.second;
|
||||||
|
|||||||
+14
-11
@@ -2303,7 +2303,7 @@ void TabPrint::build()
|
|||||||
optgroup->append_single_option_line("xy_hole_compensation", "quality_settings_precision#x-y-compensation");
|
optgroup->append_single_option_line("xy_hole_compensation", "quality_settings_precision#x-y-compensation");
|
||||||
optgroup->append_single_option_line("xy_contour_compensation", "quality_settings_precision#x-y-compensation");
|
optgroup->append_single_option_line("xy_contour_compensation", "quality_settings_precision#x-y-compensation");
|
||||||
optgroup->append_single_option_line("elefant_foot_compensation", "quality_settings_precision#elephant-foot-compensation");
|
optgroup->append_single_option_line("elefant_foot_compensation", "quality_settings_precision#elephant-foot-compensation");
|
||||||
optgroup->append_single_option_line("elefant_foot_layers_density", "quality_settings_precision#elephant-foot-compensation");
|
optgroup->append_single_option_line("elefant_foot_layers_density", "quality_settings_precision#elephant-foot-compensation-density");
|
||||||
optgroup->append_single_option_line("elefant_foot_compensation_layers", "quality_settings_precision#elephant-foot-compensation");
|
optgroup->append_single_option_line("elefant_foot_compensation_layers", "quality_settings_precision#elephant-foot-compensation");
|
||||||
optgroup->append_single_option_line("precise_outer_wall", "quality_settings_precision#precise-wall");
|
optgroup->append_single_option_line("precise_outer_wall", "quality_settings_precision#precise-wall");
|
||||||
optgroup->append_single_option_line("precise_z_height", "quality_settings_precision#precise-z-height");
|
optgroup->append_single_option_line("precise_z_height", "quality_settings_precision#precise-z-height");
|
||||||
@@ -2330,16 +2330,16 @@ void TabPrint::build()
|
|||||||
|
|
||||||
optgroup = page->new_optgroup(L("Wall generator"), L"param_wall_generator");
|
optgroup = page->new_optgroup(L("Wall generator"), L"param_wall_generator");
|
||||||
optgroup->append_single_option_line("wall_generator", "quality_settings_wall_generator");
|
optgroup->append_single_option_line("wall_generator", "quality_settings_wall_generator");
|
||||||
optgroup->append_single_option_line("wall_transition_angle", "quality_settings_wall_generator#arachne");
|
optgroup->append_single_option_line("wall_transition_angle", "quality_settings_wall_generator#wall-transitioning-threshhold-angle");
|
||||||
optgroup->append_single_option_line("wall_transition_filter_deviation", "quality_settings_wall_generator#arachne");
|
optgroup->append_single_option_line("wall_transition_filter_deviation", "quality_settings_wall_generator#wall-transitioning-filter-margin");
|
||||||
optgroup->append_single_option_line("wall_transition_length", "quality_settings_wall_generator#arachne");
|
optgroup->append_single_option_line("wall_transition_length", "quality_settings_wall_generator#wall-transitioning-length");
|
||||||
optgroup->append_single_option_line("wall_distribution_count", "quality_settings_wall_generator#arachne");
|
optgroup->append_single_option_line("wall_distribution_count", "quality_settings_wall_generator#wall-distribution-count");
|
||||||
optgroup->append_single_option_line("initial_layer_min_bead_width", "quality_settings_wall_generator#arachne");
|
optgroup->append_single_option_line("initial_layer_min_bead_width", "quality_settings_wall_generator#first-layer-minimum-wall-width");
|
||||||
optgroup->append_single_option_line("min_bead_width", "quality_settings_wall_generator#arachne");
|
optgroup->append_single_option_line("min_bead_width", "quality_settings_wall_generator#minimum-wall-width");
|
||||||
optgroup->append_single_option_line("min_feature_size", "quality_settings_wall_generator#arachne");
|
optgroup->append_single_option_line("min_feature_size", "quality_settings_wall_generator#minimum-feature-size");
|
||||||
optgroup->append_single_option_line("min_length_factor", "quality_settings_wall_generator#arachne");
|
optgroup->append_single_option_line("min_length_factor", "quality_settings_wall_generator#minimum-wall-length");
|
||||||
optgroup->append_single_option_line("wall_maximum_resolution", "quality_settings_wall_generator#arachne");
|
optgroup->append_single_option_line("wall_maximum_resolution", "quality_settings_wall_generator#maximum-wall-resolution");
|
||||||
optgroup->append_single_option_line("wall_maximum_deviation", "quality_settings_wall_generator#arachne");
|
optgroup->append_single_option_line("wall_maximum_deviation", "quality_settings_wall_generator#maximum-wall-deviation");
|
||||||
|
|
||||||
optgroup = page->new_optgroup(L("Walls and surfaces"), L"param_wall_surface");
|
optgroup = page->new_optgroup(L("Walls and surfaces"), L"param_wall_surface");
|
||||||
optgroup->append_single_option_line("wall_sequence", "quality_settings_wall_and_surfaces#walls-printing-order");
|
optgroup->append_single_option_line("wall_sequence", "quality_settings_wall_and_surfaces#walls-printing-order");
|
||||||
@@ -2677,6 +2677,9 @@ void TabPrint::build()
|
|||||||
optgroup->append_single_option_line("fuzzy_skin_scale", "others_settings_fuzzy_skin#skin-feature-size");
|
optgroup->append_single_option_line("fuzzy_skin_scale", "others_settings_fuzzy_skin#skin-feature-size");
|
||||||
optgroup->append_single_option_line("fuzzy_skin_octaves", "others_settings_fuzzy_skin#skin-noise-octaves");
|
optgroup->append_single_option_line("fuzzy_skin_octaves", "others_settings_fuzzy_skin#skin-noise-octaves");
|
||||||
optgroup->append_single_option_line("fuzzy_skin_persistence", "others_settings_fuzzy_skin#skin-noise-persistence");
|
optgroup->append_single_option_line("fuzzy_skin_persistence", "others_settings_fuzzy_skin#skin-noise-persistence");
|
||||||
|
optgroup->append_single_option_line("fuzzy_skin_ripples_per_layer", "others_settings_fuzzy_skin#ripples-per-layer");
|
||||||
|
optgroup->append_single_option_line("fuzzy_skin_ripple_offset", "others_settings_fuzzy_skin#ripple-offset");
|
||||||
|
optgroup->append_single_option_line("fuzzy_skin_layers_between_ripple_offset", "others_settings_fuzzy_skin#layers-between-ripple-offset");
|
||||||
optgroup->append_single_option_line("fuzzy_skin_first_layer", "others_settings_fuzzy_skin#apply-fuzzy-skin-to-first-layer");
|
optgroup->append_single_option_line("fuzzy_skin_first_layer", "others_settings_fuzzy_skin#apply-fuzzy-skin-to-first-layer");
|
||||||
|
|
||||||
optgroup = page->new_optgroup(L("G-code output"), L"param_gcode");
|
optgroup = page->new_optgroup(L("G-code output"), L"param_gcode");
|
||||||
|
|||||||
Reference in New Issue
Block a user