Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.

Combine Cut via API

Anonymous

Combine Cut via API

Anonymous
Not applicable

Hey,

 

I am new to API programming and I have a question: How to set up Combine feature with two bodies, so that the outcome is "cut" instead of "join"? I just cant find where to read about Variables to pass via "createInput" for Combine feature. I think I need to add

 

"adsk.fusion.FeatureOperations.CutFeatureOperation" somewhere, however if I try to push it via createInput, I get an error.

 

 

========== My Python Code =============

TargetBody = root.bRepBodies.itemByName('EraserTest')

 

ToolBodies = adsk.core.ObjectCollection.create()

ToolBodies.add(root.bRepBodies.itemByName('MtRTest'))

 

CombineCutInput = root.features.combineFeatures.createInput(TargetBody, ToolBodies )

 

CombineCutFeats = features.combineFeatures

CombineCutInput = CombineCutFeats.createInput(TargetBody, ToolBodies)

CombineCutFeats.add(CombineCutInput)

=====================================

It combines the two bodies, but how to cut?

 

Thanks in advance!

0 Likes
Reply
Accepted solutions (1)
1,563 Views
2 Replies
Replies (2)

liujac
Alumni
Alumni
Accepted solution

Hi,

 

It's able to set the operation property of CombineFeatureInput object to CutFeatureOperation. The script below demo how to create a combine feature with "Cut"operation.

 

import adsk.core, adsk.fusion, adsk.cam, traceback

def run(context):
    ui = None
    try:
        app = adsk.core.Application.get()
        ui  = app.userInterface
        
        root = app.activeProduct.rootComponent
        features = root.features
        
        TargetBody = root.bRepBodies.itemByName('EraserTest')
 
        ToolBodies = adsk.core.ObjectCollection.create()
        ToolBodies.add(root.bRepBodies.itemByName('MtRTest'))
         
        CombineCutInput = root.features.combineFeatures.createInput(TargetBody, ToolBodies )
         
        CombineCutFeats = features.combineFeatures
        CombineCutInput = CombineCutFeats.createInput(TargetBody, ToolBodies)
        CombineCutInput.operation = adsk.fusion.FeatureOperations.CutFeatureOperation
        CombineCutFeats.add(CombineCutInput)
        
        ui.messageBox('Hello script')

    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))

 

Regards,

Jack

1 Like

Anonymous
Not applicable

Works like a charm, thanks!

0 Likes