Rendering with the API

Not applicable
01-25-2018
03:07 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I'm a beginner in Fusion360 and will like to know how to render object with the python API. In the below script I'm rotation the body of the root component and rendering all possible positions. This is part of the requirement the other part will be to Zoom(in/out) the objects. I'm currently exporting the object as an .STL file but will like to render the images as a JPEG. Will this be possible using the python API? Below is my code. Any help will be appreciated.
import adsk.core, adsk.fusion, adsk.cam, traceback import random def multipleRotations(iterAll=True, size=None): ui = None def get_cube_root(num): return num ** (1. / 3) try: app = adsk.core.Application.get() ui = app.userInterface product = app.activeProduct design = adsk.fusion.Design.cast(product) rootComp = design.rootComponent folder = 'C:/Users/595241/Desktop/CAD/Airplanes/Airplanes_Renderings/' exportMgr = adsk.fusion.ExportManager.cast(design.exportManager) body = rootComp.bRepBodies.item(0)#adsk.fusion.BRepBody.cast(ui.selectEntity('Select a body', 'Bodies').entity) if body: if iterAll: X = list(range(-360, 361)) Y = list(range(-360, 361)) Z = list(range(-360, 361)) else: if size != None: X = random.sample(range(-360, 360), int(get_cube_root(size))) Y = random.sample(range(-360, 360), int(get_cube_root(size))) Z = random.sample(range(-360, 360), int(get_cube_root(size))) for x in X: for y in Y: for z in Z: trans = adsk.core.Matrix3D.create() rotX = adsk.core.Matrix3D.create() rotX.setToRotation(x, adsk.core.Vector3D.create(1,0,0), adsk.core.Point3D.create(0,0,0)) trans.transformBy(rotX) rotY = adsk.core.Matrix3D.create() rotY.setToRotation(y, adsk.core.Vector3D.create(0,1,0), adsk.core.Point3D.create(0,0,0)) trans.transformBy(rotY) rotZ = adsk.core.Matrix3D.create() rotZ.setToRotation(z, adsk.core.Vector3D.create(0,0,1), adsk.core.Point3D.create(0,0,0)) trans.transformBy(rotZ) ents = adsk.core.ObjectCollection.create() ents.add(body) moveInput = rootComp.features.moveFeatures.createInput(ents, trans) rootComp.features.moveFeatures.add(moveInput) filename = folder + 'Boeing737_' + 'x_' + str(x)+ '_' + 'y_' + str(y) + '_' + 'z_' + str(z) + '.stl' stlOptions = exportMgr.createSTLExportOptions(rootComp) stlOptions.meshRefinement = adsk.fusion.MeshRefinementSettings.MeshRefinementMedium stlOptions.filename = filename exportMgr.execute(stlOptions) except: if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc())) def run(context): ui = None try: multipleRotations(False, 11) except: if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))