如何利用已有PyFemap包装器为新Simcenter Femap实例实现早期绑定?
如何为Simcenter Femap的新COM实例强制绑定早期包装器(PyFemap/comtypes)
我自行研究该问题花费了不少时间。目前在使用Simcenter Femap这款FEA软件,获取基础实例的数据后,需要创建N个新实例来开展asyncio相关操作,但卡在了无法为新实例强制早期绑定这一步,导致asyncio工作无法推进。
已实现的操作
- 按照Femap帮助文档的建议,创建了名为PyFemap的makepy包装器并完成导入
- 成功连接至运行中的实例,代码如下,且Femap对象的所有方法均能正常工作:
femap_object = pythoncom.connect('femap.model') feAppBaseInstance = PyFemap.model(femap_object)
- 可以使用
DispatchEx('femap.model')创建新实例,仅能调用无需数据转换的方法
问题与需求
为了让新实例的其余方法正常工作,我需要通过已有的PyFemap包装器为这些新实例强制早期绑定。参考《Python Programming on Win32》的建议,尝试用gencache.EnsureModule创建包装器并关联至已创建的实例,但通过类型库的CLSID操作时出现“未注册”的错误。请问是否真的无法通过已有的包装器实现该操作?
另外,我也尝试过用comtypes完成上述操作,部分环节表现更好,但最终结果相同。想请教如何用comtypes实现为新实例绑定早期包装器的需求。抱歉可能遗漏了一些显而易见的点。
内容的提问来源于stack exchange,提问作者user19796892
相关产品推荐
相关产品推荐

