こちらの質問は、表題の意味だと思ってます・・・違いますかね?
https://forums.autodesk.com/t5/fusion-api-and-scripts-forum/auto-generate-setup-and-nc-output/m-p/13889768/highlight/true#M22349
かなりCAM関係のAPIはやってないので正直忘れていますが、名指しで書かれたら
答えるしかないですよね? そこに山があるから登っちゃうのと同じ感覚です。
そのままなのですが、Setupを作成しテンプレート挿入し計算を実行します。
条件はルートコンポーネントにボディは1個以上存在して、予めCAMテンプレートが
エクスポートしてある事です。
# Fusion360API Python script import traceback import adsk.core as core import adsk.fusion as fusion import adsk.cam as cam import sys from pathlib import Path def run(context): ui: core.UserInterface = None try: # Please modify the template path. templatePath: str = r"C:\temp\face.f3dhsm-template" if not Path(templatePath).exists(): return app: core.Application = core.Application.get() ui = app.userInterface camObj: cam.CAM = get_cam_product() # bodies rootOcc: fusion.Occurrence = camObj.designRootOccurrence bodies = get_show_bodies(rootOcc.component) if len(bodies) < 1: return # setup setup: cam.Setup = create_setup(camObj, bodies[0]) # template template: cam.CAMTemplate = cam.CAMTemplate.createFromFile(templatePath) setup.createFromCAMTemplate(template) # calculate camObj.generateAllToolpaths(True) except: if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc())) def get_show_bodies( root: fusion.Component ) -> list[fusion.BRepBody]: bodies = root.findBRepUsingPoint( core.Point3D.create(0,0,0), fusion.BRepEntityTypes.BRepBodyEntityType, sys.float_info.max, True, ) return list(bodies) def create_setup( camObj: cam.CAM, targetBody: fusion.BRepBody, ) -> cam.Setup: setups: cam.Setups = camObj.setups setupIpt: cam.SetupInput = setups.createInput( cam.OperationTypes.MillingOperation ) setupIpt.models = [targetBody] setup: cam.Setup = setups.add(setupIpt) setup.name = targetBody.name set_cam_parameter( setup, 'job_stockMode', 'default', ) set_cam_parameter( setup, 'job_stockOffsetMode', 'keep', ) return setup def set_cam_parameter( camEntity, name: str, value: str, ) -> bool: try: prm: cam.CAMParameter = camEntity.parameters.itemByName( name ) if not prm: return False prm.value.value = value return True except: return False def get_cam_product() -> cam.CAM: app: core.Application = core.Application.get() activete_cam_env() return app.activeProduct def activete_cam_env() -> None: app: core.Application = core.Application.get() ui: core.UserInterface = app.userInterface camWS: core.Workspace = ui.workspaces.itemById('CAMEnvironment') camWS.activate()
自分でブログやフォーラムに書き残したものを描き集めた結果がこうなりました。