# 把 Bambu 系统预设沿 inherits 链展开成一份完整 JSON(CLI 不会自己展开)。 import json, os, sys SYS = os.path.join(os.environ['APPDATA'], 'BambuStudio', 'system', 'BBL') def load(kind, name): p = os.path.join(SYS, kind, name + '.json') d = json.load(open(p, encoding='utf-8')) parent = d.get('inherits') base = load(kind, parent) if parent else {} base.update(d) base.pop('inherits', None) return base out = sys.argv[1] spec = [('machine', 'Bambu Lab A1 0.4 nozzle', {}), ('process', '0.20mm Standard @BBL A1', {'wall_loops': '3'}), ('filament', 'Generic PETG @BBL A1', {})] for kind, name, over in spec: d = load(kind, name) d.update(over) d['from'] = 'system' json.dump(d, open(os.path.join(out, kind + '.json'), 'w', encoding='utf-8'), ensure_ascii=False, indent=1) keys = ('filament_type', 'nozzle_temperature', 'textured_plate_temp', 'hot_plate_temp', 'wall_loops', 'printer_model', 'layer_height', 'sparse_infill_density') print(kind, {k: d[k] for k in keys if k in d})