Merge remote-tracking branch 'upstream/master' into mb-anchor-skin-in-infill

This commit is contained in:
Mark Burton 2017-03-01 14:24:21 +00:00
commit 9555a64ab1
141 changed files with 54969 additions and 1262 deletions

View file

@ -0,0 +1,84 @@
{
"id": "PRi3",
"name": "ABAX PRi3",
"version": 2,
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "ABAX 3d Technologies",
"manufacturer": "ABAX 3d Technologies",
"category": "Other",
"file_formats": "text/x-gcode"
},
"overrides": {
"machine_start_gcode": {
"default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z5.0 F200 ;move Z to position 5.0 mm\nG92 E0 ;zero the extruded length\n; -- end of START GCODE --"
},
"machine_end_gcode": {
"default_value": "; -- END GCODE --\nM104 S0 ;set extruder temperature to zero (turned off)\nM140 S0 ;set temp of bed to Zero \nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament a bit to release some of the pressure\nG1 F2000 X0 Y215 ;move X to min and Y to max \nG90 ;set to absolute positioning\nM84 ;turn off steppers\n; -- end of END GCODE --"
},
"machine_width": {
"default_value": 225
},
"machine_depth": {
"default_value": 220
},
"machine_height": {
"default_value": 200
},
"machine_heated_bed": {
"default_value": false
},
"machine_center_is_zero": {
"default_value": false
},
"machine_gcode_flavor": {
"default_value": "RepRap"
},
"layer_height": {
"default_value": 0.2
},
"layer_height_0": {
"default_value": 0.2
},
"wall_thickness": {
"default_value": 1
},
"top_bottom_thickness": {
"default_value": 1
},
"bottom_thickness": {
"default_value": 1
},
"material_print_temperature": {
"default_value": 200
},
"material_bed_temperature": {
"default_value": 0
},
"material_diameter": {
"default_value": 1.75
},
"speed_print": {
"default_value": 40
},
"speed_infill": {
"default_value": 70
},
"speed_wall": {
"default_value": 25
},
"speed_topbottom": {
"default_value": 15
},
"speed_travel": {
"default_value": 150
},
"speed_layer_0": {
"default_value": 30
},
"support_enable": {
"default_value": true
}
}
}

View file

@ -0,0 +1,84 @@
{
"id": "PRi5",
"name": "ABAX PRi5",
"version": 2,
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "ABAX 3d Technologies",
"manufacturer": "ABAX 3d Technologies",
"category": "Other",
"file_formats": "text/x-gcode"
},
"overrides": {
"machine_start_gcode": {
"default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z5.0 F200 ;move Z to position 5.0 mm\nG92 E0 ;zero the extruded length\n; -- end of START GCODE --"
},
"machine_end_gcode": {
"default_value": "; -- END GCODE --\nM104 S0 ;set extruder temperature to zero (turned off)\nM140 S0 ;set temp of bed to Zero \nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament a bit to release some of the pressure\nG1 F2000 X0 Y300 ;move X to min and Y to max \nG90 ;set to absolute positioning\nM84 ;turn off steppers\n; -- end of END GCODE --"
},
"machine_width": {
"default_value": 310
},
"machine_depth": {
"default_value": 310
},
"machine_height": {
"default_value": 300
},
"machine_heated_bed": {
"default_value": false
},
"machine_center_is_zero": {
"default_value": false
},
"machine_gcode_flavor": {
"default_value": "RepRap"
},
"layer_height": {
"default_value": 0.2
},
"layer_height_0": {
"default_value": 0.2
},
"wall_thickness": {
"default_value": 1
},
"top_bottom_thickness": {
"default_value": 1
},
"bottom_thickness": {
"default_value": 1
},
"material_print_temperature": {
"default_value": 200
},
"material_bed_temperature": {
"default_value": 0
},
"material_diameter": {
"default_value": 1.75
},
"speed_print": {
"default_value": 40
},
"speed_infill": {
"default_value": 70
},
"speed_wall": {
"default_value": 25
},
"speed_topbottom": {
"default_value": 15
},
"speed_travel": {
"default_value": 150
},
"speed_layer_0": {
"default_value": 30
},
"support_enable": {
"default_value": true
}
}
}

View file

@ -0,0 +1,84 @@
{
"id": "Titan",
"name": "ABAX Titan",
"version": 2,
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "ABAX 3d Technologies",
"manufacturer": "ABAX 3d Technologies",
"category": "Other",
"file_formats": "text/x-gcode"
},
"overrides": {
"machine_start_gcode": {
"default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z5.0 F200 ;move Z to position 5.0 mm\nG92 E0 ;zero the extruded length\n; -- end of START GCODE --"
},
"machine_end_gcode": {
"default_value": "; -- END GCODE --\nM104 S0 ;set extruder temperature to zero (turned off)\nM140 S0 ;set temp of bed to Zero \nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament a bit to release some of the pressure\nG1 F2000 X0 Y300 ;move X to min and Y to max \nG90 ;set to absolute positioning\nM84 ;turn off steppers\n; -- end of END GCODE --"
},
"machine_width": {
"default_value": 310
},
"machine_depth": {
"default_value": 310
},
"machine_height": {
"default_value": 300
},
"machine_heated_bed": {
"default_value": false
},
"machine_center_is_zero": {
"default_value": false
},
"machine_gcode_flavor": {
"default_value": "RepRap"
},
"layer_height": {
"default_value": 0.2
},
"layer_height_0": {
"default_value": 0.2
},
"wall_thickness": {
"default_value": 1
},
"top_bottom_thickness": {
"default_value": 1
},
"bottom_thickness": {
"default_value": 1
},
"material_print_temperature": {
"default_value": 200
},
"material_bed_temperature": {
"default_value": 0
},
"material_diameter": {
"default_value": 1.75
},
"speed_print": {
"default_value": 40
},
"speed_infill": {
"default_value": 70
},
"speed_wall": {
"default_value": 25
},
"speed_topbottom": {
"default_value": 15
},
"speed_travel": {
"default_value": 150
},
"speed_layer_0": {
"default_value": 30
},
"support_enable": {
"default_value": true
}
}
}

View file

@ -9,7 +9,6 @@
"manufacturer": "Cartesio bv",
"category": "Other",
"file_formats": "text/x-gcode",
"has_materials": true,
"has_machine_materials": true,
"has_variants": true,
"variants_name": "Nozzle size",
@ -31,12 +30,11 @@
"machine_heated_bed": { "default_value": true },
"machine_center_is_zero": { "default_value": false },
"machine_height": { "default_value": 400 },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_depth": { "default_value": 270 },
"machine_width": { "default_value": 430 },
"machine_name": { "default_value": "Cartesio" },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_start_gcode": {
"default_value": "M92 E162\nG21\nG90\nM42 S255 P13;chamber lights\nM42 S255 P12;fume extraction\nM140 S{material_bed_temperature}\n\nM117 Homing Y ......\nG28 Y\nM117 Homing X ......\nG28 X\nM117 Homing Z ......\nG28 Z F100\nG1 Z10 F600\nG1 X70 Y20 F9000;go to wipe point\n\nM190 S{material_bed_temperature}\nM104 S120 T1\nM109 S{material_print_temperature} T0\nM104 S21 T1\n\nM117 purging nozzle....\n\nT0\nG92 E0;set E\nG1 E10 F100\nG92 E0\nG1 E-{retraction_amount} F600\nG92 E0\n\nM117 wiping nozzle....\n\nG1 X1 Y24 F3000\nG1 X70 F9000\n\nM117 Printing .....\n\nG1 E1 F100\nG92 E-1\n"
"default_value": "M92 E159\nG21\nG90\nM42 S255 P13;chamber lights\nM42 S255 P12;fume extraction\nM140 S{material_bed_temperature}\n\nM117 Homing Y ......\nG28 Y\nM117 Homing X ......\nG28 X\nM117 Homing Z ......\nG28 Z F100\nG1 Z10 F600\nG1 X70 Y20 F9000;go to wipe point\n\nM190 S{material_bed_temperature}\nM104 S120 T1\nM109 S{material_print_temperature} T0\nM104 S21 T1\n\nM117 purging nozzle....\n\nT0\nG92 E0;set E\nG1 E10 F100\nG92 E0\nG1 E-{retraction_amount} F600\nG92 E0\n\nM117 wiping nozzle....\n\nG1 X1 Y24 F3000\nG1 X70 F9000\n\nM117 Printing .....\n\nG1 E1 F100\nG92 E-1\n"
},
"machine_end_gcode": {
"default_value": "; -- END GCODE --\nM106 S255\nM140 S5\nM104 S5 T0\nM104 S5 T1\nG1 X20.0 Y260.0 F6000\nG4 S7\nM84\nG4 S90\nM107\nM42 P12 S0\nM42 P13 S0\nM84\n; -- end of END GCODE --"

View file

@ -219,8 +219,11 @@
{
"label": "Nozzle angle",
"description": "The angle between the horizontal plane and the conical part right above the tip of the nozzle.",
"default_value": 45,
"unit": "°",
"type": "int",
"default_value": 45,
"maximum_value": "89",
"minimum_value": "1",
"settable_per_mesh": false,
"settable_per_extruder": false,
"settable_per_meshgroup": false
@ -615,7 +618,7 @@
"label": "Line Width",
"description": "Width of a single line. Generally, the width of each line should correspond to the width of the nozzle. However, slightly reducing this value could produce better prints.",
"unit": "mm",
"minimum_value": "0.0001",
"minimum_value": "0.001",
"minimum_value_warning": "0.5 * machine_nozzle_size",
"maximum_value_warning": "2 * machine_nozzle_size",
"default_value": 0.4,
@ -629,7 +632,7 @@
"label": "Wall Line Width",
"description": "Width of a single wall line.",
"unit": "mm",
"minimum_value": "0.0001",
"minimum_value": "0.001",
"minimum_value_warning": "0.75 * machine_nozzle_size",
"maximum_value_warning": "2 * machine_nozzle_size",
"value": "line_width",
@ -643,7 +646,7 @@
"label": "Outer Wall Line Width",
"description": "Width of the outermost wall line. By lowering this value, higher levels of detail can be printed.",
"unit": "mm",
"minimum_value": "0.0001",
"minimum_value": "0.001",
"minimum_value_warning": "0.75 * machine_nozzle_size if outer_inset_first else 0.1 * machine_nozzle_size",
"maximum_value_warning": "2 * machine_nozzle_size",
"default_value": 0.4,
@ -656,7 +659,7 @@
"label": "Inner Wall(s) Line Width",
"description": "Width of a single wall line for all wall lines except the outermost one.",
"unit": "mm",
"minimum_value": "0.0001",
"minimum_value": "0.001",
"minimum_value_warning": "0.5 * machine_nozzle_size",
"maximum_value_warning": "2 * machine_nozzle_size",
"default_value": 0.4,
@ -671,7 +674,7 @@
"label": "Top/Bottom Line Width",
"description": "Width of a single top/bottom line.",
"unit": "mm",
"minimum_value": "0.0001",
"minimum_value": "0.001",
"minimum_value_warning": "0.1 * machine_nozzle_size",
"maximum_value_warning": "2 * machine_nozzle_size",
"default_value": 0.4,
@ -684,7 +687,7 @@
"label": "Infill Line Width",
"description": "Width of a single infill line.",
"unit": "mm",
"minimum_value": "0.0001",
"minimum_value": "0.001",
"minimum_value_warning": "0.75 * machine_nozzle_size",
"maximum_value_warning": "3 * machine_nozzle_size",
"default_value": 0.4,
@ -698,7 +701,7 @@
"label": "Skirt/Brim Line Width",
"description": "Width of a single skirt or brim line.",
"unit": "mm",
"minimum_value": "0.0001",
"minimum_value": "0.001",
"minimum_value_warning": "0.75 * machine_nozzle_size",
"maximum_value_warning": "3 * machine_nozzle_size",
"default_value": 0.4,
@ -713,7 +716,7 @@
"label": "Support Line Width",
"description": "Width of a single support structure line.",
"unit": "mm",
"minimum_value": "0.0001",
"minimum_value": "0.001",
"minimum_value_warning": "0.75 * machine_nozzle_size",
"maximum_value_warning": "3 * machine_nozzle_size",
"default_value": 0.4,
@ -730,7 +733,7 @@
"description": "Width of a single support interface line.",
"unit": "mm",
"default_value": 0.4,
"minimum_value": "0.0001",
"minimum_value": "0.001",
"minimum_value_warning": "0.4 * machine_nozzle_size",
"maximum_value_warning": "2 * machine_nozzle_size",
"type": "float",
@ -749,7 +752,7 @@
"enabled": "resolveOrValue('prime_tower_enable')",
"default_value": 0.4,
"value": "line_width",
"minimum_value": "0.0001",
"minimum_value": "0.001",
"minimum_value_warning": "0.75 * machine_nozzle_size",
"maximum_value_warning": "2 * machine_nozzle_size",
"settable_per_mesh": false,
@ -1330,14 +1333,14 @@
"material_print_temperature":
{
"label": "Printing Temperature",
"description": "The temperature used for printing. Set at 0 to pre-heat the printer manually.",
"description": "The temperature used for printing. If this is 0, the extruder will not heat up for this print.",
"unit": "°C",
"type": "float",
"default_value": 210,
"value": "default_material_print_temperature",
"minimum_value": "-273.15",
"minimum_value_warning": "0",
"maximum_value_warning": "260",
"maximum_value_warning": "270",
"enabled": "not (material_flow_dependent_temperature) and machine_gcode_flavor != \"UltiGCode\"",
"settable_per_mesh": false,
"settable_per_extruder": true
@ -1349,10 +1352,10 @@
"unit": "°C",
"type": "float",
"default_value": 215,
"value": "material_print_temperature + 5",
"value": "material_print_temperature",
"minimum_value": "-273.15",
"minimum_value_warning": "0",
"maximum_value_warning": "260",
"maximum_value_warning": "270",
"enabled": "machine_gcode_flavor != \"UltiGCode\"",
"settable_per_mesh": false,
"settable_per_extruder": true
@ -1417,7 +1420,7 @@
"material_bed_temperature":
{
"label": "Build Plate Temperature",
"description": "The temperature used for the heated build plate. Set at 0 to pre-heat the printer manually.",
"description": "The temperature used for the heated build plate. If this is 0, the bed will not heat up for this print.",
"unit": "°C",
"type": "float",
"resolve": "max(extruderValues('material_bed_temperature'))",
@ -3402,7 +3405,7 @@
"type": "float",
"default_value": 0.4,
"value": "line_width",
"minimum_value": "0.0001",
"minimum_value": "0.001",
"minimum_value_warning": "extruderValue(adhesion_extruder_nr, 'machine_nozzle_size') * 0.1",
"maximum_value_warning": "extruderValue(adhesion_extruder_nr, 'machine_nozzle_size') * 2",
"enabled": "resolveOrValue('adhesion_type') == 'raft'",
@ -3417,7 +3420,7 @@
"unit": "mm",
"type": "float",
"default_value": 0.4,
"minimum_value": "0.0001",
"minimum_value": "0",
"minimum_value_warning": "extruderValue(adhesion_extruder_nr, 'raft_surface_line_width')",
"maximum_value_warning": "extruderValue(adhesion_extruder_nr, 'raft_surface_line_width') * 3",
"enabled": "resolveOrValue('adhesion_type') == 'raft'",
@ -3450,7 +3453,7 @@
"type": "float",
"default_value": 0.7,
"value": "line_width * 2",
"minimum_value": "0.0001",
"minimum_value": "0.001",
"minimum_value_warning": "extruderValue(adhesion_extruder_nr, 'machine_nozzle_size') * 0.5",
"maximum_value_warning": "extruderValue(adhesion_extruder_nr, 'machine_nozzle_size') * 3",
"enabled": "resolveOrValue('adhesion_type') == 'raft'",
@ -3497,7 +3500,7 @@
"unit": "mm",
"type": "float",
"default_value": 0.8,
"minimum_value": "0.0001",
"minimum_value": "0.001",
"value": "extruderValue(adhesion_extruder_nr, 'machine_nozzle_size') * 2",
"minimum_value_warning": "extruderValue(adhesion_extruder_nr, 'machine_nozzle_size') * 0.5",
"maximum_value_warning": "extruderValue(adhesion_extruder_nr, 'machine_nozzle_size') * 3",
@ -3514,7 +3517,7 @@
"type": "float",
"default_value": 1.6,
"value": "raft_base_line_width * 2",
"minimum_value": "0.0001",
"minimum_value": "0",
"minimum_value_warning": "extruderValue(adhesion_extruder_nr, 'raft_base_line_width')",
"maximum_value_warning": "100",
"enabled": "resolveOrValue('adhesion_type') == 'raft'",
@ -3871,8 +3874,6 @@
"default_value": 200,
"minimum_value_warning": "-1000",
"maximum_value_warning": "1000",
"maximum_value": "machine_depth - resolveOrValue('prime_tower_size')",
"minimum_value": "0",
"maximum_value": "machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')",
"minimum_value": "machine_depth / -2 if machine_center_is_zero else 0",
"settable_per_mesh": false,

View file

@ -0,0 +1,28 @@
{
"version": 2,
"name": "Folger Tech FT-5",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "Jaime van Kessel & Paul Bussiere",
"manufacturer": "Folger Tech",
"category": "Other",
"file_formats": "text/x-gcode",
"platform": "FT-5_build_plate.stl"
},
"overrides": {
"machine_heated_bed": { "default_value": true },
"machine_width": { "default_value": 300 },
"machine_height": { "default_value": 400 },
"machine_depth": { "default_value": 300 },
"material_diameter": { "default_value": 1.75 },
"gantry_height": { "default_value": 55 },
"machine_start_gcode": {
"default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..."
},
"machine_end_gcode": {
"default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning"
}
}
}

View file

@ -0,0 +1,50 @@
{
"id": "BEEVERYCREATIVE-helloBEEprusa",
"version": 2,
"name": "Hello BEE Prusa",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "BEEVERYCREATIVE",
"manufacturer": "BEEVERYCREATIVE",
"category": "Other",
"platform": "BEEVERYCREATIVE-helloBEEprusa.stl",
"platform_offset": [-226, -75, -196],
"file_formats": "text/x-gcode"
},
"overrides": {
"machine_name": { "default_value": "hello BEE prusa" },
"machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM107 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG92 E0 ;zero the extruded length\nG1 F3600 ;set feedrate to 60 mm/sec\n; -- end of START GCODE --" },
"machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;set extruder temperature to zero (turned off)\nM140 S0 ;set bed temperature to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nM84 ;turn off steppers\n; -- end of END GCODE --" },
"machine_width": { "default_value": 185 },
"machine_depth": { "default_value": 200 },
"machine_height": { "default_value": 190 },
"machine_heated_bed": { "default_value": true },
"machine_center_is_zero": { "default_value": false },
"material_print_temperature": { "default_value": 220 },
"material_bed_temperature": { "default_value": 60 },
"material_diameter": { "default_value": 1.75 },
"layer_height": { "default_value": 0.2 },
"layer_height_0": { "default_value": 0.2 },
"wall_line_count": { "default_value": 3 },
"wall_thickness": { "default_value": 1.2 },
"top_bottom_thickness": { "default_value": 1.2 },
"infill_sparse_density": { "default_value": 20 },
"infill_overlap": { "default_value": 15 },
"speed_print": { "default_value": 60 },
"speed_travel": { "default_value": 160 },
"speed_layer_0": { "default_value": 30 },
"speed_wall_x": { "default_value": 35 },
"speed_wall_0": { "default_value": 30 },
"speed_infill": { "default_value": 60 },
"speed_topbottom": { "default_value": 20 },
"skirt_brim_speed": { "default_value": 35 },
"skirt_line_count": { "default_value": 4 },
"skirt_brim_minimal_length": { "default_value": 30 },
"skirt_gap": { "default_value": 6 },
"cool_fan_full_at_height": { "default_value": 0.4 },
"retraction_speed": { "default_value": 50.0},
"retraction_amount": { "default_value": 5.2}
}
}

