Message 1 of 5
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi! In my daily workflow i have to create a lot of setups, so I'd like to make this a little bit faster by creating a script. But i'm struggeling getting my selected Body as setup.models and my Component Fixtures as setup.fixtures. Everything else is working as it is supposed to be.
I hope anybody can help me.
import adsk.core, adsk.fusion, adsk.cam, traceback
import os
from enum import Enum
def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
product = app.activeProduct
design = adsk.fusion.Design.cast(product)
# use existing document, load 2D Strategies model from the Fusion CAM Samples folder
doc = app.activeDocument
#Start AutoSetup
ui.messageBox('Start AutoSetup')
# Select Part
# Select Part
ui.messageBox('Select Part')
selectedEntity = ui.selectEntity('Select the part to machine', 'Bodies')
# Überprüfen, ob ein Körper ausgewählt wurde
if selectedEntity is None:
ui.messageBox('Kein Körper ausgewählt. Das Skript wird beendet.')
return
ui.messageBox('Part Selected')
#WCS
WCS = design.userParameters.itemByName('wcs').expression
ui.messageBox('WCS {} is selected'.format(WCS))
# switch to manufacturing space
camWS = ui.workspaces.itemById('CAMEnvironment')
camWS.activate()
# get the CAM product
products = doc.products
#################### create setup ####################
#################### create setup ####################
cam = adsk.cam.CAM.cast(products.itemByProductType("CAMProductType"))
setups = cam.setups
setupInput = setups.createInput(adsk.cam.OperationTypes.MillingOperation)
# This part is not working !
models = adsk.core.ObjectCollection.create()
models.add(selectedEntity[0])
setupInput.models = models
# create the setup
setup = setups.add(setupInput)
docname = app.activeDocument.name
setup.name = docname
setup.fixtureEnabled = True
programNameParam = setup.parameters.itemByName('job_programName')
programNameParam.expression = "'{}'".format(docname)
programWorkoffsetParam = setup.parameters.itemByName('job_workOffset')
programWorkoffsetParam.expression = WCS
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
Solved! Go to Solution.