master
John Lauer Preserve BQ independent routing, narration and native copper-retention evidence a4b7711 1mo ago
import sys,json
from pathlib import Path
P=Path(__file__).resolve().parent;REPO=P.parents[3];sys.path.insert(0,str(P.parents[1]));from call import call
HELPER=(REPO/'rust/bridge/src/routing_script.py').read_text()
def execute(doc,body):
 # Installed older modeling bridge activates a Design doc before scripts. Activate
 # the exact existing BoardDocument inside the script, then verify Electron too.
 prefix='import adsk.core, adsk.fusion\nfrom pathlib import Path\nimport json\ntarget=next(d for d in app.documents if d.name=='+repr(doc)+')\ntarget.activate()\nadsk.doEvents()\nexec('+repr(HELPER)+')\neditor_identity(app,'+repr(doc)+')\n'
 r=call('fusion_run_modeling_script',{'script':prefix+body,'expectDocument':doc})
 if not r.get('success'):raise RuntimeError(str(r))
 return r.get('result',r.get('data',{}).get('result'))
if __name__=='__main__':
 doc='bq25792-ablation-probe-01'
 body="root,board,identity=snapshot(app,{'expectDocument':target.name})\nresult=state(root,board,identity)"
 print(execute(doc,"result={'active':app.activeDocument.name,'product':app.activeProduct.productType}"))