cant get by code to do path pattern . help plz..

cant get by code to do path pattern . help plz..

Anonymous
Not applicable
589 Views
2 Replies
Message 1 of 3

cant get by code to do path pattern . help plz..

Anonymous
Not applicable

#Author- M.Jamal Nasim

#Description-

 

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

 

def run(context):

ui = None

try:

 

# getting root Component of the fusion 360

app = adsk.core.Application.get()

ui = app.userInterface

design = app.activeProduct

rootComp = adsk.fusion.Component.cast(design.rootComponent)

 

 

# adding sketch to xy Plane

sketch = rootComp.sketches.add(rootComp.xYConstructionPlane)

sketchTeeth = rootComp.sketches.add(rootComp.xYConstructionPlane)

# create a point for circle cneter

circleCenter = adsk.core.Point3D.create(0,0,0)

teethCenter = adsk.core.Point3D.create(0,15,0)

# creating circle

circle = sketch.sketchCurves.sketchCircles.addByCenterRadius(circleCenter,15)

teethCircle = sketchTeeth.sketchCurves.sketchCircles.addByCenterRadius(teethCenter,1.56)

# getting profile for extrude

profile1 = sketch.profiles.item(0)

profileTeeth = sketchTeeth.profiles.item(0)

# getting extrude feature

extrude = rootComp.features.extrudeFeatures

extrudeCut = rootComp.features.extrudeFeatures

# creating input for extrude just like the dialog box in fusion user interface

ei = extrude.createInput(profile1,adsk.fusion.FeatureOperations.NewBodyFeatureOperation)

ei2 = extrude.createInput(profileTeeth,adsk.fusion.FeatureOperations.CutFeatureOperation)

ei.setDistanceExtent(False , adsk.core.ValueInput.createByReal(5))

ei2.setDistanceExtent(False, adsk.core.ValueInput.createByReal(5))

# extruding profile

extrude1 = extrude.add(ei)

extrudecut1 = extrude.add(ei2)

 

 

inputEntites = adsk.core.ObjectCollection.create()

inputEntites.add(extrudecut1)

 

 

path = rootComp.features.createPath(circle)

patternQuantity = adsk.core.ValueInput.createByReal(5)

patternDistance = adsk.core.ValueInput.createByReal(5)

pathPatterns = adsk.fusion.Features.pathPatternFeatures

pathPatternInput = pathPatterns.createInput(inputEntites, path, patternQuantity, patternDistance, adsk.fusion.PatternDistanceType.SpacingPatternDistanceType)

 

# Create the path pattern

pathFeature = pathPatterns.add(pathPatternInput)

 

 

 

 

 

 

 

 

except:

if ui:

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

0 Likes
Accepted solutions (1)
590 Views
2 Replies
Replies (2)
Message 2 of 3

marshaltu
Autodesk
Autodesk
Accepted solution

Hello,

 

I changed the line marked as Red and it seemed to work. Please check if the result is what you want.

 

Thanks,

Marshal

 

#Author- M.Jamal Nasim
#Description-
 
import adsk.core, adsk.fusion, adsk.cam, traceback
 
def run(context):
    ui = None
    try:
        # getting root Component of the fusion 360
        app = adsk.core.Application.get()
        ui = app.userInterface
        design = app.activeProduct
        rootComp = adsk.fusion.Component.cast(design.rootComponent)
 
 
        # adding sketch to xy Plane
        sketch = rootComp.sketches.add(rootComp.xYConstructionPlane)
        sketchTeeth = rootComp.sketches.add(rootComp.xYConstructionPlane)
        # create a point for circle cneter
        circleCenter = adsk.core.Point3D.create(0,0,0)
        teethCenter = adsk.core.Point3D.create(0,15,0)
        # creating circle
        circle = sketch.sketchCurves.sketchCircles.addByCenterRadius(circleCenter,15)
        teethCircle = sketchTeeth.sketchCurves.sketchCircles.addByCenterRadius(teethCenter,1.56)
        # getting profile for extrude
        profile1 = sketch.profiles.item(0)
        profileTeeth = sketchTeeth.profiles.item(0)
        # getting extrude feature
        extrude = rootComp.features.extrudeFeatures
        extrudeCut = rootComp.features.extrudeFeatures
        # creating input for extrude just like the dialog box in fusion user interface
        ei = extrude.createInput(profile1,adsk.fusion.FeatureOperations.NewBodyFeatureOperation)
        ei2 = extrude.createInput(profileTeeth,adsk.fusion.FeatureOperations.CutFeatureOperation)
        ei.setDistanceExtent(False , adsk.core.ValueInput.createByReal(5))
        ei2.setDistanceExtent(False, adsk.core.ValueInput.createByReal(5))
        # extruding profile
        extrude1 = extrude.add(ei)
        extrudecut1 = extrude.add(ei2)
 
 
        inputEntites = adsk.core.ObjectCollection.create()
        inputEntites.add(extrudecut1)
 
 
        path = rootComp.features.createPath(circle)
        patternQuantity = adsk.core.ValueInput.createByReal(5)
        patternDistance = adsk.core.ValueInput.createByReal(5)
        pathPatterns = rootComp.features.pathPatternFeatures
        pathPatternInput = pathPatterns.createInput(inputEntites, path, patternQuantity, patternDistance, adsk.fusion.PatternDistanceType.SpacingPatternDistanceType)
 
        # Create the path pattern
        pathFeature = pathPatterns.add(pathPatternInput)
 
 
    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))


Marshal Tu
Fusion Developer
>
Message 3 of 3

Anonymous
Not applicable

thankyou sooo much ... i was stuck there for like 2 days...

 

0 Likes