diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 232f407f9f..99c3e0197e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1399,29 +1399,53 @@ "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, - "z_seam_x": + "z_seam_position": { - "label": "Z Seam X", - "description": "The X coordinate of the position near where to start printing each part in a layer.", - "unit": "mm", - "type": "float", - "default_value": 100.0, - "value": "machine_width / 2", + "label": "Z Seam Position", + "description": "The position near where to start printing each part in a layer.", + "type": "enum", + "options": + { + "backleft": "Back Left", + "back": "Back", + "backright": "Back Right", + "right": "Right", + "frontright": "Front Right", + "front": "Front", + "frontleft": "Front Left", + "left": "Left" + }, "enabled": "z_seam_type == 'back'", + "default_value": "back", "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_y": - { - "label": "Z Seam Y", - "description": "The Y coordinate of the position near where to start printing each part in a layer.", - "unit": "mm", - "type": "float", - "default_value": 100.0, - "value": "machine_depth * 3", - "enabled": "z_seam_type == 'back'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true + "settable_per_mesh": true, + "children": + { + "z_seam_x": + { + "label": "Z Seam X", + "description": "The X coordinate of the position near where to start printing each part in a layer.", + "unit": "mm", + "type": "float", + "default_value": 100.0, + "value": "0 if (z_seam_position == 'frontleft' or z_seam_position == 'left' or z_seam_position == 'backleft') else machine_width/2 if (z_seam_position == 'front' or z_seam_position == 'back') else machine_width", + "enabled": "z_seam_type == 'back'", + "limit_to_extruder": "wall_0_extruder_nr", + "settable_per_mesh": true + }, + "z_seam_y": + { + "label": "Z Seam Y", + "description": "The Y coordinate of the position near where to start printing each part in a layer.", + "unit": "mm", + "type": "float", + "default_value": 100.0, + "value": "0 if (z_seam_position == 'frontleft' or z_seam_position == 'front' or z_seam_position == 'frontright') else machine_depth/2 if (z_seam_position == 'left' or z_seam_position == 'right') else machine_depth", + "enabled": "z_seam_type == 'back'", + "limit_to_extruder": "wall_0_extruder_nr", + "settable_per_mesh": true + } + } }, "z_seam_corner": {