app
Fusion - the Fusion 360 Bridge
Public Made by Adomby adom
Drive Autodesk Fusion 360 from the cloud via Adom Bridge: component libraries, IPC package generation, board layout, exports (STEP/Gerbers/BOM/CPL), fast APS cloud search, and parametric modeling.
master
John Lauer
Add bounded obstacle planning and live calculations using the Adom activity palette
e936bc3
1mo ago
"""Attach the container SSE page to the bridge's existing activity palette. Run server first."""
import argparse,json
from call import call
from live_panel import URL
p=argparse.ArgumentParser();p.add_argument('--document',required=True);args=p.parse_args()
def invoke(v,a):
r=call(v,a)
if not r.get('success'):raise RuntimeError(json.dumps(r))
return r
invoke('fusion_routing_state',{'expectDocument':args.document})
invoke('fusion_activity_banner',{'action':'show','title':'Astra routing: connecting live display','detail':'Using the existing Adom palette with container SSE.','percent':0,'tone':'working'})
script='''import urllib.request
url=URL_VALUE
body=urllib.request.urlopen(url,timeout=5).read().decode('utf-8')
assert 'routeChecks' in body
p=app.userInterface.palettes.itemById('AdomActivityPalette')
assert p and p.isVisible
p.htmlFileURL=url
result={'containerPageVerified':True,'paletteId':p.id,'visible':p.isVisible}
'''.replace('URL_VALUE',repr(URL))
print(json.dumps(invoke('fusion_run_modeling_script',{'expectDocument':args.document,'script':script}),indent=2))
# The existing close handler stays attached. No new palette or Fusion restart.
print(json.dumps([w for w in invoke('desktop_list_windows',{})['windows'] if w['image']=='Fusion360.exe' and w['title'].upper()=='ADOM'],indent=2))