View file

@ -0,0 +1,205 @@
{
"id": "RF100",
"version": 2,
"name": "Renkforce RF100",
"inherits": "fdmprinter",
"metadata": {
"author": "Simon Peter (based on RF100.ini by Conrad Electronic SE)",
"category": "Other",
"file_formats": "text/x-gcode",
"manufacturer": "Renkforce",
"visible": true
},
"overrides": {
"adhesion_type": {
"default_value": "skirt"
},
"bottom_thickness": {
"value": "0.5"
},
"brim_line_count": {
"value": "20.0"
},
"cool_fan_enabled": {
"value": "True"
},
"cool_fan_full_at_height": {
"value": "0.5"
},
"cool_fan_speed_max": {
"value": "100.0"
},
"cool_fan_speed_min": {
"value": "100.0"
},
"cool_lift_head": {
"value": "True"
},
"cool_min_layer_time": {
"value": "5.0"
},
"cool_min_speed": {
"value": "10.0"
},
"infill_before_walls": {
"value": "True"
},
"infill_overlap": {
"value": "15.0"
},
"layer_0_z_overlap": {
"value": "0.22"
},
"layer_height_0": {
"value": "0.3"
},
"machine_depth": {
"value": "100"
},
"machine_end_gcode": {
"default_value": ";End GCode\nM104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning"
},
"machine_gcode_flavor": {
"default_value": "RepRap (Marlin/Sprinter)"
},
"machine_height": {
"value": "100"
},
"machine_name": {
"default_value": "Renkforce RF100"
},
"machine_start_gcode": {
"default_value": ";Sliced at: {day} {date} {time}\nG21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F{speed_travel} ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F{speed_travel}\nM117 Printing..."
},
"machine_width": {
"value": "100"
},
"material_bed_temperature": {
"visible": "False"
},
"material_diameter": {
"value": "1.75"
},
"material_print_temperature": {
"value": "210.0"
},
"ooze_shield_enabled": {
"value": "True"
},
"raft_airgap": {
"value": "0.22"
},
"raft_base_line_spacing": {
"value": "3.0"
},
"raft_base_line_width": {
"value": "1.0"
},
"raft_base_thickness": {
"value": "0.3"
},
"raft_interface_line_spacing": {
"value": "3.0"
},
"raft_interface_line_width": {
"value": "0.4"
},
"raft_interface_thickness": {
"value": "0.27"
},
"raft_margin": {
"value": "5.0"
},
"raft_surface_layers": {
"value": "2.0"
},
"raft_surface_line_spacing": {
"value": "3.0"
},
"raft_surface_line_width": {
"value": "0.4"
},
"raft_surface_thickness": {
"value": "0.27"
},
"retraction_amount": {
"value": "2.0"
},
"retraction_combing": {
"default_value": "all"
},
"retraction_enable": {
"value": "True"
},
"retraction_hop_enabled": {
"value": "1.0"
},
"retraction_min_travel": {
"value": "1.5"
},
"retraction_speed": {
"value": "40.0"
},
"skin_overlap": {
"value": "15.0"
},
"skirt_brim_minimal_length": {
"value": "150.0"
},
"skirt_gap": {
"value": "3.0"
},
"skirt_line_count": {
"value": "1.0"
},
"speed_infill": {
"value": "50.0"
},
"speed_layer_0": {
"value": "30.0"
},
"speed_print": {
"value": "50.0"
},
"speed_topbottom": {
"value": "30.0"
},
"speed_travel": {
"value": "50.0"
},
"speed_wall_0": {
"value": "25.0"
},
"speed_wall_x": {
"value": "35.0"
},
"support_angle": {
"value": "60.0"
},
"support_enable": {
"value": "False"
},
"support_infill_rate": {
"value": "15.0"
},
"support_pattern": {
"default_value": "lines"
},
"support_type": {
"default_value": "everywhere"
},
"support_xy_distance": {
"value": "0.5"
},
"support_z_distance": {
"value": "0.1"
},
"top_thickness": {
"value": "0.5"
},
"wall_thickness": {
"value": "0.8"
}
}
}

View file

@ -106,6 +106,7 @@
"line_width": { "value": "machine_nozzle_size * 0.875" },
"machine_min_cool_heat_time_window": { "value": "15" },
"default_material_print_temperature": { "value": "200" },
"material_print_temperature_layer_0": { "value": "material_print_temperature + 5" },
"material_bed_temperature": { "maximum_value": "115" },
"material_bed_temperature_layer_0": { "maximum_value": "115" },
"material_standby_temperature": { "value": "100" },

View file

@ -62,7 +62,7 @@
"default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E6 ;extrude 6 mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..."
},
"machine_end_gcode": {
"default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning"
"value": "'M104 S0 ;extruder heater off' + ('\\nM140 S0 ;heated bed heater off' if machine_heated_bed else '') + '\\nG91 ;relative positioning\\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\\nM84 ;steppers off\\nG90 ;absolute positioning'"
}
}
}

View file

@ -0,0 +1,84 @@
{
"id": "vertex_k8400",
"version": 2,
"name": "Vertex K8400",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"manufacturer": "Velleman",
"category": "Other",
"file_formats": "text/x-gcode",
"icon": "icon_ultimaker2",
"platform": "Vertex_build_panel.stl",
"platform_offset": [0, -2, 0],
"supports_usb_connection": true,
"supported_actions": ["MachineSettingsAction"]
},
"overrides": {
"machine_name": { "default_value": "Vertex K8400" },
"machine_heated_bed": {
"default_value": true
},
"material_bed_temperature": {
"default_value": 0
},
"material_bed_temperature_layer_0": {
"default_value": 0
},
"machine_width": {
"default_value": 200
},
"machine_height": {
"default_value": 190
},
"machine_depth": {
"default_value": 200
},
"machine_disallowed_areas": { "default_value": [
[[-100,100],[-100,80],[100,80],[100,100]]
]},
"machine_center_is_zero": {
"default_value": false
},
"machine_nozzle_size": {
"default_value": 0.35
},
"material_diameter": {
"default_value": 1.75
},
"machine_head_polygon": {
"default_value": [
[-60, -18],
[-60, 40],
[18, 40],
[18, -18]
]
},
"machine_head_with_fans_polygon": {
"default_value": [
[-60, -40],
[-60, 40],
[18, 40],
[18, -40]
]
},
"gantry_height": {
"default_value": 18
},
"machine_nozzle_heat_up_speed": {
"default_value": 2
},
"machine_nozzle_cool_down_speed": {
"default_value": 2
},
"machine_gcode_flavor": {
"default_value": "RepRap (Marlin/Sprinter)"
},
"machine_start_gcode": {
"default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..."
},
"machine_end_gcode": {
"default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning"
}
}
}

View file

@ -0,0 +1,92 @@
{
"id": "vertex_k8400_dual",
"version": 2,
"name": "Vertex K8400 Dual",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"manufacturer": "Velleman",
"category": "Other",
"file_formats": "text/x-gcode",
"icon": "icon_ultimaker2",
"platform": "Vertex_build_panel.stl",
"platform_offset": [0, -2, 0],
"machine_extruder_trains": {
"0": "vertex_k8400_dual_1st",
"1": "vertex_k8400_dual_2nd"
}
},
"overrides": {
"machine_name": { "default_value": "Vertex K8400 Dual" },
"machine_heated_bed": {
"default_value": true
},
"material_bed_temperature": {
"default_value": 0
},
"material_bed_temperature_layer_0": {
"default_value": 0
},
"machine_width": {
"default_value": 223.7
},
"machine_height": {
"default_value": 190
},
"machine_depth": {
"default_value": 200
},
"machine_disallowed_areas": { "default_value": [
[[-111.85,100],[111.85,100],[-111.85,80],[111.85,80]]
]},
"machine_center_is_zero": {
"default_value": false
},
"machine_use_extruder_offset_to_offset_coords": {
"default_value": true
},
"machine_nozzle_size": {
"default_value": 0.35
},
"material_diameter": {
"default_value": 1.75
},
"machine_head_polygon": {
"default_value": [
[-60, -18],
[-60, 40],
[18, 40],
[18, -18]
]
},
"machine_head_with_fans_polygon": {
"default_value": [
[-60, -40],
[-60, 40],
[18, 40],
[18, -40]
]
},
"gantry_height": {
"default_value": 18
},
"machine_nozzle_heat_up_speed": {
"default_value": 2
},
"machine_nozzle_cool_down_speed": {
"default_value": 2
},
"machine_extruder_count": {
"default_value": 2
},
"machine_gcode_flavor": {
"default_value": "RepRap (Marlin/Sprinter)"
},
"machine_start_gcode": {
"default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..."
},
"machine_end_gcode": {
"default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning"
}
}
}

View file

@ -16,10 +16,10 @@
"machine_nozzle_offset_x": { "default_value": 0.0 },
"machine_nozzle_offset_y": { "default_value": 0.0 },
"machine_extruder_start_code": {
"default_value": "M117 Heating nozzles....\nM104 S190 T0\nG1 X70 Y20 F9000\nM109 S270 T0 ;wait for nozzle to heat up\nT0\n\nM117 purging nozzle\nG92 E0\nG1 E6 F90\nG92 E0\nG1 E-2 F300\nG92 E0\nM117 wiping nozzle\nG1 X1 Y28 F3000\nG1 X70 F6000\n\nM117 printing\n"
"default_value": "\n;start extruder_0\nM117 Heating nozzles....\nM104 S190 T0\nG1 X70 Y20 F9000\nM109 S190 T0\n\nM117 purging nozzle\nG92 E0\nG1 E6 F90\nG92 E0\nG1 E-2 F300\nG92 E0\nM117 wiping nozzle\nG1 X1 Y28 F3000\nG1 X70 F6000\n\nM117 printing\n"
},
"machine_extruder_end_code": {
"default_value": "\nM104 S160 T0\n;end extruder_0\nM117 temp is {material_print_temp}"
"default_value": "\nM104 T0 S155\n;end extruder_0\nM117 temp is {material_print_temp}"
}
}
}

View file

@ -16,10 +16,10 @@
"machine_nozzle_offset_x": { "default_value": 24.0 },
"machine_nozzle_offset_y": { "default_value": 0.0 },
"machine_extruder_start_code": {
"default_value": "\n;start extruder_1\nM117 Heating nozzles....\nM104 S190 T1\nG1 X70 Y20 F9000\nM109 S190 T1 ;wait for nozzle to heat up\n\nM117 purging nozzle\nG92 E0\nG1 E6 F90\nG92 E0\nG1 E-2 F300\nG92 E0\n\nM117 wiping nozzle\nG1 X1 Y28 F3000\nG1 X70 F6000\n\nM117 printing\n"
"default_value": "\n;start extruder_1\nM117 Heating nozzles....\nM104 S190 T1\nG1 X70 Y20 F9000\nM109 S190 T1\n\nM117 purging nozzle\nG92 E0\nG1 E6 F90\nG92 E0\nG1 E-2 F300\nG92 E0\n\nM117 wiping nozzle\nG1 X1 Y28 F3000\nG1 X70 F6000\n\nM117 printing\n"
},
"machine_extruder_end_code": {
"default_value": "\nM104 T0 S120\n;end extruder_1\n"
"default_value": "\nM104 T1 S155\n;end extruder_1\n"
}
}
}

View file

