文件
phonerail/.claude/r2/shell/bambu_flatten.py
T

24 行
1.1 KiB
Python

# 把 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})