|
8#

楼主 |
发表于 2024-2-21 12:45:56
|
只看该作者
Dim swApp As Object
Dim PART As Object
Dim PART3D As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim PathStr As String
Dim i As Long
Dim dir As String
Dim PathStr0 As String, PathStr1 As String, PathStr2 As String, PathStr6 As String
Dim pathstr7 As String, pathstr8 As String
Dim swModel As SldWorks.ModelDoc2
Dim swdraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim ModelName As String
Dim ModelType As String
Dim L As Long, L1 As Long
Sub main基于工程图保存三种格式()
On Error Resume Next
Set swApp = Application.SldWorks
Set PART = swApp.ActiveDoc
PathStr0 = PART.GetPathName
' 从文件路径中提取文件所在目录
dir = Left(PathStr0, InStrRev(PathStr0, "\"))
' 创建新的文件夹(DWG、PDF、X_T)
MkDir (dir & "DWG")
MkDir (dir & "PDF")
MkDir (dir & "X_T")
i = InStrRev(PathStr0, "\")
L = Len(PathStr0)
FileName = Mid(PathStr0, i + 1, L - i)
FileName = Left(FileName, Len(FileName) - 7)
PathStr1 = dir & "\" & "DWG" & "\" & FileName & ".DWG"
PathStr2 = dir & "\" & "PDF" & "\" & FileName & ".PDF"
PathStr6 = dir & "\" & "X_T" & "\" & FileName & ".X_T"
pathstr7 = Left(PathStr0, L - 7) & ".sldprt"
pathstr8 = Left(PathStr0, L - 7) & ".sldasm"
longstatus = PART.SaveAs3(PathStr1, 0, 0) ' Save as DWG
longstatus = PART.SaveAs3(PathStr2, 0, 0) ' Save as PDF
Set PART = Nothing
L1 = Len(FileName)
Set swModel = swApp.ActiveDoc
Set swdraw = swModel
Set swView = swdraw.GetFirstView
Set swView = swView.GetNextView
ModelName = swView.GetReferencedModelName()
ModelType = Right(ModelName, 6)
If ModelType = "SLDPRT" Or ModelType = "sldprt" Then
Set PART3D = swApp.OpenDoc6(pathstr7, 1, 0, "", longstatus, longwarnings)
ElseIf ModelType = "SLDASM" Or ModelType = "sldasm" Then
Set PART3D = swApp.OpenDoc6(pathstr8, 2, 0, "", longstatus, longwarnings)
End If
longstatus = PART3D.SaveAs3(PathStr6, 0, 0)
Set PART3D = Nothing
End Sub
自我升级 搞定 |
|