Community
Inventor - Deutsch
Das Forum für alle Fragen rund um Autodesk Inventor, iLogic, Factory Design, Automation und mehr. Der Ort zum Fragen stellen, Antworten erhalten und Wissen teilen.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

ilogic, jedes Blatt einer Zeichnung als pdf speichern.

4 ANTWORTEN 4
GELÖST
Antworten
Nachricht 1 von 5
n_siggC684S
304 Aufrufe, 4 Antworten

ilogic, jedes Blatt einer Zeichnung als pdf speichern.

n_siggC684S
Observer
Observer

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

 

 

0 „Gefällt mir“-Angaben

ilogic, jedes Blatt einer Zeichnung als pdf speichern.

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

 

 

4 ANTWORTEN 4
Nachricht 2 von 5
jeremy.goenen
als Antwort auf: n_siggC684S

jeremy.goenen
Advocate
Advocate

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

 

Fanden Sie diesen Beitrag hilfreich? Fühlen Sie sich frei, diesen Beitrag zu liken.
Wurde Ihre Frage erfolgreich beantwortet? Klicken Sie dann auf die Schaltfläche LÖSUNG AKZEPTIEREN

Inventor Versionen:
2023.4.1
2024.2
0 „Gefällt mir“-Angaben

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

 

Fanden Sie diesen Beitrag hilfreich? Fühlen Sie sich frei, diesen Beitrag zu liken.
Wurde Ihre Frage erfolgreich beantwortet? Klicken Sie dann auf die Schaltfläche LÖSUNG AKZEPTIEREN

Inventor Versionen:
2023.4.1
2024.2
Nachricht 3 von 5
sara_elsayedJ6VX2
als Antwort auf: n_siggC684S

sara_elsayedJ6VX2
Community Manager
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

0 „Gefällt mir“-Angaben

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

Nachricht 4 von 5
StKrause
als Antwort auf: n_siggC684S

StKrause
Contributor
Contributor
Akzeptierte Lösung

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

 

Nachricht 5 von 5
n_siggC684S
als Antwort auf: StKrause

n_siggC684S
Observer
Observer

Hallo STKrause,

 

mit deinem Quellcode läuft es.

Vielen vielen Dank, jetzt funktioniert es wie gewünscht.

 

 

0 „Gefällt mir“-Angaben

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.

In Foren veröffentlichen  

Autodesk Design & Make Report