Skip to content

Commit 2153458

Browse files
committed
enhancement: Catch more object indexing cases with M486
1 parent baf0016 commit 2153458

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

src/GcodeTools/gcode_parser.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def __init__(self, command: str, allow_command = None, block_command = None, off
4646

4747
OBJECT_START = [KW("^; printing object", None, "^EXCLUDE_OBJECT_START NAME="), KW("^EXCLUDE_OBJECT_START NAME=", "^;WIDTH:", None, -1), KW("^EXCLUDE_OBJECT_START NAME=", "^G1.*E", None, -1), KW("^;MESH:"), KW("^M486 S"), KW("^M624")]
4848
OBJECT_END = [KW("^; stop printing object", None, "^EXCLUDE_OBJECT_END"), KW("^EXCLUDE_OBJECT_END"), KW("^;MESH:NONMESH"), KW("^M486 S-1"), KW("^M625")]
49-
OBJECT_NAME_DEFINE = [KW("^M486 A")]
49+
OBJECT_NAME_DEFINE = [KW("^M486 A"), KW("^; object:{\"name\":\"")]
5050
# FIXME: Edge case scenarios, split travel moves perfectly
5151
# TODO: travel trimming, recalculation, preserve last travel vector at object
5252

@@ -129,6 +129,9 @@ def get_type(line: str):
129129
def update_object_map(id: int, gcode: Gcode, current_object: str, object_map: dict):
130130
_, namedef = MetaParser.get_keyword_arg(id, gcode, MetaParser.OBJECT_NAME_DEFINE, seek_limit=1)
131131
if namedef is not None:
132+
if '"' in namedef: # SuperSlicer naming
133+
namedef = namedef.split('"')[0]
134+
current_object = str(len(object_map.keys()))
132135
object_map[current_object] = namedef
133136
print(f'meta: Putting {namedef} to meta as {current_object}')
134137
print(f'Current object map: {object_map}')

0 commit comments

Comments
 (0)