SolidWorks机械工程师网——最大的SolidWorks学习平台

标题: 关于存档命令SaveAs3……很烦恼 [打印本页]

作者: eno_01    时间: 2020-12-16 20:52
标题: 关于存档命令SaveAs3……很烦恼
如题,代码如下,一个很简单的存档程序。
就是将当前文件零存成特定的格式,比较烦恼的就是程序以外的弹窗,比如工程图比例、目录内包含相同文件替换的弹窗等。
烦请论坛大佬指教下,有没有方法让它不弹出,默认确定或是就行,感谢!
我也不熟悉这些代码,都是照着网上大佬的看,边做边试,代码很乱见笑了。
Dim swApp As Object
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set Part = swModel
Set Part = swApp.ActiveDoc

'判断是否打开零件体
If swModel Is Nothing Then
MsgBox "没有打开文档!", 0 + 16 + 65536, "错误"
Exit Sub
End If

'判定当前活动文件是否是零件并赋相应扩展名变量值
If (Part.GetType = swDocPART) Then
g = "igs" '零件模式设定输出扩展名为igs,不包含"."
ElseIf Part.GetType = swDocDRAWING Then
g = "dxf" '图纸模式设定输出扩展名为dxf,不包含"."
ElseIf Part.GetType = swDocASSEMBLY Then
Msgr = MsgBox("当前为装配体,是否确定要将装配体输出文件?", 4 + 64 + 65536, "注意")
  If Msgr = 6 Then
  g = "igs" '设定输出扩展名为igs,不包含"."
  Else
  Exit Sub
  End If
End If

boolstatus = Part.EditRebuild3() '刷新模型
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager
swApp.ActiveDoc.ActiveView.FrameState = 1

'设定变量
a = swApp.ActiveDoc.GetTitle() '零件名Part.GetPathName
b = Part.GetPathName() '当前活动模型的完整路径和完整文件名
c = Right(a, 7) '文件名消除扩展名
d = Left(b, InStrRev(b, "")) '完整路径消除文件名
e = Left(a, InStrRev(a, ".")) '消除文件名中的扩展名
f = Chr(46) & "sldprt" '设定扩展名,不包含"."
h = Left(b, InStrRev(b, ".")) '完整路径移除扩展名

If (b = "") Then
MsgBox "当前文件还未保存," & vbCrLf & "保存文件后继续执行!", 0 + 16 + 65536, "错误"
Exit Sub
End If

PName = h & g
longstatus = Part.SaveAs3(PName, 0, 0)
MsgBox "输出文件:" & PName, 0 + 64 + 65536, "成功"

End Sub

复制代码




作者: firstblood    时间: 2020-12-25 16:42
’关闭提示
Application.DisplayAlerts = False
’打开提示
Application.DisplayAlerts = True
作者: qsfp2002    时间: 2021-2-19 01:07
这是SolidWorks,不是Excel。。。
作者: xueshan7815    时间: 2021-3-7 07:38
第一个问题,关于工程图比例的提示,这个可以在手动另存DWG/DXF时,进入对应的选项,关闭提示就好。但是换电脑或重新安装Solidworks后还得手动进去设置一次。
所以最完美的解决办法是在代码里面进行对应的设置,这个设置我看到过的,是可行的。
你自己找找吧,把sw界面调成英文后进入这个地方的设置,找到对应的英文单词,然后在API HELP里面搜就可以找到了。
我告诉你方法了,但是你能不能找到和找到了能不能看懂就看你自己了。


第二个问题,文件已存在的提示,可以把现有存在的文件事先删掉,但是还是存在因为文件被打开而导致删不掉的情况。
我的建议是在另存时在文件名后面加上表示年月日时分秒的数字,直接就能保证跟以前的文件名不一样,也就不用管文件是否已存在了。
作者: andswm    时间: 2021-3-20 00:02
感谢指点,我去找找看。E文实在太烂……有点难度。




欢迎光临 SolidWorks机械工程师网——最大的SolidWorks学习平台 (https://www.swbbsc.com/) Powered by Discuz! X3.2