Created
December 12, 2022 21:26
-
-
Save AmenJlili/3bb7677d9462823eec14b0007e58c91d to your computer and use it in GitHub Desktop.
BatchChangeSheetFormat
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Dim swApp As SldWorks.SldWorks | |
Dim swModel As ModelDoc2 | |
Sub Main() | |
Set swApp = Application.SldWorks | |
Dim FolderLocation As String | |
FolderLocation = "C:\Users\jlili\Desktop\sheet format" | |
Dim FileSystemObject As Object | |
Dim Folder As Object | |
Set FileSystemObject = CreateObject("Scripting.FileSystemObject") | |
Set Folder = FileSystemObject.GetFolder(FolderLocation) | |
For Each file In Folder.Files | |
If EndsWith(file.Name, "slddrw") Then | |
'process part | |
Set swModel = swApp.OpenDoc(file.Name, SwConst.swDocumentTypes_e.swDocDRAWING) | |
swModel.Visible = True | |
RefreshSheetFormats swModel | |
swModel.Save | |
swApp.QuitDoc swModel.GetTitle | |
End If | |
Set swModel = Nothing | |
Next file | |
End Sub | |
Sub RefreshSheetFormats(ByRef swModel As ModelDoc2) | |
Dim swDrawingDoc As DrawingDoc | |
Set swDrawingDoc = swModel | |
Dim vSheetNames As Variant | |
vSheetNames = swDrawingDoc.GetSheetNames | |
For Each SheetName In vSheetNames | |
Dim swSheet As Sheet | |
Set swSheet = swDrawingDoc.Sheet(SheetName) | |
swDrawingDoc.ActivateSheet SheetName | |
Dim width As Double | |
Dim height As Double | |
Dim paperSize As swDwgPaperSizes_e | |
paperSize = swSheet.GetSize(width, height) | |
Select Case size | |
Case swDwgPaperSizes_e.swDwgPaperAsize | |
swDrawingDoc.EditTemplate | |
swModel.Extension.SelectAll | |
swModel.DeleteSelection False | |
'change the sheet format | |
swDrawingDoc.SetupSheet5 SheetName, swDwgPaperSizes_e.swDwgPaperCsize, swDwgTemplates_e.swDwgTemplateCsize, 1, 1, False, Empty, 0, 0, "Default", False | |
swDrawingDoc.EditSheet | |
Case swDwgPaperSizes_e.swDwgPaperBsize | |
swDrawingDoc.EditTemplate | |
swModel.Extension.SelectAll | |
swModel.DeleteSelection False | |
'change the sheet format | |
swDrawingDoc.SetupSheet5 SheetName, swDwgPaperSizes_e.swDwgPaperCsize, swDwgTemplates_e.swDwgTemplateCsize, 1, 1, False, Empty, 0, 0, "Default", False | |
swDrawingDoc.EditSheet | |
Case swDwgPaperSizes_e.swDwgPaperCsize | |
swDrawingDoc.EditTemplate | |
swModel.Extension.SelectAll | |
swModel.DeleteSelection False | |
'change the sheet format | |
swDrawingDoc.SetupSheet5 SheetName, swDwgPaperSizes_e.swDwgPaperCsize, swDwgTemplates_e.swDwgTemplateCsize, 1, 1, False, Empty, 0, 0, "Default", False | |
swDrawingDoc.EditSheet | |
Case swDwgPaperSizes_e.swDwgPaperDsize | |
swDrawingDoc.EditTemplate | |
swModel.Extension.SelectAll | |
swModel.DeleteSelection False | |
'change the sheet format | |
swDrawingDoc.SetupSheet5 SheetName, swDwgPaperSizes_e.swDwgPaperCsize, swDwgTemplates_e.swDwgTemplateCsize, 1, 1, False, Empty, 0, 0, "Default", False | |
swDrawingDoc.EditSheet | |
Case swDwgPaperSizes_e.swDwgPaperEsize | |
swDrawingDoc.EditTemplate | |
swModel.Extension.SelectAll | |
swModel.DeleteSelection False | |
'change the sheet format | |
swDrawingDoc.SetupSheet5 SheetName, swDwgPaperSizes_e.swDwgPaperCsize, swDwgTemplates_e.swDwgTemplateCsize, 1, 1, False, Empty, 0, 0, "Default", False | |
swDrawingDoc.EditSheet | |
Case Else | |
swDrawingDoc.EditTemplate | |
swModel.Extension.SelectAll | |
swModel.DeleteSelection False | |
'change the sheet format | |
swDrawingDoc.SetupSheet5 SheetName, swDwgPaperSizes_e.swDwgPaperCsize, swDwgTemplates_e.swDwgTemplateCsize, 1, 1, False, Empty, 0, 0, "Default", False | |
swDrawingDoc.EditSheet | |
End Select | |
Next SheetName | |
End Sub | |
Public Function EndsWith(str As String, ending As String) As Boolean | |
Dim endingLen As Integer | |
endingLen = Len(ending) | |
EndsWith = (Right(Trim(UCase(str)), endingLen) = UCase(ending)) | |
End Function | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment