为什么我的宏不能与 solidworks 连接?

Why won't my macro connect with solidworks?

我昨晚在使用 excel,但我的宏停止工作了。它链接到 solidworks 文件。这个宏已经用了3-4年了,到昨晚才出问题

我在这一行出现错误 91 "Part.SketchManager.InsertSketch True" 除了我上次 运行 按下 escape 试图停止宏外,没有对文件进行任何更改。对于它停止工作的原因,这可能是巧合,也可能不是巧合。 我没有编写此代码,也无法联系编写此代码的人。请帮我解决一下。

密码是:

Dim swApp As Object
Dim Part As Object
Dim boolStatus As Boolean
Dim longStatus As Long, longwarnings As Long
Dim conv As Double
Dim angle As Double
Dim counter As Double
Dim SelMgr As Object
Dim value As Double
Dim Feature As Object
Dim vPoint As Variant
Dim droop_Steps As Integer
Dim step_Size As Double
Dim comp_Steps As Integer
Dim front_row As Integer


Sub plotmotion()
angle = 57.2957795
conv = 0.0254

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
Dim myDimension As Object
Part.SketchManager.InsertSketch True
front_row = 1
boolStatus = Part.Extension.SelectByID2("plot", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch

For counter = 0.887 To 0 Step -0.005
    front_row = front_row + 1

    Set myDimension = Part.Parameter("Sheave Travel@plot")
    myDimension.SystemValue = counter * conv

    Excel.Range("E" & CStr(front_row)) = Part.Parameter("Sheave Travel@plot@RAMP 20-1.Part").SystemValue
    Excel.Range("I" & CStr(front_row)) = Part.Parameter("R@plot@RAMP 20-1.Part").SystemValue
    Excel.Range("F" & CStr(front_row)) = Part.Parameter("H@plot@RAMP 20-1.Part").SystemValue
    Excel.Range("G" & CStr(front_row)) = Part.Parameter("L@plot@RAMP 20-1.Part").SystemValue
    Excel.Range("H" & CStr(front_row)) = Part.Parameter("theta@plot@RAMP 20-1.Part").SystemValue * angle


Next counter
Part.SketchManager.InsertSketch True

End Sub

使用 CreateObject() 会启动一个新的 SOLIDWORKS 进程并默认隐藏。然后您尝试立即使用 ActiveDoc 属性,但是在这个新进程中没有打开文档,然后以下行将触发错误。 有时它会像这样连接一个已经打开的 SOLIDWORKS 进程 - 但并非总是如此!

如果您想连接到打开的 SOLIDWORKS 进程,您应该改用 Set swApp = GetObject(, "SldWorks.Application")