1

几年前,我用 Python 编写了脚本来自动化我在 SolidWorks_2012 中所做的一些繁琐的过程。我在 Win7 32 位上使用 python 27 32 位和 SolidWorks_2012 32 位运行该脚本。

现在,我遇到了完全相同的问题,我尝试使用旧脚本,但在OpenDoc6(以及其他函数,其中值通过 ref 传递)它引发异常:

"Objects of type 'PyOleMissing' can not be converted to a COM VARIANT"

这是一些我无法使用的示例:

import win32com.client as win32
import pythoncom

sw = win32.Dispatch('SldWorks.Application')
path_to_file = "some_path"
sw_asm = sw.OpenDoc6(path_to_file, 2, 1, "", pythoncom.Missing, pythoncom.Missing)

以下是 VBA 文档中此函数的一些规范:

Function OpenDoc6( _
   ByVal FileName As System.String, _
   ByVal Type As System.Integer, _
   ByVal Options As System.Integer, _
   ByVal Configuration As System.String, _
   ByRef Errors As System.Integer, _
   ByRef Warnings As System.Integer _
) As ModelDoc2

如您所见,两个最新的通过引用传递。

这里也是同样的问题,没有任何解决方案。以防万一这可能很重要,现在我正在运行 win 8 64、python 27 32/64 和 SolidWorks 2014 64。

先感谢您!

4

1 回答 1

0

只需插入空变量。在 VBA 中有相同的错误,您必须传递声明为 LONG 的变量,否则它将不起作用。

于 2015-02-19T15:02:35.693 回答