编程小白,网上找了些关于python做SolidWorks和SolidWorks PDM二次开发的一些资料。
中间遇到了一些问题,不知道怎么处理,所以想着发到网上来,看看有没有大佬能帮忙指导下,感谢。
初次发帖,不太会弄格式,还请见谅,将就看下,具体问题描述写在代码注释中了。
换了个版本的PDM可以正常运行了,稍微更新下代码。
代码部分:
import pythoncom
import win32com.client
from pdm_lib import * # makepy.py文件运行后下拉选择PDMWorks Enterprise 20xx Type Library生成文件,重命名文件为pdm_lib.py和当前py文件放在同一路径下。
folder_path = 'C:\\Users\\SJT\\Desktop\\研发球\\' # 替换为文件夹路径
file_path = 'C:\\Users\\SJT\\Desktop\\研发球\\零件1002.SLDPRT' # 替换为需要检入检出的文件路径
vault_name = '研发球' # PDM名称
vault = EdmVault5()
# 使用PDM名称直接登录
vault.LoginAuto(vault_name, 0)
folder = vault.GetFolderFromPath(folder_path)
file = vault.GetFileFromPath(file_path, folder)[0]
# 检出文件
file.LockFile(folder.ID, file.CurrentVersion)
if file.IsLocked:
print('文件检出成功')
# 使用SolidWorks软件打开文件后保存文件
# 这里也可以直接在PDM中通过文件的标签页面来修改文件,后续也可以用PDM api提供的接口直接来修改文件。
swApp=win32com.client.Dispatch(f'SldWorks.Application')
swApp.CommandInProgress =True
swApp.Visible =True
Errors=win32com.client.VARIANT(pythoncom.VT_BYREF | pythoncom.VT_I4, -1)
Warnings=win32com.client.VARIANT(pythoncom.VT_BYREF | pythoncom.VT_I4, -1)
sw_app = swApp.OpenDoc6(file_path,1,1,"",Errors,Warnings)
sw_app.Save()
swApp.CloseDoc(file_path)
# swApp.ExitApp()
# 文件更新后,刷新folder和file的参数。
# 文件保存后,相关参数会变化,所以加了这段代码。
# 后面试了下,这段代码可以不加,正常运行。
# folder = vault.GetFolderFromPath(folder_path)
# file = vault.GetFileFromPath(file_path, folder)[0]
# 检入文件
file.UnlockFile(0,"检入文件测试",0,None)
if file.IsLocked !='':
print('文件检入成功')