@ -19,7 +19,7 @@
"default_value": "\n;start extruder_2\nM117 Heating nozzles....\nM104 S190 T2\nG1 X70 Y20 F9000\nM109 S190 T2\n\nM117 purging nozzle\nG92 E0\nG1 E6 F90\nG92 E0\nG1 E-2 F300\nG92 E0\n\nM117 wiping nozzle\nG1 X1 Y28 F3000\nG1 X70 F6000\n\nM117 printing\n"
},
"machine_extruder_end_code": {
"default_value": "\nM104 T2 S120\n;end extruder_2\n"
"default_value": "\nM104 T2 S155\n;end extruder_2\n"
}
}
}

View file

@ -19,7 +19,7 @@
"default_value": "\n;start extruder_3\nM117 Heating nozzles....\nM104 S190 T3\nG1 X70 Y20 F9000\nM109 S190 T3\n\nM117 purging nozzle\nG92 E0\nG1 E6 F90\nG92 E0\nG1 E-2 F300\nG92 E0\n\nM117 wiping nozzle\nG1 X1 Y28 F3000\nG1 X70 F6000\n\nM117 printing\n"
},
"machine_extruder_end_code": {
"default_value": "\nM104 T3 S120\n;end extruder_3\n"
"default_value": "\nM104 T3 S155\n;end extruder_3\n"
}
}
}

View file

@ -0,0 +1,26 @@
{
"id": "vertex_k8400_dual_1st",
"version": 2,
"name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "vertex_k8400_dual",
"position": "0"
},
"overrides": {
"extruder_nr": {
"default_value": 0,
"maximum_value": "1"
},
"machine_nozzle_offset_x": { "default_value": 23.7 },
"machine_nozzle_offset_y": { "default_value": 0.0 },
"machine_extruder_start_pos_abs": { "default_value": true },
"machine_extruder_start_pos_x": { "value": "prime_tower_position_x" },
"machine_extruder_start_pos_y": { "value": "prime_tower_position_y" },
"machine_extruder_end_pos_abs": { "default_value": true },
"machine_extruder_end_pos_x": { "value": "prime_tower_position_x" },
"machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }
}
}

View file

@ -0,0 +1,26 @@
{
"id": "vertex_k8400_dual_2nd",
"version": 2,
"name": "Extruder 2",
"inherits": "fdmextruder",
"metadata": {
"machine": "vertex_k8400_dual",
"position": "1"
},
"overrides": {
"extruder_nr": {
"default_value": 1,
"maximum_value": "1"
},
"machine_nozzle_offset_x": { "default_value": 0.0 },
"machine_nozzle_offset_y": { "default_value": 0.0 },
"machine_extruder_start_pos_abs": { "default_value": true },
"machine_extruder_start_pos_x": { "value": "prime_tower_position_x" },
"machine_extruder_start_pos_y": { "value": "prime_tower_position_y" },
"machine_extruder_end_pos_abs": { "default_value": true },
"machine_extruder_end_pos_x": { "value": "prime_tower_position_x" },
"machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }
}
}

View file

@ -1425,7 +1425,7 @@ msgstr "X min"
#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:278
msgctxt "@label"
msgid "Y min"
msgstr "X min"
msgstr "Y min"
#: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:294
msgctxt "@label"

View file

@ -3010,7 +3010,7 @@ msgstr "Engine-&logboek Weergeven..."
#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:307
msgctxt "@action:inmenu menubar:help"
msgid "Show Configuration Folder"
msgstr "Configuratiemap Weergeven"
msgstr "Open Configuratiemap"
#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:314
msgctxt "@action:menu"

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -73,68 +73,76 @@ UM.Dialog
anchors.topMargin: UM.Theme.getSize("default_margin").height
}
ListView
ScrollView
{
id: projectsList
anchors.top: creditsNotes.bottom
anchors.topMargin: 10
anchors.topMargin: UM.Theme.getSize("default_margin").height
width: parent.width
height: childrenRect.height
height: base.height - y - (2 * UM.Theme.getSize("default_margin").height + closeButton.height)
delegate: Row
ListView
{
Label
{
text: "<a href='%1' title='%2'>%2</a>".arg(model.url).arg(model.name)
width: projectsList.width * 0.25
elide: Text.ElideRight
onLinkActivated: Qt.openUrlExternally(link)
}
Label
{
text: model.description
elide: Text.ElideRight
width: projectsList.width * 0.6
}
Label
{
text: model.license
elide: Text.ElideRight
width: projectsList.width * 0.15
}
}
model: ListModel
{
id: projectsModel
}
Component.onCompleted:
{
projectsModel.append({ name:"Cura", description: catalog.i18nc("@label", "Graphical user interface"), license: "AGPLv3", url: "https://github.com/Ultimaker/Cura" });
projectsModel.append({ name:"Uranium", description: catalog.i18nc("@label", "Application framework"), license: "AGPLv3", url: "https://github.com/Ultimaker/Uranium" });
projectsModel.append({ name:"CuraEngine", description: catalog.i18nc("@label", "GCode generator"), license: "AGPLv3", url: "https://github.com/Ultimaker/CuraEngine" });
projectsModel.append({ name:"libArcus", description: catalog.i18nc("@label", "Interprocess communication library"), license: "AGPLv3", url: "https://github.com/Ultimaker/libArcus" });
id: projectsList
projectsModel.append({ name:"Python", description: catalog.i18nc("@label", "Programming language"), license: "Python", url: "http://python.org/" });
projectsModel.append({ name:"Qt5", description: catalog.i18nc("@label", "GUI framework"), license: "LGPLv3", url: "https://www.qt.io/" });
projectsModel.append({ name:"PyQt", description: catalog.i18nc("@label", "GUI framework bindings"), license: "GPL", url: "https://riverbankcomputing.com/software/pyqt" });
projectsModel.append({ name:"SIP", description: catalog.i18nc("@label", "C/C++ Binding library"), license: "GPL", url: "https://riverbankcomputing.com/software/sip" });
projectsModel.append({ name:"Protobuf", description: catalog.i18nc("@label", "Data interchange format"), license: "BSD", url: "https://developers.google.com/protocol-buffers" });
projectsModel.append({ name:"SciPy", description: catalog.i18nc("@label", "Support library for scientific computing "), license: "BSD-new", url: "https://www.scipy.org/" });
projectsModel.append({ name:"NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" });
projectsModel.append({ name:"NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" });
projectsModel.append({ name:"PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" });
projectsModel.append({ name:"python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" });
projectsModel.append({ name:"Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" });
projectsModel.append({ name:"Open Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://fonts.google.com/specimen/Open+Sans" });
projectsModel.append({ name:"Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" });
width: parent.width
delegate: Row
{
Label
{
text: "<a href='%1' title='%2'>%2</a>".arg(model.url).arg(model.name)
width: (projectsList.width * 0.25) | 0
elide: Text.ElideRight
onLinkActivated: Qt.openUrlExternally(link)
}
Label
{
text: model.description
elide: Text.ElideRight
width: (projectsList.width * 0.6) | 0
}
Label
{
text: model.license
elide: Text.ElideRight
width: (projectsList.width * 0.15) | 0
}
}
model: ListModel
{
id: projectsModel
}
Component.onCompleted:
{
projectsModel.append({ name:"Cura", description: catalog.i18nc("@label", "Graphical user interface"), license: "AGPLv3", url: "https://github.com/Ultimaker/Cura" });
projectsModel.append({ name:"Uranium", description: catalog.i18nc("@label", "Application framework"), license: "AGPLv3", url: "https://github.com/Ultimaker/Uranium" });
projectsModel.append({ name:"CuraEngine", description: catalog.i18nc("@label", "GCode generator"), license: "AGPLv3", url: "https://github.com/Ultimaker/CuraEngine" });
projectsModel.append({ name:"libArcus", description: catalog.i18nc("@label", "Interprocess communication library"), license: "AGPLv3", url: "https://github.com/Ultimaker/libArcus" });
projectsModel.append({ name:"Python", description: catalog.i18nc("@label", "Programming language"), license: "Python", url: "http://python.org/" });
projectsModel.append({ name:"Qt5", description: catalog.i18nc("@label", "GUI framework"), license: "LGPLv3", url: "https://www.qt.io/" });
projectsModel.append({ name:"PyQt", description: catalog.i18nc("@label", "GUI framework bindings"), license: "GPL", url: "https://riverbankcomputing.com/software/pyqt" });
projectsModel.append({ name:"SIP", description: catalog.i18nc("@label", "C/C++ Binding library"), license: "GPL", url: "https://riverbankcomputing.com/software/sip" });
projectsModel.append({ name:"Protobuf", description: catalog.i18nc("@label", "Data interchange format"), license: "BSD", url: "https://developers.google.com/protocol-buffers" });
projectsModel.append({ name:"SciPy", description: catalog.i18nc("@label", "Support library for scientific computing "), license: "BSD-new", url: "https://www.scipy.org/" });
projectsModel.append({ name:"NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" });
projectsModel.append({ name:"NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" });
projectsModel.append({ name:"libSavitar", description: catalog.i18nc("@label", "Support library for handling 3MF files"), license: "AGPLv3", url: "https://github.com/ultimaker/libsavitar" });
projectsModel.append({ name:"PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" });
projectsModel.append({ name:"python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" });
projectsModel.append({ name:"Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" });
projectsModel.append({ name:"Open Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://fonts.google.com/specimen/Open+Sans" });
projectsModel.append({ name:"Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" });
}
}
}
rightButtons: Button
{
//: Close about dialog button
id: closeButton
text: catalog.i18nc("@action:button","Close");
onClicked: base.visible = false;

View file

@ -45,7 +45,7 @@ UM.MainWindow
function getMeshName(path){
//takes the path the complete path of the meshname and returns only the filebase
var fileName = path.slice(path.lastIndexOf("/") + 1)
var fileBase = fileName.slice(0, fileName.lastIndexOf("."))
var fileBase = fileName.slice(0, fileName.indexOf("."))
return fileBase
}
@ -786,6 +786,8 @@ UM.MainWindow
{
UM.WorkspaceFileHandler.readLocalFile(fileUrls[i])
}
var meshName = backgroundItem.getMeshName(fileUrls[0].toString())
backgroundItem.hasMesh(decodeURIComponent(meshName))
}
}
@ -880,6 +882,21 @@ UM.MainWindow
}
}
DiscardOrKeepProfileChangesDialog
{
id: discardOrKeepProfileChangesDialog
}
Connections
{
target: Printer
onShowDiscardOrKeepProfileChanges:
{
discardOrKeepProfileChangesDialog.show()
}
}
Connections
{
target: Cura.Actions.addMachine

View file

@ -0,0 +1,174 @@
// Copyright (c) 2017 Ultimaker B.V.
// Cura is released under the terms of the AGPLv3 or higher.
import QtQuick 2.1
import QtQuick.Controls 1.1
import QtQuick.Dialogs 1.2
import UM 1.2 as UM
import Cura 1.1 as Cura
UM.Dialog
{
id: base
title: catalog.i18nc("@title:window", "Discard or Keep changes")
width: 500
height: 300
property var changesModel: Cura.UserChangesModel{ id: userChangesModel}
onVisibilityChanged:
{
if(visible)
{
changesModel.forceUpdate()
}
}
Column
{
anchors.fill: parent
spacing: UM.Theme.getSize("default_margin").width
UM.I18nCatalog
{
id: catalog;
name:"cura"
}
Row
{
height: childrenRect.height
anchors.margins: UM.Theme.getSize("default_margin").width
anchors.left: parent.left
anchors.right: parent.right
spacing: UM.Theme.getSize("default_margin").width
UM.RecolorImage
{
source: UM.Theme.getIcon("star")
width : 30
height: width
color: UM.Theme.getColor("setting_control_button")
}
Label
{
text: "You have customized some profile settings.\nWould you like to keep or discard those settings?"
anchors.margins: UM.Theme.getSize("default_margin").width
font: UM.Theme.getFont("default_bold")
wrapMode: Text.WordWrap
}
}
TableView
{
anchors.margins: UM.Theme.getSize("default_margin").width
anchors.left: parent.left
anchors.right: parent.right
height: 200
id: tableView
Component
{
id: labelDelegate
Label
{
property var extruder_name: userChangesModel.getItem(styleData.row).extruder
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
font: UM.Theme.getFont("default")
text:
{
var result = styleData.value
if (extruder_name!= "")
{
result += " (" + extruder_name + ")"
}
return result
}
}
}
Component
{
id: defaultDelegate
Label
{
text: styleData.value
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("setting_control_disabled_text")
}
}
TableViewColumn
{
role: "label"
title: catalog.i18nc("@title:column", "Settings")
delegate: labelDelegate
width: tableView.width * 0.5
}
TableViewColumn
{
role: "original_value"
title: "Profile"
width: tableView.width * 0.25
delegate: defaultDelegate
}
TableViewColumn
{
role: "user_value"
title: catalog.i18nc("@title:column", "Customized")
width: tableView.width * 0.25 - 1
}
section.property: "category"
section.delegate: Label
{
text: section
font.bold: true
}
model: base.changesModel
}
Item
{
anchors.right: parent.right
anchors.left: parent.left
anchors.margins: UM.Theme.getSize("default_margin").width
height:childrenRect.height
Button
{
id: discardButton
text: catalog.i18nc("@action:button", "Discard");
anchors.right: parent.right
onClicked:
{
Printer.discardOrKeepProfileChangesClosed("discard")
base.hide()
}
}
Button
{
id: keepButton
text: catalog.i18nc("@action:button", "Keep");
anchors.right: discardButton.left
anchors.rightMargin: UM.Theme.getSize("default_margin").width
onClicked:
{
Printer.discardOrKeepProfileChangesClosed("keep")
base.hide()
}
}
Button
{
id: createNewProfileButton
text: catalog.i18nc("@action:button", "Create new profile");
anchors.left: parent.left
action: Cura.Actions.addProfile
onClicked: base.hide()
}
}
}
}

View file

@ -12,7 +12,7 @@ import Cura 1.0 as Cura
Item {
id: base
property bool activity: Printer.getPlatformActivity
property bool activity: Printer.platformActivity
property string fileBaseName
property variant activeMachineName: Cura.MachineManager.activeMachineName

View file

@ -80,7 +80,7 @@ Item
}
}
property bool activity: Printer.getPlatformActivity;
property bool activity: Printer.platformActivity;
property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height
property string fileBaseName
property string statusText:

View file

