【问题标题】:Solidworks API ExportToDWG2Solidworks API ExportToDWG2
【发布时间】: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


【解决方案1】:

我知道回答这个问题可能为时已晚,但答案是使用 ExportToDWG 而不是 ExportToDWG2,至少这在 VB .net 中有效。

【讨论】:

    猜你喜欢
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多