Announcements

Between mid-October and November, the content on AREA will be relocated to the Autodesk Community M&E Hub and the Autodesk Community Gallery. Learn more HERE.

pymxs pickle

pymxs pickle

pradeep_cher
Explorer Explorer
497 Views
4 Replies
Message 1 of 5

pymxs pickle

pradeep_cher
Explorer
Explorer

cannot pickle pymxs.MXSWrapperBase

 

Getting error while deepcopy pymxs object

0 Likes
Accepted solutions (1)
498 Views
4 Replies
Replies (4)
Message 2 of 5

denisT.MaxDoctor
Advisor
Advisor

which object do you want to copy and how? please give a code example... otherwise the question is too abstract and does not make general sense.

0 Likes
Message 3 of 5

pradeep_cher
Explorer
Explorer

import pymxs
mxs = pymxs.runtime
cameraName = "VRayPhysical_configurator_animated_lhd"
node = mxs.getnodebyname( cameraName )
dict1 = {}
import copy
dict1["cam"] = copy.deepcopy(node)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\3dsmax2023x64\3ds Max 2023\Python\lib\copy.py", line 161, in deepcopy
rv = reductor(4)
TypeError: cannot pickle 'pymxs.MXSWrapperBase' object

 

This will work for Max2019 and throwing error with Max2023

0 Likes
Message 4 of 5

denisT.MaxDoctor
Advisor
Advisor
Accepted solution

@pradeep_cher wrote:


import copy
dict1["cam"] = copy.deepcopy(node)


you can't use Python copy method to copy MAX objects or values. You must use MXS copy or deepcopy for this:

mxs = pymxs.runtime
mxs.copy (node)
## or mxs.deepcopy for array values, for example

 

Message 5 of 5

pradeep_cher
Explorer
Explorer

Than you @denisT.MaxDoctor , this worked

0 Likes