@ -58,322 +58,368 @@ UM.PreferencesPage
}
}
Column
ScrollView
{
//: Model used to check if a plugin exists
UM.PluginsModel { id: plugins }
width: parent.width
height: parent.height
//: Language selection label
UM.I18nCatalog{id: catalog; name:"cura"}
Label
Column
{
font.bold: true
text: catalog.i18nc("@label","Interface")
}
//: Model used to check if a plugin exists
UM.PluginsModel { id: plugins }
//: Language selection label
UM.I18nCatalog{id: catalog; name:"cura"}
Row
{
spacing: UM.Theme.getSize("default_margin").width
Label
{
id: languageLabel
text: catalog.i18nc("@label","Language:")
anchors.verticalCenter: languageComboBox.verticalCenter
font.bold: true
text: catalog.i18nc("@label","Interface")
}
ComboBox
Row
{
id: languageComboBox
model: ListModel
spacing: UM.Theme.getSize("default_margin").width
Label
{
id: languageList
id: languageLabel
text: catalog.i18nc("@label","Language:")
anchors.verticalCenter: languageComboBox.verticalCenter
}
Component.onCompleted: {
append({ text: "English", code: "en" })
append({ text: "Deutsch", code: "de" })
append({ text: "Español", code: "es" })
append({ text: "Suomi", code: "fi" })
append({ text: "Français", code: "fr" })
append({ text: "Italiano", code: "it" })
append({ text: "Nederlands", code: "nl" })
append({ text: "Português do Brasil", code: "ptbr" })
append({ text: "Русский", code: "ru" })
append({ text: "Türkçe", code: "tr" })
ComboBox
{
id: languageComboBox
model: ListModel
{
id: languageList
Component.onCompleted: {
append({ text: "English", code: "en" })
append({ text: "Deutsch", code: "de" })
append({ text: "Español", code: "es" })
append({ text: "Suomi", code: "fi" })
append({ text: "Français", code: "fr" })
append({ text: "Italiano", code: "it" })
append({ text: "Nederlands", code: "nl" })
append({ text: "Português do Brasil", code: "ptbr" })
append({ text: "Русский", code: "ru" })
append({ text: "Türkçe", code: "tr" })
}
}
currentIndex:
{
var code = UM.Preferences.getValue("general/language");
for(var i = 0; i < languageList.count; ++i)
{
if(model.get(i).code == code)
{
return i
}
}
}
onActivated: UM.Preferences.setValue("general/language", model.get(index).code)
Component.onCompleted:
{
// Because ListModel is stupid and does not allow using qsTr() for values.
for(var i = 0; i < languageList.count; ++i)
{
languageList.setProperty(i, "text", catalog.i18n(languageList.get(i).text));
}
// Glorious hack time. ComboBox does not update the text properly after changing the
// model. So change the indices around to force it to update.
currentIndex += 1;
currentIndex -= 1;
}
}
currentIndex:
Label
{
var code = UM.Preferences.getValue("general/language");
for(var i = 0; i < languageList.count; ++i)
id: currencyLabel
text: catalog.i18nc("@label","Currency:")
anchors.verticalCenter: languageComboBox.verticalCenter
}
TextField
{
id: currencyField
text: UM.Preferences.getValue("cura/currency")
onTextChanged: UM.Preferences.setValue("cura/currency", text)
}
}
Label
{
id: languageCaption
//: Language change warning
text: catalog.i18nc("@label", "You will need to restart the application for language changes to have effect.")
wrapMode: Text.WordWrap
font.italic: true
}
Item
{
//: Spacer
height: UM.Theme.getSize("default_margin").height
width: UM.Theme.getSize("default_margin").width
}
UM.TooltipArea
{
width: childrenRect.width;
height: childrenRect.height;
text: catalog.i18nc("@info:tooltip","Slice automatically when changing settings.")
CheckBox
{
id: autoSliceCheckbox
checked: boolCheck(UM.Preferences.getValue("general/auto_slice"))
onClicked: UM.Preferences.setValue("general/auto_slice", checked)
text: catalog.i18nc("@option:check","Slice automatically");
}
}
Item
{
//: Spacer
height: UM.Theme.getSize("default_margin").height
width: UM.Theme.getSize("default_margin").width
}
Label
{
font.bold: true
text: catalog.i18nc("@label","Viewport behavior")
}
UM.TooltipArea
{
width: childrenRect.width;
height: childrenRect.height;
text: catalog.i18nc("@info:tooltip","Highlight unsupported areas of the model in red. Without support these areas will not print properly.")
CheckBox
{
id: showOverhangCheckbox
checked: boolCheck(UM.Preferences.getValue("view/show_overhang"))
onClicked: UM.Preferences.setValue("view/show_overhang", checked)
text: catalog.i18nc("@option:check","Display overhang");
}
}
UM.TooltipArea {
width: childrenRect.width;
height: childrenRect.height;
text: catalog.i18nc("@info:tooltip","Moves the camera so the model is in the center of the view when an model is selected")
CheckBox
{
id: centerOnSelectCheckbox
text: catalog.i18nc("@action:button","Center camera when item is selected");
checked: boolCheck(UM.Preferences.getValue("view/center_on_select"))
onClicked: UM.Preferences.setValue("view/center_on_select", checked)
}
}
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip", "Should models on the platform be moved so that they no longer intersect?")
CheckBox
{
id: pushFreeCheckbox
text: catalog.i18nc("@option:check", "Ensure models are kept apart")
checked: boolCheck(UM.Preferences.getValue("physics/automatic_push_free"))
onCheckedChanged: UM.Preferences.setValue("physics/automatic_push_free", checked)
}
}
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip", "Should models on the platform be moved down to touch the build plate?")
CheckBox
{
id: dropDownCheckbox
text: catalog.i18nc("@option:check", "Automatically drop models to the build plate")
checked: boolCheck(UM.Preferences.getValue("physics/automatic_drop_down"))
onCheckedChanged: UM.Preferences.setValue("physics/automatic_drop_down", checked)
}
}
UM.TooltipArea {
width: childrenRect.width;
height: childrenRect.height;
text: catalog.i18nc("@info:tooltip","Display 5 top layers in layer view or only the top-most layer. Rendering 5 layers takes longer, but may show more information.")
CheckBox
{
id: topLayerCountCheckbox
text: catalog.i18nc("@action:button","Display five top layers in layer view compatibility mode");
checked: UM.Preferences.getValue("view/top_layer_count") == 5
onClicked:
{
if(model.get(i).code == code)
if(UM.Preferences.getValue("view/top_layer_count") == 5)
{
return i
UM.Preferences.setValue("view/top_layer_count", 1)
}
else
{
UM.Preferences.setValue("view/top_layer_count", 5)
}
}
}
onActivated: UM.Preferences.setValue("general/language", model.get(index).code)
}
Component.onCompleted:
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip", "Should only the top layers be displayed in layerview?")
CheckBox
{
// Because ListModel is stupid and does not allow using qsTr() for values.
for(var i = 0; i < languageList.count; ++i)
{
languageList.setProperty(i, "text", catalog.i18n(languageList.get(i).text));
}
// Glorious hack time. ComboBox does not update the text properly after changing the
// model. So change the indices around to force it to update.
currentIndex += 1;
currentIndex -= 1;
id: topLayersOnlyCheckbox
text: catalog.i18nc("@option:check", "Only display top layer(s) in layer view compatibility mode")
checked: boolCheck(UM.Preferences.getValue("view/only_show_top_layers"))
onCheckedChanged: UM.Preferences.setValue("view/only_show_top_layers", checked)
}
}
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip", "Should layer be forced into compatibility mode?")
CheckBox
{
id: forceLayerViewCompatibilityModeCheckbox
text: catalog.i18nc("@option:check", "Force layer view compatibility mode (restart required)")
checked: boolCheck(UM.Preferences.getValue("view/force_layer_view_compatibility_mode"))
onCheckedChanged: UM.Preferences.setValue("view/force_layer_view_compatibility_mode", checked)
}
}
Item
{
//: Spacer
height: UM.Theme.getSize("default_margin").height
width: UM.Theme.getSize("default_margin").height
}
Label
{
id: currencyLabel
text: catalog.i18nc("@label","Currency:")
anchors.verticalCenter: languageComboBox.verticalCenter
font.bold: true
text: catalog.i18nc("@label","Opening and saving files")
}
TextField
{
id: currencyField
text: UM.Preferences.getValue("cura/currency")
onTextChanged: UM.Preferences.setValue("cura/currency", text)
}
}
Label
{
id: languageCaption
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip","Should models be scaled to the build volume if they are too large?")
//: Language change warning
text: catalog.i18nc("@label", "You will need to restart the application for language changes to have effect.")
wrapMode: Text.WordWrap
font.italic: true
}
Item
{
//: Spacer
height: UM.Theme.getSize("default_margin").height
width: UM.Theme.getSize("default_margin").width
}
Label
{
font.bold: true
text: catalog.i18nc("@label","Viewport behavior")
}
UM.TooltipArea
{
width: childrenRect.width;
height: childrenRect.height;
text: catalog.i18nc("@info:tooltip","Highlight unsupported areas of the model in red. Without support these areas will not print properly.")
CheckBox
{
id: showOverhangCheckbox
checked: boolCheck(UM.Preferences.getValue("view/show_overhang"))
onClicked: UM.Preferences.setValue("view/show_overhang", checked)
text: catalog.i18nc("@option:check","Display overhang");
}
}
UM.TooltipArea {
width: childrenRect.width;
height: childrenRect.height;
text: catalog.i18nc("@info:tooltip","Moves the camera so the model is in the center of the view when an model is selected")
CheckBox
{
id: centerOnSelectCheckbox
text: catalog.i18nc("@action:button","Center camera when item is selected");
checked: boolCheck(UM.Preferences.getValue("view/center_on_select"))
onClicked: UM.Preferences.setValue("view/center_on_select", checked)
}
}
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip", "Should models on the platform be moved so that they no longer intersect?")
CheckBox
{
id: pushFreeCheckbox
text: catalog.i18nc("@option:check", "Ensure models are kept apart")
checked: boolCheck(UM.Preferences.getValue("physics/automatic_push_free"))
onCheckedChanged: UM.Preferences.setValue("physics/automatic_push_free", checked)
}
}
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip", "Should models on the platform be moved down to touch the build plate?")
CheckBox
{
id: dropDownCheckbox
text: catalog.i18nc("@option:check", "Automatically drop models to the build plate")
checked: boolCheck(UM.Preferences.getValue("physics/automatic_drop_down"))
onCheckedChanged: UM.Preferences.setValue("physics/automatic_drop_down", checked)
}
}
UM.TooltipArea {
width: childrenRect.width;
height: childrenRect.height;
text: catalog.i18nc("@info:tooltip","Display 5 top layers in layer view or only the top-most layer. Rendering 5 layers takes longer, but may show more information.")
CheckBox
{
id: topLayerCountCheckbox
text: catalog.i18nc("@action:button","Display five top layers in layer view");
checked: UM.Preferences.getValue("view/top_layer_count") == 5
onClicked:
CheckBox
{
if(UM.Preferences.getValue("view/top_layer_count") == 5)
{
UM.Preferences.setValue("view/top_layer_count", 1)
}
else
{
UM.Preferences.setValue("view/top_layer_count", 5)
}
id: scaleToFitCheckbox
text: catalog.i18nc("@option:check","Scale large models")
checked: boolCheck(UM.Preferences.getValue("mesh/scale_to_fit"))
onCheckedChanged: UM.Preferences.setValue("mesh/scale_to_fit", checked)
}
}
}
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip", "Should only the top layers be displayed in layerview?")
CheckBox
{
id: topLayersOnlyCheckbox
text: catalog.i18nc("@option:check", "Only display top layer(s) in layer view")
checked: boolCheck(UM.Preferences.getValue("view/only_show_top_layers"))
onCheckedChanged: UM.Preferences.setValue("view/only_show_top_layers", checked)
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip","An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?")
CheckBox
{
id: scaleTinyCheckbox
text: catalog.i18nc("@option:check","Scale extremely small models")
checked: boolCheck(UM.Preferences.getValue("mesh/scale_tiny_meshes"))
onCheckedChanged: UM.Preferences.setValue("mesh/scale_tiny_meshes", checked)
}
}
}
Item
{
//: Spacer
height: UM.Theme.getSize("default_margin").height
width: UM.Theme.getSize("default_margin").height
}
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip", "Should a prefix based on the printer name be added to the print job name automatically?")
Label
{
font.bold: true
text: catalog.i18nc("@label","Opening files")
}
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip","Should models be scaled to the build volume if they are too large?")
CheckBox
{
id: scaleToFitCheckbox
text: catalog.i18nc("@option:check","Scale large models")
checked: boolCheck(UM.Preferences.getValue("mesh/scale_to_fit"))
onCheckedChanged: UM.Preferences.setValue("mesh/scale_to_fit", checked)
CheckBox
{
id: prefixJobNameCheckbox
text: catalog.i18nc("@option:check", "Add machine prefix to job name")
checked: boolCheck(UM.Preferences.getValue("cura/jobname_prefix"))
onCheckedChanged: UM.Preferences.setValue("cura/jobname_prefix", checked)
}
}
}
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip","An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?")
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip", "Should a summary be shown when saving a project file?")
CheckBox
{
id: scaleTinyCheckbox
text: catalog.i18nc("@option:check","Scale extremely small models")
checked: boolCheck(UM.Preferences.getValue("mesh/scale_tiny_meshes"))
onCheckedChanged: UM.Preferences.setValue("mesh/scale_tiny_meshes", checked)
CheckBox
{
text: catalog.i18nc("@option:check", "Show summary dialog when saving project")
checked: boolCheck(UM.Preferences.getValue("cura/dialog_on_project_save"))
onCheckedChanged: UM.Preferences.setValue("cura/dialog_on_project_save", checked)
}
}
}
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip", "Should a prefix based on the printer name be added to the print job name automatically?")
CheckBox
Item
{
id: prefixJobNameCheckbox
text: catalog.i18nc("@option:check", "Add machine prefix to job name")
checked: boolCheck(UM.Preferences.getValue("cura/jobname_prefix"))
onCheckedChanged: UM.Preferences.setValue("cura/jobname_prefix", checked)
//: Spacer
height: UM.Theme.getSize("default_margin").height
width: UM.Theme.getSize("default_margin").height
}
}
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip", "Should a summary be shown when saving a project file?")
CheckBox
Label
{
text: catalog.i18nc("@option:check", "Show summary dialog when saving project")
checked: boolCheck(UM.Preferences.getValue("cura/dialog_on_project_save"))
onCheckedChanged: UM.Preferences.setValue("cura/dialog_on_project_save", checked)
font.bold: true
visible: checkUpdatesCheckbox.visible || sendDataCheckbox.visible
text: catalog.i18nc("@label","Privacy")
}
}
UM.TooltipArea {
visible: plugins.find("id", "UpdateChecker") > -1
width: childrenRect.width
height: visible ? childrenRect.height : 0
text: catalog.i18nc("@info:tooltip","Should Cura check for updates when the program is started?")
Item
{
//: Spacer
height: UM.Theme.getSize("default_margin").height
width: UM.Theme.getSize("default_margin").height
}
Label
{
font.bold: true
visible: checkUpdatesCheckbox.visible || sendDataCheckbox.visible
text: catalog.i18nc("@label","Privacy")
}
UM.TooltipArea {
visible: plugins.find("id", "UpdateChecker") > -1
width: childrenRect.width
height: visible ? childrenRect.height : 0
text: catalog.i18nc("@info:tooltip","Should Cura check for updates when the program is started?")
CheckBox
{
id: checkUpdatesCheckbox
text: catalog.i18nc("@option:check","Check for updates on start")
checked: boolCheck(UM.Preferences.getValue("info/automatic_update_check"))
onCheckedChanged: UM.Preferences.setValue("info/automatic_update_check", checked)
CheckBox
{
id: checkUpdatesCheckbox
text: catalog.i18nc("@option:check","Check for updates on start")
checked: boolCheck(UM.Preferences.getValue("info/automatic_update_check"))
onCheckedChanged: UM.Preferences.setValue("info/automatic_update_check", checked)
}
}
}
UM.TooltipArea {
visible: plugins.find("id", "SliceInfoPlugin") > -1
width: childrenRect.width
height: visible ? childrenRect.height : 0
text: catalog.i18nc("@info:tooltip","Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored.")
UM.TooltipArea {
visible: plugins.find("id", "SliceInfoPlugin") > -1
width: childrenRect.width
height: visible ? childrenRect.height : 0
text: catalog.i18nc("@info:tooltip","Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored.")
CheckBox
{
id: sendDataCheckbox
text: catalog.i18nc("@option:check","Send (anonymous) print information")
checked: boolCheck(UM.Preferences.getValue("info/send_slice_info"))
onCheckedChanged: UM.Preferences.setValue("info/send_slice_info", checked)
CheckBox
{
id: sendDataCheckbox
text: catalog.i18nc("@option:check","Send (anonymous) print information")
checked: boolCheck(UM.Preferences.getValue("info/send_slice_info"))
onCheckedChanged: UM.Preferences.setValue("info/send_slice_info", checked)
}
}
}
}

View file

@ -1,4 +1,4 @@
// Copyright (c) 2016 Ultimaker B.V.
// Copyright (c) 2017 Ultimaker B.V.
// Cura is released under the terms of the AGPLv3 or higher.
import QtQuick 2.2
@ -12,7 +12,7 @@ import Cura 1.0 as Cura
Column
{
id: printMonitor
property var connectedPrinter: printerConnected ? Cura.MachineManager.printerOutputDevices[0] : null
property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null
Cura.ExtrudersModel
{
@ -20,47 +20,611 @@ Column
simpleNames: true
}
Item
Rectangle
{
width: base.width - 2 * UM.Theme.getSize("default_margin").width
height: childrenRect.height + UM.Theme.getSize("default_margin").height
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
id: connectedPrinterHeader
width: parent.width
height: childrenRect.height + UM.Theme.getSize("default_margin").height * 2
color: UM.Theme.getColor("setting_category")
Label
{
text: printerConnected ? connectedPrinter.connectionText : catalog.i18nc("@info:status", "The printer is not connected.")
color: printerConnected && printerAcceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
font: UM.Theme.getFont("default")
id: connectedPrinterNameLabel
text: connectedPrinter != null ? connectedPrinter.name : catalog.i18nc("@info:status", "No printer connected")
font: UM.Theme.getFont("large")
color: UM.Theme.getColor("text")
anchors.left: parent.left
anchors.top: parent.top
anchors.margins: UM.Theme.getSize("default_margin").width
}
Label
{
id: connectedPrinterAddressLabel
text: (connectedPrinter != null && connectedPrinter.address != null) ? connectedPrinter.address : ""
font: UM.Theme.getFont("small")
color: UM.Theme.getColor("text_inactive")
anchors.top: parent.top
anchors.right: parent.right
anchors.margins: UM.Theme.getSize("default_margin").width
}
Label
{
text: connectedPrinter != null ? connectedPrinter.connectionText : catalog.i18nc("@info:status", "The printer is not connected.")
color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
font: UM.Theme.getFont("very_small")
wrapMode: Text.WordWrap
width: parent.width
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width
anchors.top: connectedPrinterNameLabel.bottom
}
}
Loader
Rectangle
{
sourceComponent: monitorSection
property string label: catalog.i18nc("@label", "Temperatures")
}
Repeater
{
model: machineExtruderCount.properties.value
delegate: Loader
color: UM.Theme.getColor("sidebar_lining")
width: parent.width
height: childrenRect.height
Flow
{
sourceComponent: monitorItem
property string label: machineExtruderCount.properties.value > 1 ? extrudersModel.getItem(index).name : catalog.i18nc("@label", "Hotend")
property string value: printerConnected ? Math.round(connectedPrinter.hotendTemperatures[index]) + "°C" : ""
id: extrudersGrid
spacing: UM.Theme.getSize("sidebar_lining_thin").width
width: parent.width
Repeater
{
id: extrudersRepeater
model: machineExtruderCount.properties.value
delegate: Rectangle
{
id: extruderRectangle
color: UM.Theme.getColor("sidebar")
width: index == machineExtruderCount.properties.value - 1 && index % 2 == 0 ? extrudersGrid.width : extrudersGrid.width / 2 - UM.Theme.getSize("sidebar_lining_thin").width / 2
height: UM.Theme.getSize("sidebar_extruder_box").height
Label //Extruder name.
{
text: ExtruderManager.getExtruderName(index) != "" ? ExtruderManager.getExtruderName(index) : catalog.i18nc("@label", "Hotend")
color: UM.Theme.getColor("text")
font: UM.Theme.getFont("default")
anchors.left: parent.left
anchors.top: parent.top
anchors.margins: UM.Theme.getSize("default_margin").width
}
Label //Temperature indication.
{
id: extruderTemperature
text: (connectedPrinter != null && connectedPrinter.hotendIds[index] != null && connectedPrinter.hotendTemperatures[index] != null) ? Math.round(connectedPrinter.hotendTemperatures[index]) + "°C" : ""
color: UM.Theme.getColor("text")
font: UM.Theme.getFont("large")
anchors.right: parent.right
anchors.top: parent.top
anchors.margins: UM.Theme.getSize("default_margin").width
MouseArea //For tooltip.
{
id: extruderTemperatureTooltipArea
hoverEnabled: true
anchors.fill: parent
onHoveredChanged:
{
if (containsMouse)
{
base.showTooltip(
base,
{x: 0, y: parent.mapToItem(base, 0, -parent.height / 4).y},
catalog.i18nc("@tooltip", "The current temperature of this extruder.")
);
}
else
{
base.hideTooltip();
}
}
}
}
Rectangle //Material colour indication.
{
id: materialColor
width: materialName.height * 0.75
height: materialName.height * 0.75
color: (connectedPrinter != null && connectedPrinter.materialColors[index] != null && connectedPrinter.materialIds[index] != "") ? connectedPrinter.materialColors[index] : "#00000000"
border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("lining")
visible: connectedPrinter != null && connectedPrinter.materialColors[index] != null && connectedPrinter.materialIds[index] != ""
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: materialName.verticalCenter
MouseArea //For tooltip.
{
id: materialColorTooltipArea
hoverEnabled: true
anchors.fill: parent
onHoveredChanged:
{
if (containsMouse)
{
base.showTooltip(
base,
{x: 0, y: parent.mapToItem(base, 0, -parent.height / 2).y},
catalog.i18nc("@tooltip", "The colour of the material in this extruder.")
);
}
else
{
base.hideTooltip();
}
}
}
}
Label //Material name.
{
id: materialName
text: (connectedPrinter != null && connectedPrinter.materialNames[index] != null && connectedPrinter.materialIds[index] != "") ? connectedPrinter.materialNames[index] : ""
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
anchors.left: materialColor.right
anchors.bottom: parent.bottom
anchors.margins: UM.Theme.getSize("default_margin").width
MouseArea //For tooltip.
{
id: materialNameTooltipArea
hoverEnabled: true
anchors.fill: parent
onHoveredChanged:
{
if (containsMouse)
{
base.showTooltip(
base,
{x: 0, y: parent.mapToItem(base, 0, 0).y},
catalog.i18nc("@tooltip", "The material in this extruder.")
);
}
else
{
base.hideTooltip();
}
}
}
}
Label //Variant name.
{
id: variantName
text: (connectedPrinter != null && connectedPrinter.hotendIds[index] != null) ? connectedPrinter.hotendIds[index] : ""
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.margins: UM.Theme.getSize("default_margin").width
MouseArea //For tooltip.
{
id: variantNameTooltipArea
hoverEnabled: true
anchors.fill: parent
onHoveredChanged:
{
if (containsMouse)
{
base.showTooltip(
base,
{x: 0, y: parent.mapToItem(base, 0, -parent.height / 4).y},
catalog.i18nc("@tooltip", "The nozzle inserted in this extruder.")
);
}
else
{
base.hideTooltip();
}
}
}
}
}
}
}
}
Repeater
Rectangle
{
model: machineHeatedBed.properties.value == "True" ? 1 : 0
delegate: Loader
color: UM.Theme.getColor("sidebar_lining")
width: parent.width
height: UM.Theme.getSize("sidebar_lining_thin").width
}
Rectangle
{
color: UM.Theme.getColor("sidebar")
width: parent.width
height: machineHeatedBed.properties.value == "True" ? UM.Theme.getSize("sidebar_extruder_box").height : 0
visible: machineHeatedBed.properties.value == "True"
Label //Build plate label.
{
sourceComponent: monitorItem
property string label: catalog.i18nc("@label", "Build plate")
property string value: printerConnected ? Math.round(connectedPrinter.bedTemperature) + "°C" : ""
text: catalog.i18nc("@label", "Build plate")
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
anchors.left: parent.left
anchors.top: parent.top
anchors.margins: UM.Theme.getSize("default_margin").width
}
Label //Target temperature.
{
id: bedTargetTemperature
text: connectedPrinter != null ? connectedPrinter.targetBedTemperature + "°C" : ""
font: UM.Theme.getFont("small")
color: UM.Theme.getColor("text_inactive")
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width
anchors.bottom: bedCurrentTemperature.bottom
MouseArea //For tooltip.
{
id: bedTargetTemperatureTooltipArea
hoverEnabled: true
anchors.fill: parent
onHoveredChanged:
{
if (containsMouse)
{
base.showTooltip(
base,
{x: 0, y: bedTargetTemperature.mapToItem(base, 0, -parent.height / 4).y},
catalog.i18nc("@tooltip", "The target temperature of the heated bed. The bed will heat up or cool down towards this temperature. If this is 0, the bed heating is turned off.")
);
}
else
{
base.hideTooltip();
}
}
}
}
Label //Current temperature.
{
id: bedCurrentTemperature
text: connectedPrinter != null ? connectedPrinter.bedTemperature + "°C" : ""
font: UM.Theme.getFont("large")
color: UM.Theme.getColor("text")
anchors.right: bedTargetTemperature.left
anchors.top: parent.top
anchors.margins: UM.Theme.getSize("default_margin").width
MouseArea //For tooltip.
{
id: bedTemperatureTooltipArea
hoverEnabled: true
anchors.fill: parent
onHoveredChanged:
{
if (containsMouse)
{
base.showTooltip(
base,
{x: 0, y: bedCurrentTemperature.mapToItem(base, 0, -parent.height / 4).y},
catalog.i18nc("@tooltip", "The current temperature of the heated bed.")
);
}
else
{
base.hideTooltip();
}
}
}
}
Rectangle //Input field for pre-heat temperature.
{
id: preheatTemperatureControl
color: !enabled ? UM.Theme.getColor("setting_control_disabled") : UM.Theme.getColor("setting_validation_ok")
enabled:
{
if (connectedPrinter == null)
{
return false; //Can't preheat if not connected.
}
if (!connectedPrinter.acceptsCommands)
{
return false; //Not allowed to do anything.
}
if (connectedPrinter.jobState == "printing" || connectedPrinter.jobState == "pre_print" || connectedPrinter.jobState == "resuming" || connectedPrinter.jobState == "pausing" || connectedPrinter.jobState == "paused" || connectedPrinter.jobState == "error" || connectedPrinter.jobState == "offline")
{
return false; //Printer is in a state where it can't react to pre-heating.
}
return true;
}
border.width: UM.Theme.getSize("default_lining").width
border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : preheatTemperatureInputMouseArea.containsMouse ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border")
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.bottom: parent.bottom
anchors.bottomMargin: UM.Theme.getSize("default_margin").height
width: UM.Theme.getSize("setting_control").width
height: UM.Theme.getSize("setting_control").height
Rectangle //Highlight of input field.
{
anchors.fill: parent
anchors.margins: UM.Theme.getSize("default_lining").width
color: UM.Theme.getColor("setting_control_highlight")
opacity: preheatTemperatureControl.hovered ? 1.0 : 0
}
Label //Maximum temperature indication.
{
text: (bedTemperature.properties.maximum_value != "None" ? bedTemperature.properties.maximum_value : "") + "°C"
color: UM.Theme.getColor("setting_unit")
font: UM.Theme.getFont("default")
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("setting_unit_margin").width
anchors.verticalCenter: parent.verticalCenter
}
MouseArea //Change cursor on hovering.
{
id: preheatTemperatureInputMouseArea
hoverEnabled: true
anchors.fill: parent
cursorShape: Qt.IBeamCursor
onHoveredChanged:
{
if (containsMouse)
{
base.showTooltip(
base,
{x: 0, y: preheatTemperatureInputMouseArea.mapToItem(base, 0, 0).y},
catalog.i18nc("@tooltip of temperature input", "The temperature to pre-heat the bed to.")
);
}
else
{
base.hideTooltip();
}
}
}
TextInput
{
id: preheatTemperatureInput
font: UM.Theme.getFont("default")
color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text")
selectByMouse: true
maximumLength: 10
enabled: parent.enabled
validator: RegExpValidator { regExp: /^-?[0-9]{0,9}[.,]?[0-9]{0,10}$/ } //Floating point regex.
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
Component.onCompleted:
{
if ((bedTemperature.resolve != "None" && bedTemperature.resolve) && (bedTemperature.stackLevels[0] != 0) && (bedTemperature.stackLevels[0] != 1))
{
// We have a resolve function. Indicates that the setting is not settable per extruder and that
// we have to choose between the resolved value (default) and the global value
// (if user has explicitly set this).
text = bedTemperature.resolve;
}
else
{
text = bedTemperature.properties.value;
}
}
}
}
UM.RecolorImage
{
id: preheatCountdownIcon
width: UM.Theme.getSize("save_button_specs_icons").width
height: UM.Theme.getSize("save_button_specs_icons").height
sourceSize.width: width
sourceSize.height: height
color: UM.Theme.getColor("text")
visible: preheatCountdown.visible
source: UM.Theme.getIcon("print_time")
anchors.right: preheatCountdown.left
anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2
anchors.verticalCenter: preheatCountdown.verticalCenter
}
Timer
{
id: preheatUpdateTimer
interval: 100 //Update every 100ms. You want to update every 1s, but then you have one timer for the updating running out of sync with the actual date timer and you might skip seconds.
running: connectedPrinter != null && connectedPrinter.preheatBedRemainingTime != ""
repeat: true
onTriggered: update()
property var endTime: new Date() //Set initial endTime to be the current date, so that the endTime has initially already passed and the timer text becomes invisible if you were to update.
function update()
{
preheatCountdown.text = ""
if (connectedPrinter != null)
{
preheatCountdown.text = connectedPrinter.preheatBedRemainingTime;
}
if (preheatCountdown.text == "") //Either time elapsed or not connected.
{
stop();
}
}
}
Label
{
id: preheatCountdown
text: connectedPrinter != null ? connectedPrinter.preheatBedRemainingTime : ""
visible: text != "" //Has no direct effect, but just so that we can link visibility of clock icon to visibility of the countdown text.
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
anchors.right: preheatButton.left
anchors.rightMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: preheatButton.verticalCenter
}
Button //The pre-heat button.
{
id: preheatButton
height: UM.Theme.getSize("setting_control").height
enabled:
{
if (!preheatTemperatureControl.enabled)
{
return false; //Not connected, not authenticated or printer is busy.
}
if (preheatUpdateTimer.running)
{
return true; //Can always cancel if the timer is running.
}
if (bedTemperature.properties.minimum_value != "None" && parseInt(preheatTemperatureInput.text) < parseInt(bedTemperature.properties.minimum_value))
{
return false; //Target temperature too low.
}
if (bedTemperature.properties.maximum_value != "None" && parseInt(preheatTemperatureInput.text) > parseInt(bedTemperature.properties.maximum_value))
{
return false; //Target temperature too high.
}
if (parseInt(preheatTemperatureInput.text) == 0)
{
return false; //Setting the temperature to 0 is not allowed (since that cancels the pre-heating).
}
return true; //Preconditions are met.
}
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.margins: UM.Theme.getSize("default_margin").width
style: ButtonStyle {
background: Rectangle
{
border.width: UM.Theme.getSize("default_lining").width
implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2)
border.color:
{
if(!control.enabled)
{
return UM.Theme.getColor("action_button_disabled_border");
}
else if(control.pressed)
{
return UM.Theme.getColor("action_button_active_border");
}
else if(control.hovered)
{
return UM.Theme.getColor("action_button_hovered_border");
}
else
{
return UM.Theme.getColor("action_button_border");
}
}
color:
{
if(!control.enabled)
{
return UM.Theme.getColor("action_button_disabled");
}
else if(control.pressed)
{
return UM.Theme.getColor("action_button_active");
}
else if(control.hovered)
{
return UM.Theme.getColor("action_button_hovered");
}
else
{
return UM.Theme.getColor("action_button");
}
}
Behavior on color
{
ColorAnimation
{
duration: 50
}
}
Label
{
id: actualLabel
anchors.centerIn: parent
color:
{
if(!control.enabled)
{
return UM.Theme.getColor("action_button_disabled_text");
}
else if(control.pressed)
{
return UM.Theme.getColor("action_button_active_text");
}
else if(control.hovered)
{
return UM.Theme.getColor("action_button_hovered_text");
}
else
{
return UM.Theme.getColor("action_button_text");
}
}
font: UM.Theme.getFont("action_button")
text: preheatUpdateTimer.running ? catalog.i18nc("@button Cancel pre-heating", "Cancel") : catalog.i18nc("@button", "Pre-heat")
}
}
}
onClicked:
{
if (!preheatUpdateTimer.running)
{
connectedPrinter.preheatBed(preheatTemperatureInput.text, connectedPrinter.preheatBedTimeout);
preheatUpdateTimer.start();
preheatUpdateTimer.update(); //Update once before the first timer is triggered.
}
else
{
connectedPrinter.cancelPreheatBed();
preheatUpdateTimer.update();
}
}
onHoveredChanged:
{
if (hovered)
{
base.showTooltip(
base,
{x: 0, y: preheatButton.mapToItem(base, 0, 0).y},
catalog.i18nc("@tooltip of pre-heat", "Heat the bed in advance before printing. You can continue adjusting your print while it is heating, and you won't have to wait for the bed to heat up when you're ready to print.")
);
}
else
{
base.hideTooltip();
}
}
}
}
UM.SettingPropertyProvider
{
id: bedTemperature
containerStackId: Cura.MachineManager.activeMachineId
key: "material_bed_temperature"
watchedProperties: ["value", "minimum_value", "maximum_value", "resolve"]
storeIndex: 0
property var resolve: Cura.MachineManager.activeStackId != Cura.MachineManager.activeMachineId ? properties.resolve : "None"
}
UM.SettingPropertyProvider
{
id: machineExtruderCount
containerStackId: Cura.MachineManager.activeMachineId
key: "machine_extruder_count"
watchedProperties: ["value"]
}
Loader
@ -72,19 +636,19 @@ Column
{
sourceComponent: monitorItem
property string label: catalog.i18nc("@label", "Job Name")
property string value: printerConnected ? connectedPrinter.jobName : ""
property string value: connectedPrinter != null ? connectedPrinter.jobName : ""
}
Loader
{
sourceComponent: monitorItem
property string label: catalog.i18nc("@label", "Printing Time")
property string value: printerConnected ? getPrettyTime(connectedPrinter.timeTotal) : ""
property string value: connectedPrinter != null ? getPrettyTime(connectedPrinter.timeTotal) : ""
}
Loader
{
sourceComponent: monitorItem
property string label: catalog.i18nc("@label", "Estimated time left")
property string value: printerConnected ? getPrettyTime(connectedPrinter.timeTotal - connectedPrinter.timeElapsed) : ""
property string value: connectedPrinter != null ? getPrettyTime(connectedPrinter.timeTotal - connectedPrinter.timeElapsed) : ""
}
Component
@ -103,7 +667,7 @@ Column
width: parent.width * 0.4
anchors.verticalCenter: parent.verticalCenter
text: label
color: printerConnected && printerAcceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
font: UM.Theme.getFont("default")
elide: Text.ElideRight
}
@ -112,7 +676,7 @@ Column
width: parent.width * 0.6
anchors.verticalCenter: parent.verticalCenter
text: value
color: printerConnected && printerAcceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
font: UM.Theme.getFont("default")
elide: Text.ElideRight
}
@ -125,7 +689,7 @@ Column
Rectangle
{
color: UM.Theme.getColor("setting_category")
width: base.width - 2 * UM.Theme.getSize("default_margin").width
width: base.width
height: UM.Theme.getSize("section").height
Label

View file

@ -14,7 +14,10 @@ Item {
property real progress: UM.Backend.progress;
property int backendState: UM.Backend.state;
property bool activity: Printer.getPlatformActivity;
property var backend: CuraApplication.getBackend();
property bool activity: Printer.platformActivity;
property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height
property string fileBaseName
property string statusText:
@ -27,7 +30,7 @@ Item {
switch(base.backendState)
{
case 1:
return catalog.i18nc("@label:PrintjobStatus", "Preparing to slice...");
return catalog.i18nc("@label:PrintjobStatus", "Ready to slice");
case 2:
return catalog.i18nc("@label:PrintjobStatus", "Slicing...");
case 3:
@ -102,11 +105,107 @@ Item {
}
}
Connections {
target: UM.Preferences
onPreferenceChanged:
{
var autoSlice = UM.Preferences.getValue("general/auto_slice");
prepareButton.autoSlice = autoSlice;
saveToButton.autoSlice = autoSlice;
}
}
// Prepare button, only shows if auto_slice is off
Button {
id: prepareButton
tooltip: UM.OutputDeviceManager.activeDeviceDescription;
// 1 = not started, 2 = Processing
enabled: (base.backendState == 1 || base.backendState == 2) && base.activity == true
visible: {
return !autoSlice && (base.backendState == 1 || base.backendState == 2) && base.activity == true;
}
property bool autoSlice
height: UM.Theme.getSize("save_button_save_to_button").height
anchors.top: parent.top
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width
// 1 = not started, 5 = disabled
text: [1, 5].indexOf(UM.Backend.state) != -1 ? catalog.i18nc("@label:Printjob", "Prepare") : catalog.i18nc("@label:Printjob", "Cancel")
onClicked:
{
if ([1, 5].indexOf(UM.Backend.state) != -1) {
backend.forceSlice();
} else {
backend.stopSlicing();
}
}
style: ButtonStyle {
background: Rectangle
{
border.width: UM.Theme.getSize("default_lining").width
border.color:
{
if(!control.enabled)
return UM.Theme.getColor("action_button_disabled_border");
else if(control.pressed)
return UM.Theme.getColor("action_button_active_border");
else if(control.hovered)
return UM.Theme.getColor("action_button_hovered_border");
else
return UM.Theme.getColor("action_button_border");
}
color:
{
if(!control.enabled)
return UM.Theme.getColor("action_button_disabled");
else if(control.pressed)
return UM.Theme.getColor("action_button_active");
else if(control.hovered)
return UM.Theme.getColor("action_button_hovered");
else
return UM.Theme.getColor("action_button");
}
Behavior on color { ColorAnimation { duration: 50; } }
implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2)
Label {
id: actualLabel
anchors.centerIn: parent
color:
{
if(!control.enabled)
return UM.Theme.getColor("action_button_disabled_text");
else if(control.pressed)
return UM.Theme.getColor("action_button_active_text");
else if(control.hovered)
return UM.Theme.getColor("action_button_hovered_text");
else
return UM.Theme.getColor("action_button_text");
}
font: UM.Theme.getFont("action_button")
text: control.text;
}
}
label: Item { }
}
}
Button {
id: saveToButton
tooltip: UM.OutputDeviceManager.activeDeviceDescription;
// 3 = done, 5 = disabled
enabled: (base.backendState == 3 || base.backendState == 5) && base.activity == true
visible: {
return autoSlice || ((base.backendState == 3 || base.backendState == 5) && base.activity == true);
}
property bool autoSlice
height: UM.Theme.getSize("save_button_save_to_button").height
anchors.top: parent.top
@ -181,8 +280,9 @@ Item {
anchors.rightMargin: UM.Theme.getSize("default_margin").width
width: UM.Theme.getSize("save_button_save_to_button").height
height: UM.Theme.getSize("save_button_save_to_button").height
// 3 = Done, 5 = Disabled
enabled: (base.backendState == 3 || base.backendState == 5) && base.activity == true
visible: devicesModel.deviceCount > 1
visible: (devicesModel.deviceCount > 1) && (base.backendState == 3 || base.backendState == 5) && base.activity == true
style: ButtonStyle {

View file

@ -1,4 +1,4 @@
// Copyright (c) 2015 Ultimaker B.V.
// Copyright (c) 2017 Ultimaker B.V.
// Cura is released under the terms of the AGPLv3 or higher.
import QtQuick 2.2
@ -15,7 +15,7 @@ Rectangle
id: base;
property int currentModeIndex;
property bool monitoringPrint: false
property bool monitoringPrint: false; // When adding more "tabs", one want to replace this bool with a ListModel
property bool hideSettings: PrintInformation.preSliced
Connections
{
@ -31,6 +31,7 @@ Rectangle
// Is there an output device for this printer?
property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0
property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands
property int backendState: UM.Backend.state;
color: UM.Theme.getColor("sidebar")
UM.I18nCatalog { id: catalog; name:"cura"}
@ -455,19 +456,6 @@ Rectangle
}
}
Label {
id: monitorLabel
text: catalog.i18nc("@label","Printer Monitor");
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width;
anchors.top: headerSeparator.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height
width: parent.width * 0.45
font: UM.Theme.getFont("large")
color: UM.Theme.getColor("text")
visible: monitoringPrint
}
StackView
{
id: sidebarContents
@ -511,10 +499,8 @@ Rectangle
Loader
{
anchors.bottom: footerSeparator.top
anchors.top: monitorLabel.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height
anchors.top: headerSeparator.bottom
anchors.left: base.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.right: base.right
source: monitoringPrint ? "PrintMonitor.qml": "SidebarContents.qml"
}
@ -529,6 +515,8 @@ Rectangle
anchors.bottomMargin: UM.Theme.getSize("default_margin").height
}
// SaveButton and MonitorButton are actually the bottom footer panels.
// "!monitoringPrint" currently means "show-settings-mode"
SaveButton
{
id: saveButton
@ -553,6 +541,7 @@ Rectangle
id: tooltip;
}
// Setting mode: Recommended or Custom
ListModel
{
id: modesListModel;

View file

@ -398,7 +398,7 @@ Item
style: UM.Theme.styles.checkbox;
enabled: base.settingsEnabled
checked: platformAdhesionType.properties.value != "skirt"
checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none"
MouseArea
{

View file

@ -0,0 +1,22 @@
[general]
version = 2
name = Normal Quality
definition = abax_pri3
[metadata]
type = quality
material = generic_pla
weight = 0
quality_type = normal
[values]
layer_height = 0.2
wall_thickness = 1.05
top_bottom_thickness = 0.8
infill_sparse_density = 20
speed_print = 80
speed_layer_0 = =round(speed_print * 30 / 50)
speed_topbottom = 20
cool_min_layer_time = 5
cool_min_speed = 10

View file

@ -0,0 +1,22 @@
[general]
version = 2
name = High Quality
definition = abax_pri3
[metadata]
type = quality
material = generic_pla
weight = 1
quality_type = high
[values]
layer_height = 0.1
wall_thickness = 1.05
top_bottom_thickness = 0.8
infill_sparse_density = 20
speed_print = 50
speed_layer_0 = =round(speed_print * 30 / 50)
speed_topbottom = 20
cool_min_layer_time = 5
cool_min_speed = 10

View file

@ -0,0 +1,22 @@
[general]
version = 2
name = Normal Quality
definition = abax_pri3
[metadata]
type = quality
material = generic_pla
weight = 0
quality_type = normal
[values]
layer_height = 0.2
wall_thickness = 1.05
top_bottom_thickness = 0.8
infill_sparse_density = 20
speed_print = 50
speed_layer_0 = =round(speed_print * 30 / 50)
speed_topbottom = 20
cool_min_layer_time = 5
cool_min_speed = 10

View file

@ -0,0 +1,22 @@
[general]
version = 2
name = Normal Quality
definition = abax_pri5
[metadata]
type = quality
material = generic_pla
weight = 0
quality_type = normal
[values]
layer_height = 0.2
wall_thickness = 1.05
top_bottom_thickness = 0.8
infill_sparse_density = 20
speed_print = 80
speed_layer_0 = =round(speed_print * 30 / 50)
speed_topbottom = 20
cool_min_layer_time = 5
cool_min_speed = 10

View file

@ -0,0 +1,22 @@
[general]
version = 2
name = High Quality
definition = abax_pri5
[metadata]
type = quality
material = generic_pla
weight = 1
quality_type = high
[values]
layer_height = 0.1
wall_thickness = 1.05
top_bottom_thickness = 0.8
infill_sparse_density = 20
speed_print = 50
speed_layer_0 = =round(speed_print * 30 / 50)
speed_topbottom = 20
cool_min_layer_time = 5
cool_min_speed = 10

View file

@ -0,0 +1,22 @@
[general]
version = 2
name = Normal Quality
definition = abax_pri5
[metadata]
type = quality
material = generic_pla
weight = 0
quality_type = normal
[values]
layer_height = 0.2
wall_thickness = 1.05
top_bottom_thickness = 0.8
infill_sparse_density = 20
speed_print = 50
speed_layer_0 = =round(speed_print * 30 / 50)
speed_topbottom = 20
cool_min_layer_time = 5
cool_min_speed = 10

View file

@ -0,0 +1,22 @@
[general]
version = 2
name = Normal Quality
definition = abax_titan
[metadata]
type = quality
material = generic_pla
weight = 0
quality_type = normal
[values]
layer_height = 0.2
wall_thickness = 1.05
top_bottom_thickness = 0.8
infill_sparse_density = 20
speed_print = 80
speed_layer_0 = =round(speed_print * 30 / 50)
speed_topbottom = 20
cool_min_layer_time = 5
cool_min_speed = 10

View file

@ -0,0 +1,21 @@
[general]
version = 2
name = High Quality
definition = abax_titan
[metadata]
type = quality
material = generic_pla
weight = 1
quality_type = high
[values]
layer_height = 0.1
wall_thickness = 1.05
top_bottom_thickness = 0.8
infill_sparse_density = 20
speed_print = 50
speed_layer_0 = =round(speed_print * 30 / 50)
speed_topbottom = 20
cool_min_layer_time = 5
cool_min_speed = 10

View file

@ -0,0 +1,22 @@
[general]
version = 2
name = Normal Quality
definition = abax_titan
[metadata]
type = quality
material = generic_pla
weight = 0
quality_type = normal
[values]
layer_height = 0.2
wall_thickness = 1.05
top_bottom_thickness = 0.8
infill_sparse_density = 20
speed_print = 50
speed_layer_0 = =round(speed_print * 30 / 50)
speed_topbottom = 20
cool_min_layer_time = 5
cool_min_speed = 10

View file

@ -18,7 +18,7 @@ material_final_print_temperature = =material_print_temperature - 10
prime_tower_size = 16
skin_overlap = 20
speed_print = 60
speed_layer_0 = =round(speed_print * 30 / 60)
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 35 / 60)
speed_wall = =math.ceil(speed_print * 45 / 60)
speed_wall_0 = =math.ceil(speed_wall * 35 / 45)

View file

@ -19,7 +19,7 @@ material_final_print_temperature = =material_print_temperature - 10
material_standby_temperature = 100
prime_tower_size = 16
speed_print = 60
speed_layer_0 = =round(speed_print * 30 / 60)
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 30 / 60)
speed_wall = =math.ceil(speed_print * 40 / 60)
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)

View file

@ -19,7 +19,7 @@ material_initial_print_temperature = =material_print_temperature - 5
material_final_print_temperature = =material_print_temperature - 10
prime_tower_size = 16
speed_print = 50
speed_layer_0 = =round(speed_print * 30 / 50)
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 30 / 50)
speed_wall = =math.ceil(speed_print * 30 / 50)

View file

@ -17,7 +17,7 @@ material_final_print_temperature = =material_print_temperature - 10
material_standby_temperature = 100
prime_tower_size = 16
speed_print = 55
speed_layer_0 = =round(speed_print * 30 / 55)
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 30 / 55)
speed_wall = =math.ceil(speed_print * 30 / 55)

View file

@ -0,0 +1,37 @@
[general]
version = 2
name = Draft Print
definition = ultimaker3
[metadata]
type = quality
quality_type = draft
material = generic_cpe_plus_ultimaker3_AA_0.4
weight = -2
[values]
brim_width = 7
cool_fan_speed_max = 80
cool_min_speed = 5
infill_wipe_dist = 0
layer_height = 0.2
machine_nozzle_cool_down_speed = 0.9
machine_nozzle_heat_up_speed = 1.4
material_initial_print_temperature = =material_print_temperature - 5
material_final_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 5
prime_tower_size = 17
retraction_combing = off
retraction_hop = 0.2
retraction_hop_enabled = False
retraction_min_travel = =5
retraction_prime_speed = =15
speed_topbottom = =math.ceil(speed_print * 65 / 50)
speed_wall = =math.ceil(speed_print * 50 / 50)
speed_wall_0 = =math.ceil(speed_wall * 40 / 50)
support_z_distance = =layer_height
switch_extruder_prime_speed = =15
switch_extruder_retraction_amount = =8
switch_extruder_retraction_speeds = 20
wall_thickness = 1

View file

@ -0,0 +1,38 @@
[general]
version = 2
name = Fast Print
definition = ultimaker3
[metadata]
type = quality
quality_type = fast
material = generic_cpe_plus_ultimaker3_AA_0.4
weight = -1
[values]
brim_width = 7
cool_fan_speed_max = 80
cool_min_speed = 6
infill_wipe_dist = 0
layer_height = 0.15
machine_nozzle_cool_down_speed = 0.9
machine_nozzle_heat_up_speed = 1.4
material_initial_print_temperature = =material_print_temperature - 5
material_final_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 5
prime_tower_size = 17
retraction_combing = off
retraction_hop = 0.2
retraction_hop_enabled = False
retraction_min_travel = =5
retraction_prime_speed = =15
speed_print = 45
speed_topbottom = =math.ceil(speed_print * 55 / 45)
speed_wall = =math.ceil(speed_print * 45 / 45)
speed_wall_0 = =math.ceil(speed_wall * 35 / 45)
support_z_distance = =layer_height
switch_extruder_prime_speed = =15
switch_extruder_retraction_amount = =8
switch_extruder_retraction_speeds = 20
wall_thickness = 1.3

View file

@ -0,0 +1,35 @@
[general]
version = 2
name = High Quality
definition = ultimaker3
[metadata]
type = quality
quality_type = high
material = generic_cpe_plus_ultimaker3_AA_0.4
weight = 1
[values]
brim_width = 7
cool_min_speed = 5
infill_wipe_dist = 0
layer_height = 0.06
material_initial_print_temperature = =material_print_temperature - 5
material_final_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature - 3
prime_tower_size = 17
retraction_combing = off
retraction_hop = 0.2
retraction_hop_enabled = False
retraction_min_travel = =5
retraction_prime_speed = =15
speed_print = 40
speed_topbottom = =math.ceil(speed_print * 30 / 35)
speed_wall = =math.ceil(speed_print * 35 / 40)
speed_wall_0 = =math.ceil(speed_wall * 30 / 35)
support_z_distance = =layer_height
switch_extruder_prime_speed = =15
switch_extruder_retraction_amount = =8
switch_extruder_retraction_speeds = 20
wall_thickness = 1.3

View file

@ -0,0 +1,34 @@
[general]
version = 2
name = Normal Quality
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_cpe_plus_ultimaker3_AA_0.4
weight = 0
[values]
brim_width = 7
cool_min_speed = 7
infill_wipe_dist = 0
material_initial_print_temperature = =material_print_temperature - 5
material_final_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature
prime_tower_size = 17
retraction_combing = off
retraction_hop = 0.2
retraction_hop_enabled = False
retraction_min_travel = =5
retraction_prime_speed = =15
speed_print = 40
speed_topbottom = =math.ceil(speed_print * 30 / 35)
speed_wall = =math.ceil(speed_print * 35 / 40)
speed_wall_0 = =math.ceil(speed_wall * 30 / 35)
support_z_distance = =layer_height
switch_extruder_prime_speed = =15
switch_extruder_retraction_amount = =8
switch_extruder_retraction_speeds = 20
wall_thickness = 1.3

View file

@ -17,7 +17,7 @@ material_standby_temperature = 100
prime_tower_size = 17
skin_overlap = 20
speed_print = 60
speed_layer_0 = =round(speed_print * 30 / 60)
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 35 / 60)
speed_wall = =math.ceil(speed_print * 45 / 60)
speed_wall_0 = =math.ceil(speed_wall * 35 / 45)

