Message 1 of 17
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I trying to get this batch print to include the Rev level of the drawing in each pdf name, But its putting the top level assy revision level for all the pdfs. I have looked at all the batch print ilogic codes and have tried rewriting many times to look at each drawing rev with no luck. looking for some help on this one.
Sub Main() Dim oDoc As Document oDoc = ThisDoc.Document oDocName = System.IO.Path.GetDirectoryName(oDoc.FullFileName) & "\" & System.IO.Path.GetFileNameWithoutExtension(oDoc.FullFileName) If Not (oDoc.DocumentType = kAssemblyDocumentObject Or oDoc.DocumentType = kDrawingDocumentObject) Then MessageBox.Show("Please run this rule from the assembly or assembly drawing file.", "iLogic") Exit Sub End If 'get user input If MessageBox.Show ( _ "This will create a PDF file for all of the asembly components that have drawings files." _ & vbLf & "This rule expects that the drawing file shares the same name and location as the component." _ & vbLf & " " _ & vbLf & "Are you sure you want to create PDF Drawings for all of the assembly components?" _ & vbLf & "This could take a while.", "iLogic - Batch Output PDFs ",MessageBoxButtons.YesNo) = vbNo Then Exit Sub End If Dim PDFAddIn As TranslatorAddIn Dim oContext As TranslationContext Dim oOptions As NameValueMap Dim oDataMedium As DataMedium Call ConfigurePDFAddinSettings(PDFAddIn, oContext, oOptions, oDataMedium) oPath = ThisDoc.Path oFolder = oPath & "\" & oAsmName & " PDF Files\" oPath = System.IO.Directory.GetParent(oPath).FullName If System.IO.Directory.Exists(oFolder) = False Then System.IO.Directory.CreateDirectory(oFolder) End If '- - - - - - - - - - - - -Component Drawings - - - - - - - - - - - -'look at the files referenced by the assembly Dim oRefDoc As Document Dim fileName As String For Each oRefDoc In oDoc.AllReferencedDocuments oFileName = Left(oRefDoc.DisplayName, Len(oRefDoc.DisplayName) - 4) For Each fileName In System.IO.Directory.GetFiles(oPath, "*.dwg",System.IO.SearchOption.AllDirectories) If fileName.EndsWith(oFileName + ".dwg") = True Then ' Dim oDrawDoc As DrawingDocument oDrawDoc = ThisApplication.Documents.Open(fileName, True) On Error Resume Next 'oRevNum = iProperties.Value("Custom", "REV LEVEL") oRevNum = iProperties.Value("Project", "Revision Number") oDataMedium.FileName = oFolder & "\" & oFileName & " REV-" & oRevNum & ".pdf" Call PDFAddIn.SaveCopyAs(oDrawDoc, oContext, oOptions, oDataMedium) oDrawDoc.Close On Error GoTo 0 End If Next Next '- - - - - - - - - - - - - '- - - - - - - - - - - - -Top Level Drawing - - - - - - - - - - - - Dim oAsmDrawingName As String = ThisDoc.FileName(False) 'without extension For Each fileName In System.IO.Directory.GetFiles(oPath, "*.dwg", System.IO.SearchOption.AllDirectories) If fileName.EndsWith(oAsmDrawingName + ".dwg") = True Then Dim oAsmDrawingDoc As DrawingDocument oAsmDrawingDoc = ThisApplication.Documents.Open(fileName, True) oAsmRevNum = iProperties.Value("Custom", "REV LEVEL") On Error Resume Next oDataMedium.FileName = oFolder & oAsmDrawingName & " REV-" & oAsmRevNum & ".pdf" Call PDFAddIn.SaveCopyAs(oAsmDrawingDoc, oContext, oOptions, oDataMedium) oAsmDrawingDoc.Close On Error GoTo 0 End If Next MessageBox.Show("New Files Created in: " & vbLf & oFolder, "iLogic") Shell("explorer.exe " & oFolder,vbNormalFocus) End Sub Sub ConfigurePDFAddinSettings(ByRef PDFAddIn As TranslatorAddIn, ByRef oContext As TranslationContext, ByRef oOptions As NameValueMap, ByRef oDataMedium As DataMedium) oPath = ThisDoc.Path PDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}") oContext = ThisApplication.TransientObjects.CreateTranslationContext oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism oOptions = ThisApplication.TransientObjects.CreateNameValueMap oOptions.Value("All_Color_AS_Black") = 0 oOptions.Value("Remove_Line_Weights") = 0 oOptions.Value("Vector_Resolution") = 400 oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintAllSheets 'oOptions.Value("Custom_Begin_Sheet") = 1 'oOptions.Value("Custom_End_Sheet") = 1 oDataMedium = ThisApplication.TransientObjects.CreateDataMedium End Sub
Solved! Go to Solution.