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.
← Commit history
run_drc: say that Fusion stores the DRC result in the board
3 files changed
+6−4
contracts/describe.json+1−1@@ -3183,7 +3183,7 @@ "warnings": "int" }, "statusVerb": "fusion_routing_state",- "summary": "Run Fusion's own design rule check on the live board in the background and read every violation back: rule text, error or warning, layer, position in mm, approved or not, plus counts by rule. No revision guard: it changes nothing (fusion_routing_drc is the same check inside the routing guards).",+ "summary": "Run Fusion's own design rule check on the live board in the background and read every violation back: rule text, error or warning, layer, position in mm, approved or not, plus counts by rule. No revision guard: it changes no copper, parts or outline, but Fusion stores the DRC result in the board, so the document then reads as modified (close it without saving if you only looked). fusion_routing_drc is the same check inside the routing guards.", "timeoutSeconds": 120 }, {
describe.py+1−1@@ -76,7 +76,7 @@ _T = [ ('fusion_net_classes', "The board's net classes with their width, drill, class-to-class clearances and member nets.", {"expectDocument":"required exact active board name","boardId":"optional"}, {"count":"int","classes":"[{name,number,widthMm,drillMm,clearances:[{toClass,mm}],nets}]"},60,"fusion_routing_state",False,{"expectDocument":"fusion-routing"}),- ('fusion_run_drc', "Run Fusion's own design rule check on the live board in the background and read every violation back: rule text, error or warning, layer, position in mm, approved or not, plus counts by rule. No revision guard: it changes nothing (fusion_routing_drc is the same check inside the routing guards).",+ ('fusion_run_drc', "Run Fusion's own design rule check on the live board in the background and read every violation back: rule text, error or warning, layer, position in mm, approved or not, plus counts by rule. No revision guard: it changes no copper, parts or outline, but Fusion stores the DRC result in the board, so the document then reads as modified (close it without saving if you only looked). fusion_routing_drc is the same check inside the routing guards.", {"expectDocument":"required exact active board name","boardId":"optional","limit":"int, default 200 violations"}, {"violationCount":"int","violations":"[{rule,code,severity,layer,at:[x,y],approved}]","errors":"int","warnings":"int","airwires":"int","summary":"{rule: n}"},120,"fusion_routing_state",False,{"expectDocument":"fusion-routing"}), ('fusion_repour', "Refill every copper pour on the live board (Fusion's ratsnest pass, with hidden fills shown again) and read the poured copper back: filled area per layer and per net, pours that poured nothing, and each pour's fill.",
rust/bridge/src/routing_script.py+4−2@@ -838,7 +838,9 @@ def handle(app,args,action): 'csv':text if len(text)<200000 else None, '_hint':'Columns: %s, then MPN, Manufacturer, LCSC, Mouser, DigiKey from each part\'s attributes. %d of %d parts carry an MPN and %d an LCSC number; data.missingMpn / missingLcsc name the rest (set them in the library or the part\'s attributes).'%('Comment, Designator, Footprint, Quantity, Library' if info['grouped'] else 'Designator, Comment, Footprint, Library, Side',info['withMpn'],n,info['withLcsc'])} if action=='run_drc':- # the native check on the live board, no revision guard (it changes nothing)+ # the native check on the live board, no revision guard: it changes no copper, parts or+ # outline (the revision), though Fusion keeps the DRC result in the board, which marks the+ # document modified app.executeTextCommand('Electron.run RATSNEST;') report=native_drc(app); _,b2,m2=snapshot(app,args) limit=int(args.get('limit',200))@@ -847,7 +849,7 @@ def handle(app,args,action): return {'success':report['checked'],'mutated':False,**m2,'violationCount':len(v),'violations':v[:limit],'truncated':len(v)>limit, 'errors':report['errorCount'],'warnings':report['warningCount'],'airwires':report['airwireCount'],'summary':report['summary'],'notes':report['notes'], 'windowEtiquette':'background','source':report['source'],- '_hint':'Each violation carries its rule text, severity, layer and position in mm. fusion_zoom_to {rect} frames one; fusion_routing_drc is the same check inside the routing guards.'}+ '_hint':'Each violation carries its rule text, severity, layer and position in mm. fusion_zoom_to {rect} frames one; fusion_routing_drc is the same check inside the routing guards. Fusion keeps the DRC result in the board, so the document now reads as modified: close it without saving if you only checked it.'} if action=='repour': app.executeTextCommand('Commands.Start Electron::PolyShowFillAll') app.executeTextCommand('Electron.run RATSNEST;')