View file

@ -17,7 +17,7 @@ material_final_print_temperature = =material_print_temperature - 10
material_standby_temperature = 100
prime_tower_size = 17
speed_print = 60
speed_layer_0 = =round(speed_print * 30 / 60)
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 30 / 60)
speed_wall = =math.ceil(speed_print * 40 / 60)
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)

View file

@ -19,7 +19,7 @@ material_final_print_temperature = =material_print_temperature - 10
material_standby_temperature = 100
prime_tower_size = 17
speed_print = 50
speed_layer_0 = =round(speed_print * 30 / 50)
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 30 / 50)
speed_wall = =math.ceil(speed_print * 30 / 50)

View file

@ -17,7 +17,7 @@ material_final_print_temperature = =material_print_temperature - 10
material_standby_temperature = 100
prime_tower_size = 17
speed_print = 55
speed_layer_0 = =round(speed_print * 30 / 55)
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 30 / 55)
speed_wall = =math.ceil(speed_print * 30 / 55)

View file

@ -0,0 +1,36 @@
[general]
version = 2
name = Draft Print
definition = ultimaker3
[metadata]
type = quality
quality_type = draft
material = generic_pc_ultimaker3_AA_0.4
weight = -2
[values]
adhesion_type = raft
cool_fan_full_at_height = =layer_height_0 + layer_height
cool_fan_speed_max = 90
cool_min_layer_time_fan_speed_max = 5
cool_min_speed = 6
infill_line_width = =round(line_width * 0.4 / 0.35, 2)
infill_overlap_mm = 0.05
layer_height = 0.2
material_final_print_temperature = =material_print_temperature - 10
material_initial_print_temperature = =material_print_temperature - 5
material_print_temperature = =default_material_print_temperature + 10
material_print_temperature_layer_0 = =material_print_temperature + 5
ooze_shield_angle = 40
raft_airgap = 0.25
raft_margin = 15
retraction_count_max = 80
skin_overlap = 30
speed_layer_0 = 25
support_interface_line_distance = 0.4
support_interface_pattern = lines
support_pattern = zigzag
wall_line_width_x = =round(line_width * 0.4 / 0.35, 2)
xy_offset = -0.15

