CAM Parameter Modification API Sample
Description
Demonstrates changing parameters of existing toolpaths.
Code Samples
import adsk.core, adsk.cam, traceback
def run(context):
ui = None
try:
app = adsk.core.Application.get()
doc = app.activeDocument
products = doc.products
# Get the CAM product
cam = adsk.cam.CAM.cast(products.itemByProductType("CAMProductType"))
# List of all setups
setups = cam.setups
for setup in setups:
# Change the program name of each setup to 1234
programNameParam = setup.parameters.itemByName('job_programName')
programNameParam.expression = "1234"
for operation in setup.operations:
# Change tolerance in all operations
toleranceParam = operation.parameters.itemByName('tolerance')
toleranceParam.expression = "0.1mm"
# Generate all toolpaths, skipping any that are already valid
cam.generateAllToolpaths(True)
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
#include <Core/CoreAll.h>
#include <CAM/CAMAll.h>
using namespace adsk::core;
using namespace adsk::cam;
extern "C" XI_EXPORT bool run(const char* context)
{
Ptr<Document> doc = Application::get()->activeDocument();
Ptr<CAM> cam = doc->products()->itemByProductType("CAMProductType");
// List of CAM setups
Ptr<Setups> setups = cam->setups();
for each (Ptr<Setup> setup in setups)
{
// Change the program name for each setup
setup->parameters()->itemByName("job_programName")->expression("12345");
for each (Ptr<Operation> operation in setup->allOperations())
{
// Change the tolerance of each operation
operation->parameters()->itemByName("tolerance")->expression("0.1mm");
}
}
// Generate all toolpaths
cam->generateAllToolpaths(true);
return true;
}