24 行
1.1 KiB
Python
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})
|