View file

@ -0,0 +1,37 @@
[general]
version = 2
name = Fast Print
definition = ultimaker3
[metadata]
type = quality
quality_type = fast
material = generic_pc_ultimaker3_AA_0.4
weight = -1
[values]
adhesion_type = raft
cool_fan_full_at_height = =layer_height_0 + layer_height
cool_fan_speed_max = 85
cool_min_layer_time_fan_speed_max = 5
cool_min_speed = 7
infill_line_width = =round(line_width * 0.4 / 0.35, 2)
infill_overlap = =0
infill_overlap_mm = 0.05
layer_height = 0.15
material_initial_print_temperature = =material_print_temperature - 5
material_final_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature + 10
material_print_temperature_layer_0 = =material_print_temperature + 5
ooze_shield_angle = 40
raft_airgap = 0.25
raft_margin = 15
retraction_count_max = 80
skin_overlap = 30
speed_layer_0 = 25
support_interface_line_distance = 0.4
support_interface_pattern = lines
support_pattern = zigzag
wall_line_width_x = =round(line_width * 0.4 / 0.35, 2)
xy_offset = -0.15

View file

@ -0,0 +1,35 @@
[general]
version = 2
name = High Quality
definition = ultimaker3
[metadata]
type = quality
quality_type = high
material = generic_pc_ultimaker3_AA_0.4
weight = 1
[values]
adhesion_type = raft
cool_fan_full_at_height = =layer_height_0 + layer_height
cool_min_layer_time_fan_speed_max = 5
cool_min_speed = 8
infill_line_width = =round(line_width * 0.4 / 0.35, 2)
infill_overlap_mm = 0.05
layer_height = 0.06
material_initial_print_temperature = =material_print_temperature - 5
material_final_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature - 10
material_print_temperature_layer_0 = =material_print_temperature + 5
ooze_shield_angle = 40
raft_airgap = 0.25
raft_margin = 15
retraction_count_max = 80
skin_overlap = 30
speed_layer_0 = 25
support_interface_line_distance = 0.4
support_interface_pattern = lines
support_pattern = zigzag
wall_line_width_x = =round(line_width * 0.4 / 0.35, 2)
xy_offset = -0.15

