master
John Lauer Preserve validated CRR thermal routing recipe and narrated demonstration 92d2870 1mo ago
"""Session transport: explicitly route this demonstration to ConfRoomROG."""
import os,json,subprocess
from pathlib import Path
P=Path(__file__).resolve().parent
TARGET=os.environ['FUSION_DEMO_TARGET']
RELAY=os.environ['ADOM_API']
def call(verb,args):
 cp=subprocess.run(['adom-bridge','--target',TARGET,'--ai-thread','Fusion trace routing',verb,json.dumps(args)],env={**os.environ,'ADOM_API':RELAY},capture_output=True,text=True,timeout=190)
 r=json.loads(cp.stdout)
 if isinstance(r.get('output'),str):
  try:
   x=json.loads(r['output']);r.update({k:v for k,v in x.items() if k not in r})
  except ValueError:pass
 if isinstance(r.get('data'),dict):
  for k,v in r['data'].items():r.setdefault(k,v)
 return {k:v for k,v in r.items() if k!='output'}
def execute(doc,body):
 helper=(P.parents[3]/'rust/bridge/src/routing_script.py').read_text()
 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')
if __name__=='__main__':print(json.dumps(call('fusion_get_app_state',{}),indent=2))