【发布时间】:2017-06-05 18:44:47
【问题描述】:
我正在尝试将脚本从 VBA 转换为我们的一位工程师编写的 Python。它会更改 Solidworks 工程图中的一些值,然后导出一些 dwg 文件。这是一个更大的项目的一部分,我们将在其中生成许多文件。除了能够导出到 DWG 文件之外,一切正常。
当 ExportToDWG2 函数在 VBA 中运行时,它会很好地生成文件。
Dim varAlignment As Variant
Dim dataAlignment(11) As Double
Dim varViews As Variant
Dim dataViews(0) As String
dataAlignment(0) = 0#
dataAlignment(1) = 0#
dataAlignment(2) = 0#
dataAlignment(3) = 1#
dataAlignment(4) = 0#
dataAlignment(5) = 0#
dataAlignment(6) = 0#
dataAlignment(7) = 0#
dataAlignment(8) = 0#
dataAlignment(9) = 0#
dataAlignment(10) = 0#
dataAlignment(11) = 1#
varAlignment = dataAlignment
dataViews(0) = "*Top"
varViews = dataViews
sModelName = swModel.GetPathName
sPathName = "c:\projects\1234.dxf"
swModel.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportAnnotationViews, True, varAlignment, False, False, 0, varViews
当 ExportToDWG2 函数在 Python 中运行时,它返回 False,但不会导致参数类型错误。
# Save the DFX
da = [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]
data_align = win32.VARIANT(pythoncom.VT_VARIANT, da)
varViews = win32.VARIANT(pythoncom.VT_VARIANT, ["*Top"])
sPathName = "c:\projects\1234.dxf"
swExportToDWG_ExportAnnotationViews = 3
stat = swModel.ExportToDWG2(
sPathName, swModel.GetPathName,
swExportToDWG_ExportAnnotationViews, True,
data_align, False, False, 0, varViews
)
print(sPathName, stat)
有什么想法可以让 ExportToDWG2 在 Python 中像在 VBA 中一样工作,或者有什么想法可以调试可能发生的事情?
【问题讨论】:
-
名称
GetPathName表明它可能是一个方法(可调用)而不是一个普通的属性。似乎在 VBA 中,不带参数的方法在调用时不需要后跟括号,因此 VBA 代码在这方面是模棱两可的。但是,它听起来很像一个方法名,所以我会尝试在 Python 代码中使用swModel.GetPathName()来调用它。
标签: python vba api com solidworks