View file

@ -0,0 +1,34 @@
[general]
version = 2
name = Normal Quality
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_pc_ultimaker3_AA_0.4
weight = 0
[values]
adhesion_type = raft
cool_fan_full_at_height = =layer_height_0 + layer_height
cool_min_layer_time_fan_speed_max = 5
cool_min_speed = 5
infill_line_width = =round(line_width * 0.4 / 0.35, 2)
infill_overlap_mm = 0.05
material_initial_print_temperature = =material_print_temperature - 5
material_final_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature
material_print_temperature_layer_0 = =material_print_temperature + 5
ooze_shield_angle = 40
raft_airgap = 0.25
raft_margin = 15
retraction_count_max = 80
skin_overlap = 30
speed_layer_0 = 25
support_interface_line_distance = 0.4
support_interface_pattern = lines
support_pattern = zigzag
wall_line_width_x = =round(line_width * 0.4 / 0.35, 2)
xy_offset = -0.15

View file

@ -18,6 +18,7 @@ material_print_temperature = =default_material_print_temperature + 5
material_standby_temperature = 100
prime_tower_enable = False
skin_overlap = 20
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 35 / 70)
speed_wall = =math.ceil(speed_print * 50 / 70)
speed_wall_0 = =math.ceil(speed_wall * 35 / 50)

View file

@ -17,7 +17,7 @@ machine_nozzle_heat_up_speed = 1.6
material_standby_temperature = 100
prime_tower_enable = False
speed_print = 80
speed_layer_0 = =round(speed_print * 30 / 80)
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 30 / 80)
speed_wall = =math.ceil(speed_print * 40 / 80)
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)

View file

@ -20,7 +20,7 @@ material_standby_temperature = 100
prime_tower_enable = False
skin_overlap = 10
speed_print = 60
speed_layer_0 = =round(speed_print * 30 / 60)
speed_layer_0 = 20
speed_topbottom = =math.ceil(speed_print * 30 / 60)
speed_wall = =math.ceil(speed_print * 30 / 60)
top_bottom_thickness = 1

View file

@ -18,6 +18,7 @@ machine_nozzle_heat_up_speed = 1.6
material_standby_temperature = 100
prime_tower_enable = False
skin_overlap = 10
speed_layer_0 = 20
top_bottom_thickness = 1
wall_thickness = 1

View file

@ -0,0 +1,43 @@
[general]
version = 2
name = Draft Print
definition = ultimaker3
[metadata]
type = quality
quality_type = draft
material = generic_tpu_ultimaker3_AA_0.4
weight = -2
[values]
brim_width = 8.75
cool_fan_speed_max = 100
cool_min_layer_time_fan_speed_max = 6
gradual_infill_step_height = =5 * layer_height
gradual_infill_steps = 4
infill_line_width = =round(line_width * 0.38 / 0.38, 2)
infill_pattern = tetrahedral
infill_sparse_density = 96
layer_height = 0.2
line_width = =machine_nozzle_size * 0.95
material_final_print_temperature = =material_print_temperature - 10
material_flow = 106
material_initial_print_temperature = =material_print_temperature - 5
material_print_temperature = =default_material_print_temperature + 2
material_print_temperature_layer_0 = =material_print_temperature
retraction_count_max = 12
retraction_extra_prime_amount = 0.8
skin_overlap = 15
speed_equalize_flow_enabled = True
speed_layer_0 = 18
speed_print = 25
speed_topbottom = =math.ceil(speed_print * 25 / 25)
speed_travel = 300
speed_wall = =math.ceil(speed_print * 25 / 25)
speed_wall_0 = =math.ceil(speed_wall * 25 / 25)
support_angle = 50
support_bottom_distance = =support_z_distance / 2
top_bottom_thickness = 0.7
wall_line_width_x = =line_width
wall_thickness = 0.76

View file

@ -0,0 +1,44 @@
[general]
version = 2
name = Fast Print
definition = ultimaker3
[metadata]
type = quality
quality_type = fast
material = generic_tpu_ultimaker3_AA_0.4
weight = -1
[values]
brim_width = 8.75
cool_fan_speed_max = 100
cool_min_layer_time_fan_speed_max = 6
gradual_infill_step_height = =5 * layer_height
gradual_infill_steps = 4
infill_line_width = =round(line_width * 0.38 / 0.38, 2)
infill_pattern = tetrahedral
infill_sparse_density = 96
layer_height = 0.15
line_width = =machine_nozzle_size * 0.95
material_final_print_temperature = =material_print_temperature - 10
material_flow = 106
material_initial_print_temperature = =material_print_temperature - 5
material_print_temperature = =default_material_print_temperature + 2
material_print_temperature_layer_0 = =material_print_temperature
retraction_amount = 7
retraction_count_max = 12
retraction_extra_prime_amount = 0.8
skin_overlap = 15
speed_equalize_flow_enabled = True
speed_layer_0 = 18
speed_print = 25
speed_topbottom = =math.ceil(speed_print * 25 / 25)
speed_travel = 300
speed_wall = =math.ceil(speed_print * 25 / 25)
speed_wall_0 = =math.ceil(speed_wall * 25 / 25)
support_angle = 50
support_bottom_distance = =support_z_distance / 2
top_bottom_thickness = 0.7
wall_line_width_x = =line_width
wall_thickness = 0.76

View file

@ -0,0 +1,42 @@
[general]
version = 2
name = Normal Quality
definition = ultimaker3
[metadata]
type = quality
quality_type = normal
material = generic_tpu_ultimaker3_AA_0.4
weight = 0
[values]
brim_width = 8.75
cool_fan_speed_max = 100
cool_min_layer_time_fan_speed_max = 6
gradual_infill_step_height = =5 * layer_height
gradual_infill_steps = 4
infill_line_width = =round(line_width * 0.38 / 0.38, 2)
infill_pattern = tetrahedral
infill_sparse_density = 96
line_width = =machine_nozzle_size * 0.95
material_final_print_temperature = =material_print_temperature - 10
material_flow = 106
material_initial_print_temperature = =material_print_temperature - 10
material_print_temperature = =default_material_print_temperature
material_print_temperature_layer_0 = =material_print_temperature
retraction_count_max = 12
retraction_extra_prime_amount = 0.8
skin_overlap = 15
speed_equalize_flow_enabled = True
speed_layer_0 = 18
speed_print = 25
speed_topbottom = =math.ceil(speed_print * 25 / 25)
speed_travel = 300
speed_wall = =math.ceil(speed_print * 25 / 25)
speed_wall_0 = =math.ceil(speed_wall * 25 / 25)
support_angle = 50
support_bottom_distance = =support_z_distance / 2
top_bottom_thickness = 0.7
wall_line_width_x = =line_width
wall_thickness = 0.76

View file

