Ankündigungen
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.

ilogic, jedes Blatt einer Zeichnung als pdf speichern.

n_siggC684S
Observer

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
Antworten
Akzeptierte Lösungen (1)
441Aufrufe
4Antworten
Antworten (4)

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.3
2025.2
0 „Gefällt mir“-Angaben

sara_elsayed15
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

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

 

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