Change 'Model Parameter' problem

Change 'Model Parameter' problem

brad.bylls
Collaborator Collaborator
436 Views
4 Replies
Message 1 of 5

Change 'Model Parameter' problem

brad.bylls
Collaborator
Collaborator

I am changing the values in the model parameters to be inches not metric.

The code below works for "setDistanceExtent" but not for "setSymmetricExtent"

I have been playing with the code but can't seem to figure it out.

 

    # Change to inches in Parameters
    extent_2 = adsk.fusion.DistanceExtentDefinition.cast(dowelODExt.extentOne)
    distanceMP_2 = adsk.fusion.ModelParameter.cast(extent_2.distance)   <<<<<<<< Line 191
    distanceMP_2.expression = "{:.{}f}".format(((numDowelLength * -1) / sizeUnits), 4) + 'in'
    dowelODExt.name = 'Dowel Length'
 
This is the error message I get:
Error.png
Brad Bylls
0 Likes
Accepted solutions (1)
437 Views
4 Replies
Replies (4)
Message 2 of 5

kandennti
Mentor
Mentor

Hi @brad.bylls .

 

The extentOne property for symmetry is now a SymmetricExtentDefinition object instead of a DistanceExtentDefinition object.

1.png

 

The easiest way to deal with this would be to stop the casting.

        # extent_2 = adsk.fusion.DistanceExtentDefinition.cast(dowelODExt.extentOne)
        extent_2  = dowelODExt.extentOne
        distanceMP_2 = adsk.fusion.ModelParameter.cast(extent_2.distance)   #<<<<<<<< Line 191
        distanceMP_2.expression = "{:.{}f}".format(((numDowelLength * -1) / sizeUnits), 4) + 'in'
        dowelODExt.name = 'Dowel Length'

 

 

0 Likes
Message 3 of 5

brad.bylls
Collaborator
Collaborator
What is casting?
And then what?
I took the original code from a sample script.

Brad Bylls
0 Likes
Message 4 of 5

kandennti
Mentor
Mentor
Accepted solution

@brad.bylls .

 

There may be a better site, see here.

https://www.programiz.com/python-programming/type-conversion-and-casting 

 

In this case, type conversion is not possible, so None will be assigned as it is.

extent_2 = adsk.fusion.DistanceExtentDefinition.cast(dowelODExt.extentOne)

 

You can avoid the error by using this method.

extent_2  = dowelODExt.extentOne
0 Likes
Message 5 of 5

brad.bylls
Collaborator
Collaborator

Thanks Kandennti.

It worked great once I shut down F360 and restarted it.

Brad Bylls
0 Likes