@ -12,13 +12,15 @@ material = generic_pva_ultimaker3_BB_0.4
[values]
acceleration_support = =math.ceil(acceleration_print * 500 / 4000)
acceleration_support_infill = =acceleration_support
acceleration_support_interface = =acceleration_support
jerk_support = =math.ceil(jerk_print * 5 / 25)
jerk_support_infill = =jerk_support
jerk_support_interface = =jerk_support
material_print_temperature = =default_material_print_temperature + 10
material_standby_temperature = 100
skin_overlap = 20
support_interface_height = 0.8
prime_tower_enable = False
speed_support_interface = =math.ceil(speed_support * 20 / 25)
jerk_support_interface = =math.ceil(jerk_support * 1 / 5)
acceleration_support_interface = =math.ceil(acceleration_support * 100 / 500 )
support_xy_distance = =round(line_width * 1.5, 2)

View file

@ -12,13 +12,14 @@ material = generic_pva_ultimaker3_BB_0.4
[values]
acceleration_support = =math.ceil(acceleration_print * 500 / 4000)
acceleration_support_infill = =acceleration_support
acceleration_support_interface = =acceleration_support
jerk_support = =math.ceil(jerk_print * 5 / 25)
jerk_support_infill = =jerk_support
jerk_support_interface = =jerk_support
material_print_temperature = =default_material_print_temperature + 5
material_standby_temperature = 100
skin_overlap = 15
support_interface_height = 0.8
prime_tower_enable = False
speed_support_interface = =math.ceil(speed_support * 20 / 25)
jerk_support_interface = =math.ceil(jerk_support * 1 / 5)
acceleration_support_interface = =math.ceil(acceleration_support * 100 / 500 )
support_xy_distance = =round(line_width * 1.5, 2)

View file

@ -12,12 +12,14 @@ material = generic_pva_ultimaker3_BB_0.4
[values]
acceleration_support = =math.ceil(acceleration_print * 500 / 4000)
acceleration_support_infill = =acceleration_support
acceleration_support_interface = =acceleration_support
jerk_support = =math.ceil(jerk_print * 5 / 25)
jerk_support_infill = =jerk_support
jerk_support_interface = =jerk_support
support_infill_rate = 25
support_interface_height = 0.8
material_standby_temperature = 100
prime_tower_enable = False
speed_support_interface = =math.ceil(speed_support * 20 / 25)
jerk_support_interface = =math.ceil(jerk_support * 1 / 5)
acceleration_support_interface = =math.ceil(acceleration_support * 100 / 500 )
support_xy_distance = =round(line_width * 1.5, 2)

View file

@ -12,12 +12,13 @@ material = generic_pva_ultimaker3_BB_0.4
[values]
acceleration_support = =math.ceil(acceleration_print * 500 / 4000)
acceleration_support_infill = =acceleration_support
acceleration_support_interface = =acceleration_support
jerk_support = =math.ceil(jerk_print * 5 / 25)
jerk_support_infill = =jerk_support
jerk_support_interface = =jerk_support
support_infill_rate = 25
support_interface_height = 0.8
material_standby_temperature = 100
prime_tower_enable = False
speed_support_interface = =math.ceil(speed_support * 20 / 25)
jerk_support_interface = =math.ceil(jerk_support * 1 / 5)
acceleration_support_interface = =math.ceil(acceleration_support * 100 / 500 )
support_xy_distance = =round(line_width * 1.5, 2)

View file

@ -27,6 +27,37 @@ fragment =
gl_FragColor = u_gridColor1;
}
vertex41core =
#version 410
uniform highp mat4 u_modelViewProjectionMatrix;
in highp vec4 a_vertex;
in lowp vec2 a_uvs;
out lowp vec2 v_uvs;
void main()
{
gl_Position = u_modelViewProjectionMatrix * a_vertex;
v_uvs = a_uvs;
}
fragment41core =
#version 410
uniform lowp vec4 u_gridColor0;
uniform lowp vec4 u_gridColor1;
in lowp vec2 v_uvs;
out vec4 frag_color;
void main()
{
if (mod(floor(v_uvs.x / 10.0) - floor(v_uvs.y / 10.0), 2.0) < 1.0)
frag_color = u_gridColor0;
else
frag_color = u_gridColor1;
}
[defaults]
u_gridColor0 = [0.96, 0.96, 0.96, 1.0]
u_gridColor1 = [0.8, 0.8, 0.8, 1.0]

View file

@ -8,16 +8,16 @@ vertex =
attribute highp vec4 a_normal;
attribute highp vec2 a_uvs;
varying highp vec3 v_vertex;
varying highp vec3 v_normal;
varying highp vec3 f_vertex;
varying highp vec3 f_normal;
void main()
{
vec4 world_space_vert = u_modelMatrix * a_vertex;
gl_Position = u_viewProjectionMatrix * world_space_vert;
v_vertex = world_space_vert.xyz;
v_normal = (u_normalMatrix * normalize(a_normal)).xyz;
f_vertex = world_space_vert.xyz;
f_normal = (u_normalMatrix * normalize(a_normal)).xyz;
}
fragment =
@ -31,27 +31,28 @@ fragment =
uniform lowp float u_overhangAngle;
uniform lowp vec4 u_overhangColor;
varying highp vec3 v_vertex;
varying highp vec3 v_normal;
varying highp vec3 f_vertex;
varying highp vec3 f_normal;
void main()
{
mediump vec4 finalColor = vec4(0.0);
/* Ambient Component */
// Ambient Component
finalColor += u_ambientColor;
highp vec3 normal = normalize(v_normal);
highp vec3 lightDir = normalize(u_lightPosition - v_vertex);
highp vec3 normal = normalize(f_normal);
highp vec3 lightDir = normalize(u_lightPosition - f_vertex);
/* Diffuse Component */
// Diffuse Component
highp float NdotL = clamp(abs(dot(normal, lightDir)), 0.0, 1.0);
finalColor += (NdotL * u_diffuseColor);
/* Specular Component */
/* TODO: We should not do specularity for fragments facing away from the light.*/
// Specular Component
// TODO: We should not do specularity for fragments facing away from the light.
highp vec3 reflectedLight = reflect(-lightDir, normal);
highp vec3 viewVector = normalize(u_viewPosition - v_vertex);
highp vec3 viewVector = normalize(u_viewPosition - f_vertex);
highp float NdotR = clamp(dot(viewVector, reflectedLight), 0.0, 1.0);
finalColor += pow(NdotR, u_shininess) * u_specularColor;
@ -61,6 +62,73 @@ fragment =
gl_FragColor.a = 1.0;
}
vertex41core =
#version 410
uniform highp mat4 u_modelMatrix;
uniform highp mat4 u_viewProjectionMatrix;
uniform highp mat4 u_normalMatrix;
in highp vec4 a_vertex;
in highp vec4 a_normal;
in highp vec2 a_uvs;
out highp vec3 f_vertex;
out highp vec3 f_normal;
void main()
{
vec4 world_space_vert = u_modelMatrix * a_vertex;
gl_Position = u_viewProjectionMatrix * world_space_vert;
f_vertex = world_space_vert.xyz;
f_normal = (u_normalMatrix * normalize(a_normal)).xyz;
}
fragment41core =
#version 410
uniform mediump vec4 u_ambientColor;
uniform mediump vec4 u_diffuseColor;
uniform mediump vec4 u_specularColor;
uniform highp vec3 u_lightPosition;
uniform mediump float u_shininess;
uniform highp vec3 u_viewPosition;
uniform lowp float u_overhangAngle;
uniform lowp vec4 u_overhangColor;
in highp vec3 f_vertex;
in highp vec3 f_normal;
out vec4 frag_color;
void main()
{
mediump vec4 finalColor = vec4(0.0);
// Ambient Component
finalColor += u_ambientColor;
highp vec3 normal = normalize(f_normal);
highp vec3 lightDir = normalize(u_lightPosition - f_vertex);
// Diffuse Component
highp float NdotL = clamp(abs(dot(normal, lightDir)), 0.0, 1.0);
finalColor += (NdotL * u_diffuseColor);
// Specular Component
// TODO: We should not do specularity for fragments facing away from the light.
highp vec3 reflectedLight = reflect(-lightDir, normal);
highp vec3 viewVector = normalize(u_viewPosition - f_vertex);
highp float NdotR = clamp(dot(viewVector, reflectedLight), 0.0, 1.0);
finalColor += pow(NdotR, u_shininess) * u_specularColor;
finalColor = (-normal.y > u_overhangAngle) ? u_overhangColor : finalColor;
frag_color = finalColor;
frag_color.a = 1.0;
}
[defaults]
u_ambientColor = [0.3, 0.3, 0.3, 1.0]
u_diffuseColor = [1.0, 0.79, 0.14, 1.0]

View file

@ -63,6 +63,74 @@ fragment =
gl_FragColor.a = 1.0;
}
vertex41core =
#version 410
uniform highp mat4 u_modelMatrix;
uniform highp mat4 u_viewProjectionMatrix;
uniform highp mat4 u_normalMatrix;
in highp vec4 a_vertex;
in highp vec4 a_normal;
in highp vec2 a_uvs;
out highp vec3 v_position;
out highp vec3 v_vertex;
out highp vec3 v_normal;
void main()
{
vec4 world_space_vert = u_modelMatrix * a_vertex;
gl_Position = u_viewProjectionMatrix * world_space_vert;
v_position = gl_Position.xyz;
v_vertex = world_space_vert.xyz;
v_normal = (u_normalMatrix * normalize(a_normal)).xyz;
}
fragment41core =
#version 410
uniform mediump vec4 u_ambientColor;
uniform mediump vec4 u_diffuseColor1;
uniform mediump vec4 u_diffuseColor2;
uniform mediump vec4 u_specularColor;
uniform highp vec3 u_lightPosition;
uniform mediump float u_shininess;
uniform highp vec3 u_viewPosition;
uniform mediump float u_width;
in highp vec3 v_position;
in highp vec3 v_vertex;
in highp vec3 v_normal;
out vec4 frag_color;
void main()
{
mediump vec4 finalColor = vec4(0.0);
mediump vec4 diffuseColor = (mod((-v_position.x + v_position.y), u_width) < (u_width / 2.)) ? u_diffuseColor1 : u_diffuseColor2;
/* Ambient Component */
finalColor += u_ambientColor;
highp vec3 normal = normalize(v_normal);
highp vec3 lightDir = normalize(u_lightPosition - v_vertex);
/* Diffuse Component */
highp float NdotL = clamp(abs(dot(normal, lightDir)), 0.0, 1.0);
finalColor += (NdotL * diffuseColor);
/* Specular Component */
/* TODO: We should not do specularity for fragments facing away from the light.*/
highp vec3 reflectedLight = reflect(-lightDir, normal);
highp vec3 viewVector = normalize(u_viewPosition - v_vertex);
highp float NdotR = clamp(dot(viewVector, reflectedLight), 0.0, 1.0);
finalColor += pow(NdotR, u_shininess) * u_specularColor;
frag_color = finalColor;
frag_color.a = 1.0;
}
[defaults]
u_ambientColor = [0.3, 0.3, 0.3, 1.0]
u_diffuseColor1 = [1.0, 0.5, 0.5, 1.0]

View file

@ -48,6 +48,59 @@ fragment =
gl_FragColor.a = u_opacity;
}
vertex41core =
#version 410
uniform highp mat4 u_modelMatrix;
uniform highp mat4 u_viewProjectionMatrix;
uniform highp mat4 u_normalMatrix;
in highp vec4 a_vertex;
in highp vec4 a_normal;
in highp vec2 a_uvs;
out highp vec3 v_vertex;
out highp vec3 v_normal;
void main()
{
vec4 world_space_vert = u_modelMatrix * a_vertex;
gl_Position = u_viewProjectionMatrix * world_space_vert;
v_vertex = world_space_vert.xyz;
v_normal = (u_normalMatrix * normalize(a_normal)).xyz;
}
fragment41core =
#version 410
uniform mediump vec4 u_ambientColor;
uniform mediump vec4 u_diffuseColor;
uniform highp vec3 u_lightPosition;
uniform mediump float u_opacity;
in highp vec3 v_vertex;
in highp vec3 v_normal;
out vec4 frag_color;
void main()
{
mediump vec4 finalColor = vec4(0.0);
/* Ambient Component */
finalColor += u_ambientColor;
highp vec3 normal = normalize(v_normal);
highp vec3 lightDir = normalize(u_lightPosition - v_vertex);
/* Diffuse Component */
highp float NdotL = clamp(abs(dot(normal, lightDir)), 0.0, 1.0);
finalColor += (NdotL * u_diffuseColor);
frag_color = finalColor;
frag_color.a = u_opacity;
}
[defaults]
u_ambientColor = [0.1, 0.1, 0.1, 1.0]
u_diffuseColor = [0.4, 0.4, 0.4, 1.0]

View file

@ -24,6 +24,10 @@
"bold": true,
"family": "Open Sans"
},
"very_small": {
"size": 1.0,
"family": "Open Sans"
},
"button_tooltip": {
"size": 1.0,
"family": "Open Sans"
@ -247,9 +251,11 @@
"sidebar_header_mode_toggle": [0.0, 2.0],
"sidebar_header_mode_tabs": [0.0, 3.0],
"sidebar_lining": [0.5, 0.5],
"sidebar_lining_thin": [0.2, 0.2],
"sidebar_setup": [0.0, 2.0],
"sidebar_tabs": [0.0, 3.5],
"sidebar_inputfields": [0.0, 2.0],
"sidebar_extruder_box": [0.0, 6.0],
"simple_mode_infill_caption": [0.0, 5.0],
"simple_mode_infill_height": [0.0, 8.0],

View file

@ -11,6 +11,9 @@ type = variant
machine_nozzle_size = 0.25
machine_nozzle_tip_outer_diameter = 1.05
infill_line_width = 0.3
wall_thickness = 1
wall_0_inset = -0.05
fill_perimeter_gaps = nowhere
travel_compensate_overlapping_walls_enabled =
@ -43,6 +46,7 @@ speed_support_interface = =round(speed_topbottom)
retraction_combing = off
retraction_hop_enabled = true
retraction_hop = 1
support_z_distance = 0
support_xy_distance = 0.5

View file

@ -12,6 +12,9 @@ type = variant
machine_nozzle_size = 0.4
machine_nozzle_tip_outer_diameter = 0.8
infill_line_width = 0.5
wall_thickness = 1.2
wall_0_inset = -0.05
fill_perimeter_gaps = nowhere
travel_compensate_overlapping_walls_enabled =
@ -20,7 +23,6 @@ infill_sparse_density = 25
infill_overlap = -50
skin_overlap = -40
material_print_temperature_layer_0 = =round(material_print_temperature)
material_initial_print_temperature = =round(material_print_temperature)
material_diameter = 1.75
@ -44,6 +46,7 @@ speed_support_interface = =round(speed_topbottom)
retraction_combing = off
retraction_hop_enabled = true
retraction_hop = 1
support_z_distance = 0
support_xy_distance = 0.5

View file

@ -11,18 +11,22 @@ type = variant
machine_nozzle_size = 0.8
machine_nozzle_tip_outer_diameter = 1.05
infill_line_width = 0.9
wall_thickness = 2.4
top_bottom_thickness = =0.8 if layer_height < 0.3 else (layer_height * 3)
wall_0_inset = -0.05
fill_perimeter_gaps = nowhere
travel_compensate_overlapping_walls_enabled =
infill_sparse_density = 25
infill_sparse_density = 15
infill_overlap = -50
skin_overlap = -40
material_print_temperature_layer_0 = =round(material_print_temperature)
material_initial_print_temperature = =round(material_print_temperature)
material_diameter = 1.75
retraction_amount = 2
retraction_amount = 1.5
retraction_speed = 40
retraction_prime_speed = =round(retraction_speed / 4)
retraction_min_travel = =round(line_width * 10)
@ -43,6 +47,7 @@ speed_support_interface = =round(speed_topbottom)
retraction_combing = off
retraction_hop_enabled = true
retraction_hop = 1
support_z_distance = 0
support_xy_distance = 0.5