Python - AddConstraint


#1

I can get this to work:

Application.SIApplyConstraint(“Path”, newObj, oCrv)

But, this OM version won’t work. I read the SDK, but don’t know how to implement the fix.

newObj.Kinematics.AddConstraint(“Path”, oCrv)

From the SDK:
ERROR : (Python) dict can not be converted to a COM VARIANT#ERROR : Traceback (most recent call last): # File “<Script Block >”, line 2, in ? # <line triggering error> # File “C:\Python23\lib\site-packages\win32comext\axscript\client\pyscript.py”, line 150, in getattr # return getattr(self.scriptItem.dispatchContainer,attr) # File “C:\Python23\lib\site-packages\win32com\client\dynamic.py”, line 150 in getattr # raise AttributeError, “%s.%s” % (self.username, attr) #AttributeError: line 150 Possible Cause

You may see an error like one of these accompanying a Traceback for a script block that tries to use a native Python dictionary for return value from a custom command.

Suggested Solution

You cannot use the native Python dictionary type as the return value for a custom command, but you can use an ActiveX Scripting Dictionary instead (see Using Python Dictionaries as Return Values).


#2

I think I’m figuring this out. Python doesn’t think my object is a XSICollection or X3DObject or X3DObjectCollection. So, that’s the problem. I duplicated an item from a collection, but didn’t add the duplicate back into a collection.

Yeah, that’s it.

My newObj is a duplicate. Duplicate returns a collection. doh.

so,

newObj(0)


#3

Fixed it yourself and actually could be arsed posting how you fixed it…
That’s two cookie points right there :slight_smile:


#4

I do like cookies. :slight_smile:


#5

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.