首先,感谢阅读本文并为我提供一些帮助/反馈的人,因为我已经为此苦苦挣扎了几天。我是stackoverflow的新手,并试图在问题中尽可能详细。
我正在尝试在 3ds Max 上设置 OLE 服务器。我已按照[此处](http://docs.autodesk.com/3DSMAX/15/ENU/MAXScript-Help/index.html?url=files/GUID-AE4CAED2-1EF9-40EF-9761-83F535FE953A. htm,topicNumber=d30e714562 ) 包括编辑注册表和公开功能。
但是,当我尝试从另一个程序调用该函数(我尝试使用 MATLAB 和 python 脚本)时,我收到一个错误,这导致我怀疑 registerOLEInterface 没有注册该函数。在 python 中,我使用了与第一个非常相似的脚本 [here] ( http://tech-artists.org/forum/showthread.php?2723-Python-to-MaxScript-to-Python ) 并得到一个类似的错误这个:
`Traceback (most recent call last):
File "start.py", line 8, in <module>
maxCOM ._FlagAsMethod("maxCommand")
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 437, in _FlagAsMethod
details = build.MapEntry(self.__AttrToID__(name), (name,))
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 442, in __AttrToID__
return self._oleobj_.GetIDsOfNames(0,attr) pywintypes.com_error: (-2147352570, 'Unknown name.', None, None)`
在 MATLAB 中,h = actxserver('Max.Application.15') 工作正常,但是当我尝试使用 h.maxCommand 访问该函数时,我收到此错误:
`No appropriate method, property, or field maxCommand for class COM.Max_Application_15.`
对于我可能做错的事情,我将不胜感激。我正在使用 Max 2013 并尝试使用 32 位和 64 位版本。
谢谢,