【发布时间】:2019-08-05 20:08:20
【问题描述】:
我有一个宏(见下文),它将使用 xyz 点从 .txt 文件加载到 Solidworks 中。需要明确的是,这给出了所需的输出。
Dim swApp As Object
Dim Part As Object
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
Part.InsertCurveFile("Generic Filepath\Points.txt")
End Sub
我正在尝试使用此实现从 Python 运行相同的宏:
import win32com.client
sldw = win32com.client.Dispatch('SldWorks.Application')
sldw.NewDocument("C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\lang\english\Tutorial\part.prdot", 0, 0, 0)
Part = sldw.ActiveDoc
Part.InsertCurveFile("Generic Filepath\Points.txt")
#Cleanup the com reference.
del sldw
我知道我可以从 Python 运行 Solidworks 宏,因为我需要进行一些测试。当我运行宏时,Python 不会输出任何类型的错误消息,也不会在 Solidworks 中生成任何内容。
在编辑器行Part.InsertCurveFile("Generic Filepath\Points.txt")中逐行运行Python代码返回False。
在打开 Solidworks 并打开零件文档的情况下,打开以下作品:
import win32com.client
import pythoncom
pythoncom.CoInitialize ()
sldw = win32com.client.GetObject (Class='SldWorks.Application')
Part = sldw.ActiveDoc
Part.InsertCurveFileBegin()
Part.InsertCurveFilePoint(0, 0, 0)
Part.InsertCurveFilePoint(0, 1, 1)
Part.InsertCurveFilePoint(1, 1, 1)
Part.InsertCurveFileEnd()
如何使 Python 实现工作?
【问题讨论】:
-
尝试在 Dispatch
-
@VladyslavLitunovsky 我试过了,我应该提到我打开了 Solidworks 并在其中打开了一个新的零件文档。有趣的是,在编辑器中逐行运行 Python 代码,直到
Part = sldw.ActiveDoc都可以,但Part.InsertCurveFile("Generic Filepath\Points.txt")返回False。我会更新我的问题。 -
试试
Part.InsertCurveFile(r"Generic Filepath\Points.txt")或Part.InsertCurveFile("Generic Filepath/Points.txt") -
这些都没有影响。我想知道文件是否存在权限问题?
-
我想我已经使用
Part.InsertCurveFile("Generic Filepath/Points.txt")让它工作了。这是文件名的问题。我现在已经开始工作了。
标签: python-3.x vba win32com solidworks