Bin gerade dabei folgendes Problem für Inventor 2025 zu lösen:
Beim Speichern einer Zeichnung soll Inventor von jedem Blatt eine einzelene pdf erstellen und in einem Ornder speichern.
habe im Netz schon folgendes gefunden, allerdings schon älter:
http://inventortrenches.blogspot.com/2011/07/ilogic-to-save-pdf-files-to-new.html?m=1
Leider kommt beim ausführen der Regel:
"Fehler in Zeile 36 in Regel
Ungültiger Zeiger (0x80004003 (E_POINTER))"
Vielen Dank für Unterstützung
Gelöst! Gehe zur Lösung
Bin gerade dabei folgendes Problem für Inventor 2025 zu lösen:
Beim Speichern einer Zeichnung soll Inventor von jedem Blatt eine einzelene pdf erstellen und in einem Ornder speichern.
habe im Netz schon folgendes gefunden, allerdings schon älter:
http://inventortrenches.blogspot.com/2011/07/ilogic-to-save-pdf-files-to-new.html?m=1
Leider kommt beim ausführen der Regel:
"Fehler in Zeile 36 in Regel
Ungültiger Zeiger (0x80004003 (E_POINTER))"
Vielen Dank für Unterstützung
Gelöst! Gehe zur Lösung
Gelöst von StKrause. Gehe zur Lösung
Hallo, ".HasSaveCopyAsOptions" wird, zumindest in IV 2023 nicht untersützt.
Lösche Zeile 1 + 8 dann sollte es funktionieren:
If oPDFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then
oOptions.Value("All_Color_AS_Black") = 1
oOptions.Value("Remove_Line_Weights") = 1
oOptions.Value("Vector_Resolution") = 400
oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintSheetRange
oOptions.Value("Custom_Begin_Sheet") = iSheetNumber
oOptions.Value("Custom_End_Sheet") = iSheetNumber
End If
Hallo, ".HasSaveCopyAsOptions" wird, zumindest in IV 2023 nicht untersützt.
Lösche Zeile 1 + 8 dann sollte es funktionieren:
If oPDFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then
oOptions.Value("All_Color_AS_Black") = 1
oOptions.Value("Remove_Line_Weights") = 1
oOptions.Value("Vector_Resolution") = 400
oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintSheetRange
oOptions.Value("Custom_Begin_Sheet") = iSheetNumber
oOptions.Value("Custom_End_Sheet") = iSheetNumber
End If
Hi @n_siggC684S willkommen im deutschen Fusion Forum!
Konnte @jeremy.goenens Antwort deine Fragestellung lösen?
Falls ja, bitte ich dich diese als Akzeptierte Lösung zu markieren.
Danke für euer Mitwirken!
Beste Grüße,
Sara
-------------------------------------------------------------------------------------------------------
Ihr fandet einen Beitrag hilfreich? Dann vergebt dafür Likes!
Eure Anfrage wurde erfolgreich gelöst? Dann einfach auf den 'Als Lösung akzeptieren'-Button klicken!
Sara Elsayed
Community Manager
Hi @n_siggC684S willkommen im deutschen Fusion Forum!
Konnte @jeremy.goenens Antwort deine Fragestellung lösen?
Falls ja, bitte ich dich diese als Akzeptierte Lösung zu markieren.
Danke für euer Mitwirken!
Beste Grüße,
Sara
-------------------------------------------------------------------------------------------------------
Ihr fandet einen Beitrag hilfreich? Dann vergebt dafür Likes!
Eure Anfrage wurde erfolgreich gelöst? Dann einfach auf den 'Als Lösung akzeptieren'-Button klicken!
Sara Elsayed
Community Manager
Hallo @n_siggC684S ,
du must das erste Argument von HasSaveCopyAsOptions ändern, dass muss so lauten
If oPDFAddIn.HasSaveCopyAsOptions(oDrawing, oContext, oOptions) Then
Außerdem werden die PDF's einen Ordner über dem, wo die IDW liegt gespeichert. Wenn du die PDF's in einem Unterordner von dem, wo die IDW ist, haben willst, dann sollte das so gehen:
oPath = ThisDoc.Path Dim oFolder As String = oPath & "\PDF\" oFileName = ThisDoc.FileName(False) 'without extension oPDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}") oDocument = ThisApplication.ActiveDocument oContext = ThisApplication.TransientObjects.CreateTranslationContext oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism oOptions = ThisApplication.TransientObjects.CreateNameValueMap oDataMedium = ThisApplication.TransientObjects.CreateDataMedium 'Define the drawing Dim oDrawing As DrawingDocument oDrawing = ThisDoc.Document Dim oSheet As Sheet Dim lPos As Long Dim rPos As Long Dim sLen As Long Dim sSheetName As String Dim iSheetNumber As Integer 'step through each drawing sheet For Each oSheet In oDrawing.Sheets 'find the seperator in the sheet name:number lPos = InStr(oSheet.Name, ":") 'find the number of characters in the sheet name sLen = Len(oSheet.Name) 'find the sheet name sSheetName = Left(oSheet.Name, lPos -1) 'find the sheet number iSheetNumber = Right(oSheet.Name, sLen -lPos) 'set PDF Options If oPDFAddIn.HasSaveCopyAsOptions(oDrawing, oContext, oOptions) Then oOptions.Value("All_Color_AS_Black") = 1 oOptions.Value("Remove_Line_Weights") = 1 oOptions.Value("Vector_Resolution") = 400 oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintSheetRange oOptions.Value("Custom_Begin_Sheet") = iSheetNumber oOptions.Value("Custom_End_Sheet") = iSheetNumber End If 'get PDF target folder path ' oFolder = Left(oPath, InStrRev(oPath, "\")) & "PDF" 'Check for the PDF folder and create it if it does not exist If Not System.IO.Directory.Exists(oFolder) Then System.IO.Directory.CreateDirectory(oFolder) End If 'Set the PDF target file name oDataMedium.FileName = oFolder & "\" & oFileName & " " & sSheetName & " " & iSheetNumber & ".pdf" Logger.Info(oDataMedium.FileName) 'Publish document oPDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium) Next
Hallo @n_siggC684S ,
du must das erste Argument von HasSaveCopyAsOptions ändern, dass muss so lauten
If oPDFAddIn.HasSaveCopyAsOptions(oDrawing, oContext, oOptions) Then
Außerdem werden die PDF's einen Ordner über dem, wo die IDW liegt gespeichert. Wenn du die PDF's in einem Unterordner von dem, wo die IDW ist, haben willst, dann sollte das so gehen:
oPath = ThisDoc.Path Dim oFolder As String = oPath & "\PDF\" oFileName = ThisDoc.FileName(False) 'without extension oPDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}") oDocument = ThisApplication.ActiveDocument oContext = ThisApplication.TransientObjects.CreateTranslationContext oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism oOptions = ThisApplication.TransientObjects.CreateNameValueMap oDataMedium = ThisApplication.TransientObjects.CreateDataMedium 'Define the drawing Dim oDrawing As DrawingDocument oDrawing = ThisDoc.Document Dim oSheet As Sheet Dim lPos As Long Dim rPos As Long Dim sLen As Long Dim sSheetName As String Dim iSheetNumber As Integer 'step through each drawing sheet For Each oSheet In oDrawing.Sheets 'find the seperator in the sheet name:number lPos = InStr(oSheet.Name, ":") 'find the number of characters in the sheet name sLen = Len(oSheet.Name) 'find the sheet name sSheetName = Left(oSheet.Name, lPos -1) 'find the sheet number iSheetNumber = Right(oSheet.Name, sLen -lPos) 'set PDF Options If oPDFAddIn.HasSaveCopyAsOptions(oDrawing, oContext, oOptions) Then oOptions.Value("All_Color_AS_Black") = 1 oOptions.Value("Remove_Line_Weights") = 1 oOptions.Value("Vector_Resolution") = 400 oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintSheetRange oOptions.Value("Custom_Begin_Sheet") = iSheetNumber oOptions.Value("Custom_End_Sheet") = iSheetNumber End If 'get PDF target folder path ' oFolder = Left(oPath, InStrRev(oPath, "\")) & "PDF" 'Check for the PDF folder and create it if it does not exist If Not System.IO.Directory.Exists(oFolder) Then System.IO.Directory.CreateDirectory(oFolder) End If 'Set the PDF target file name oDataMedium.FileName = oFolder & "\" & oFileName & " " & sSheetName & " " & iSheetNumber & ".pdf" Logger.Info(oDataMedium.FileName) 'Publish document oPDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium) Next
Hallo STKrause,
mit deinem Quellcode läuft es.
Vielen vielen Dank, jetzt funktioniert es wie gewünscht.
Hallo STKrause,
mit deinem Quellcode läuft es.
Vielen vielen Dank, jetzt funktioniert es wie gewünscht.
Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.