Kinyomtattam egyet, aztán rájöttem, hogy ez a fültisztító pálcikáknak is jó lenne… meg más méretben még egy csomó mindennek, úgyhogy a parametrikus Fusion 360 designnak hála, gyorsan csináltam is két másikat: Innentől nincs messze a megalomán állat fázis, amikor csillió méretű dobozt akarsz azonnal. Persze minden codervérű lélekben azonnal behúz az utálkozás trigger, amint egynél többször kell neki a “beállítom a magasság paramétert + elindítom az STL exportálást” workflowt végrehajtania. Szerencsére a Fusion 360-hoz van cuki API, onnan meg már csak egyetlen lépés, hogy egy script exportálja helyettünk a csitrillió méretű dobozt STL-be. A design hierarchia egyszerű, mint egy faék: egy komponensben lakik két body, az egyik a doboz, a másik a kupak: Erre simán lehet lőni mondjuk Pythonnal:
import adsk.core, adsk.fusion, adsk.cam, traceback def dumpSTL(design, body, filename): exportMgr = design.exportManager stlExportOptions = exportMgr.createSTLExportOptions(body, filename) stlExportOptions.meshRefinement = adsk.fusion.MeshRefinementSettings.MeshRefinementHigh stlExportOptions.sendToPrintUtility = False exportMgr.execute(stlExportOptions) def run(context): ui = None try: app = adsk.core.Application.get() ui = app.userInterface design = adsk.fusion.Design.cast(app.activeProduct) folder = '/Users/fns/Desktop/' parentCompName = 'stick box' # get parameters h_box = design.userParameters.itemByName('h_box') w_box = design.userParameters.itemByName('w_box') # locate our component allComp = design.allComponents for comp in allComp: if comp.name == parentCompName: bodies = comp.bRepBodies for body in bodies: if body.name == "box": body_box = body else: body_cap = body # dump cap filename = folder + body_cap.parentComponent.name + " - " + body_cap.name + " " + w_box.expression + '.stl' dumpSTL(design, body_cap, filename) # dump all boxes for h in range(10, 100, 10): h_box.expression = str(h) adsk.doEvents() filename = folder + body_box.parentComponent.name + " - " + body_box.name + " " + w_box.expression + ' - ' + h_box.expression + '.stl' dumpSTL(design, body_box, filename) ui.messageBox('Finished.', 'exportBoxes') except: if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc()), 'exportBoxes')