| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | Auf dem Weg zur digitalen Auftragsmappe. , ein Anwenderbericht
|
Autor
|
Thema: iLogic PDF Eport Optionen reseten (2470 / mal gelesen)
|
OibelTroibel Mitglied Konstrukteur
Beiträge: 602 Registriert: 18.04.2014 ACAD/Inventor 2018-21
|
erstellt am: 19. Dez. 2019 10:45 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen Wir haben eine iLogic Regel, mit der wir die gewünschten Seiten als PDF exportieren können, was auch gut funktioniert. Jedoch speichert er den Blätterbereich in den PDF Export Optionen. Kann man die Option auf "aktuelles Blatt" mit iLogic reseten ohne eerneut ein PDF zu exportieren? Beste Grüsse Raphael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meierjo Mitglied
Beiträge: 432 Registriert: 20.08.2003 Windows 10 Prof 64 Bit Inventor Prof 2023 Vault Basic 2023
|
erstellt am: 19. Dez. 2019 12:59 <-- editieren / zitieren --> Unities abgeben: Nur für OibelTroibel
|
OibelTroibel Mitglied Konstrukteur
Beiträge: 602 Registriert: 18.04.2014 ACAD/Inventor 2018-21
|
erstellt am: 19. Dez. 2019 15:10 <-- editieren / zitieren --> Unities abgeben:
Hallo Das Exportieren an sich funktioniert ja sehr gut, es wird der gewünschte Blätterbereich gedruckt. Der Blätterbereich wird danach in den Optionen des PDF-Exports gespeichert. Wenn ich am Ende der Regel wieder auf CurrentSheet umstelle, wird dieser Wert nicht in die Exportoptionen gespeichert. Hier der Code: Code: oFolder = "G:\***" + Mid(ThisDoc.Path,24) oDateiname = ThisDoc.FileName(False)Select Case ThisDoc.Document.FileSaveCounter Case 0 MessageBox.Show("Bitte Zeichnung zuerst speichern", "Export abgebrochen", MessageBoxButtons.OK, MessageBoxIcon.Stop) Return End Select ' Sicherstellen, dass nur .idw und .dwg Dateien als .pdf exportiert werden Select Case Right(ThisDoc.FileName(True),4) Case ".ipt" MessageBox.Show("Bauteile können nicht als .pdf exportiert werden", "Export abgebrochen", MessageBoxButtons.OK, MessageBoxIcon.Stop) Return Case ".iam" MessageBox.Show("Baugruppen können nicht als .pdf exportiert werden", "Export abgebrochen", MessageBoxButtons.OK, MessageBoxIcon.Stop) Return Case ".ipn" MessageBox.Show("Präsentationen können nicht als .pdf exportiert werden", "Export abgebrochen", MessageBoxButtons.OK, MessageBoxIcon.Stop) Return End Select oDateinameNeu = InputBox("Dateiname anpassen und bestätigen", "Dateiname überprüfen", oDateiname & "_k") If oDateinameNeu = "" Then Return End If ' Prüfen ob Zielordner vorhanden ist und allenfalls erstellen If Not System.IO.Directory.Exists(oFolder) Then System.IO.Directory.CreateDirectory(oFolder) End If ' Prüfen ob Export bereits vorhanden ist und überschreiben vom Benutzer auswählen lassen Dim oCurFile As String = oFolder & "\" & oDateinameNeu & ".pdf" Dim SheetRange As String Dim SPL As Integer Dim L1 As Integer Dim L2 As Integer If System.IO.File.Exists(oCurFile) Then frage = MessageBox.Show(oDateinameNeu & ".pdf existiert bereits. Soll diese überschrieben werden?", "Datei existiert",MessageBoxButtons.YesNo,MessageBoxIcon.Question) If frage = vbYes Then SheetRange = InputBox("Bitte gib den zu exportierenden Bereich an." & vbLf & _ "Du hast folgende Möglichkeiten:" & vbLf & " ' 1 ' , ' 2-3 ' ", "Sheet range", "2-3") If SheetRange = vbNullString Then Exit Sub SPL = InStr(SheetRange, "-") If SPL > 0 Then L1 = Val(Left(SheetRange, SPL)) L2 = Val(Mid(SheetRange, SPL + 1)) Else L1 = Val(SheetRange) L2 = Val(SheetRange) End If ThisDoc.Document.SaveAs(oFolder & "\" & oDateinameNeu & ".pdf" , True) PDFAddIn = 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 If PDFAddIn.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") = L1 oOptions.Value("Custom_End_Sheet") = L2 End If MessageBox.Show(oDateinameNeu & ".pdf wurde erfolgreich in den Ordner " & oFolder & " exportiert", "Export erfolgreich", MessageBoxButtons.OK, MessageBoxIcon.Information) oDataMedium.FileName = oFolder & "\" & oDateinameNeu & ".pdf" PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions,oDataMedium) oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintCurrentsheet Return Else If frage = vbNo Then MessageBox.Show("Export wurde abgebrochen","Export abgebrochen", MessageBoxButtons.OK, MessageBoxIcon.Stop) Return End If End If SheetRange = InputBox("Bitte gib den zu exportierenden Bereich an." & vbLf & _ "Du hast folgende Möglichkeiten:" & vbLf & " ' 1 ' , ' 2-3 ' ", "Sheet range", "2-3") If SheetRange = vbNullString Then Exit Sub SPL = InStr(SheetRange, "-") If SPL > 0 Then L1 = Val(Left(SheetRange, SPL)) L2 = Val(Mid(SheetRange, SPL + 1)) Else L1 = Val(SheetRange) L2 = Val(SheetRange) End If ThisDoc.Document.SaveAs(oFolder & "\" & oDateinameNeu & ".pdf" , True) PDFAddIn = 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 If PDFAddIn.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") = L1 oOptions.Value("Custom_End_Sheet") = L2 End If MessageBox.Show(oDateinameNeu & ".pdf wurde erfolgreich in den Ordner " & oFolder & " exportiert", "Export erfolgreich", MessageBoxButtons.OK, MessageBoxIcon.Information) oDataMedium.FileName = oFolder & "\" & oDateinameNeu & ".pdf" PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions,oDataMedium) oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintCurrentsheet Return
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meierjo Mitglied
Beiträge: 432 Registriert: 20.08.2003 Windows 10 Prof 64 Bit Inventor Prof 2023 Vault Basic 2023
|
erstellt am: 19. Dez. 2019 15:36 <-- editieren / zitieren --> Unities abgeben: Nur für OibelTroibel
Hallo ÄÄhm, gibts denn die Option oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintCurrentsheet überhaupt?? Probier doch mal am ende des Codes oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintAllSheets dann sollte die Option auf "alle Blätter" stehen. Du gibst beim PDF Export ja sowieso an, welcher Bereich exportiert werden soll (habe den Code nur mal schnell überflogen) Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
OibelTroibel Mitglied Konstrukteur
Beiträge: 602 Registriert: 18.04.2014 ACAD/Inventor 2018-21
|
erstellt am: 19. Dez. 2019 15:55 <-- editieren / zitieren --> Unities abgeben:
Ja die Option gibts, habe es auch erfolgreich mit einem Export getestet. Ziel ist es nicht alle Blätter zu exportieren, sondern nach einer Regel, welche den gewünschten Blattbereich exportiert, die Export-Option wieder auf Aktuelles Blatt umzustellen. Grund dafür ist, dass beim speichern der Zeichnung eine weiter Export-Regel angekickt wird, die dann statt das aktuelle Blatt, den Blattbereich der letzten Regel nochmals exportiert. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KraBBy Mitglied Maschinenbau-Ingenieur
Beiträge: 721 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 19. Dez. 2019 17:14 <-- editieren / zitieren --> Unities abgeben: Nur für OibelTroibel
Warum kann die Option nicht in der "weiteren Export-Regel" gesetzt werden? zur eigentlichen Frage: IV legt zuletzt verwendete Einstellungen gerne in der Registry ab. Ich kenne das z.B. vom Import. Diese befinden sich z.B. unter HKEY_CURRENT_USER\Software\Autodesk\Inventor\RegistryVersion20.0\Translators Ich vermute, dass es beim pdf-Export nicht anders ist. Leider konnte ich diese Einstellungen aber nicht finden. Meine Idee wäre es gewesen, den entsprechenden Registryeintrag per iLogic zu ändern. ------------------ Gruß KraBBy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meierjo Mitglied
Beiträge: 432 Registriert: 20.08.2003 Windows 10 Prof 64 Bit Inventor Prof 2023 Vault Basic 2023
|
erstellt am: 20. Dez. 2019 06:48 <-- editieren / zitieren --> Unities abgeben: Nur für OibelTroibel
Hallo Zitat: ... die dann statt das aktuelle Blatt, den Blattbereich der letzten Regel nochmals exportiert.
Verstehe ich nicht, wieso willst du dann mit oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintCurrentsheet die Export-Optionen auf das aktuelle Blatt legen?? Gruss [Diese Nachricht wurde von Meierjo am 20. Dez. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
OibelTroibel Mitglied Konstrukteur
Beiträge: 602 Registriert: 18.04.2014 ACAD/Inventor 2018-21
|
erstellt am: 20. Dez. 2019 07:20 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen Das Problem ist, dass die weitere Regel eine Altlast ist die lokal im Dokument ist. Diese wird beim speichern des Dokuments ausgeführt und soll das erste Blatt exportieren, jedoch ist das in der Regel so nicht spezifiziert. Nachdem die externe Regel für den Blattbereich ausgeführt wurde, werden z.B. die Blätter 2-3 exportiert und dieser Blattbereich in den Export-Optionen gespeichert. Wird nun nach dem speichern des Dokuments die lokale Regel ausgeführt wird, werden nochmals die Blätter 2-3 exportiert statt das Blatt 1, jedoch unter anderem Suffix. Daher mein Gedanke in der externen Regel die Export-Optionen nach dem Export zu reseten. Beste Grüsse Raphael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
OibelTroibel Mitglied Konstrukteur
Beiträge: 602 Registriert: 18.04.2014 ACAD/Inventor 2018-21
|
erstellt am: 20. Dez. 2019 09:41 <-- editieren / zitieren --> Unities abgeben:
Ich habe es nun der einfachheitshalber so gelöst Code: oFolder = "G:\Inventor\CAD-Daten" + Mid(ThisDoc.Path,24) oDateiname = ThisDoc.FileName(False)Select Case ThisDoc.Document.FileSaveCounter Case 0 MessageBox.Show("Bitte Zeichnung zuerst speichern", "Export abgebrochen", MessageBoxButtons.OK, MessageBoxIcon.Stop) Return End Select ' Sicherstellen, dass nur .idw und .dwg Dateien als .pdf exportiert werden Select Case Right(ThisDoc.FileName(True),4) Case ".ipt" MessageBox.Show("Bauteile können nicht als .pdf exportiert werden", "Export abgebrochen", MessageBoxButtons.OK, MessageBoxIcon.Stop) Return Case ".iam" MessageBox.Show("Baugruppen können nicht als .pdf exportiert werden", "Export abgebrochen", MessageBoxButtons.OK, MessageBoxIcon.Stop) Return Case ".ipn" MessageBox.Show("Präsentationen können nicht als .pdf exportiert werden", "Export abgebrochen", MessageBoxButtons.OK, MessageBoxIcon.Stop) Return End Select oDateinameNeu = InputBox("Dateiname anpassen und bestätigen", "Dateiname überprüfen", oDateiname & "_k") If oDateinameNeu = "" Then Return End If ' Prüfen ob Zielordner vorhanden ist und allenfalls erstellen If Not System.IO.Directory.Exists(oFolder) Then System.IO.Directory.CreateDirectory(oFolder) End If ' Prüfen ob Export bereits vorhanden ist und überschreiben vom Benutzer auswählen lassen Dim oCurFile As String = oFolder & "\" & oDateinameNeu & ".pdf" Dim SheetRange As String Dim SPL As Integer Dim L1 As Integer Dim L2 As Integer If System.IO.File.Exists(oCurFile) Then frage = MessageBox.Show(oDateinameNeu & ".pdf existiert bereits. Soll diese überschrieben werden?", "Datei existiert",MessageBoxButtons.YesNo,MessageBoxIcon.Question) If frage = vbYes Then SheetRange = InputBox("Bitte gib den zu exportierenden Bereich an." & vbLf & _ "Du hast folgende Möglichkeiten:" & vbLf & " ' 1 ' , ' 2-3 ' ", "Sheet range", "2-3") If SheetRange = vbNullString Then Exit Sub SPL = InStr(SheetRange, "-") If SPL > 0 Then L1 = Val(Left(SheetRange, SPL)) L2 = Val(Mid(SheetRange, SPL + 1)) Else L1 = Val(SheetRange) L2 = Val(SheetRange) End If ThisDoc.Document.SaveAs(oFolder & "\" & oDateinameNeu & ".pdf" , True) PDFAddIn = 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 If PDFAddIn.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") = L1 oOptions.Value("Custom_End_Sheet") = L2 End If MessageBox.Show(oDateinameNeu & ".pdf wurde erfolgreich in den Ordner " & oFolder & " exportiert", "Export erfolgreich", MessageBoxButtons.OK, MessageBoxIcon.Information) oDataMedium.FileName = oFolder & "\" & oDateinameNeu & ".pdf" PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions,oDataMedium) ThisDoc.Document.SaveAs(oFolder & "\" & oDateiname & ".pdf" , True) PDFAddIn = 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 If PDFAddIn.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") = 1 oOptions.Value("Custom_End_Sheet") = 1 End If oDataMedium.FileName = oFolder & "\" & oDateiname & ".pdf" PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions,oDataMedium) Return Else If frage = vbNo Then MessageBox.Show("Export wurde abgebrochen","Export abgebrochen", MessageBoxButtons.OK, MessageBoxIcon.Stop) Return End If End If SheetRange = InputBox("Bitte gib den zu exportierenden Bereich an." & vbLf & _ "Du hast folgende Möglichkeiten:" & vbLf & " ' 1 ' , ' 2-3 ' ", "Sheet range", "2-3") If SheetRange = vbNullString Then Exit Sub SPL = InStr(SheetRange, "-") If SPL > 0 Then L1 = Val(Left(SheetRange, SPL)) L2 = Val(Mid(SheetRange, SPL + 1)) Else L1 = Val(SheetRange) L2 = Val(SheetRange) End If ThisDoc.Document.SaveAs(oFolder & "\" & oDateinameNeu & ".pdf" , True) PDFAddIn = 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 If PDFAddIn.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") = L1 oOptions.Value("Custom_End_Sheet") = L2 End If MessageBox.Show(oDateinameNeu & ".pdf wurde erfolgreich in den Ordner " & oFolder & " exportiert", "Export erfolgreich", MessageBoxButtons.OK, MessageBoxIcon.Information) oDataMedium.FileName = oFolder & "\" & oDateinameNeu & ".pdf" PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions,oDataMedium) ThisDoc.Document.SaveAs(oFolder & "\" & oDateiname & ".pdf" , True) PDFAddIn = 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 If PDFAddIn.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") = 1 oOptions.Value("Custom_End_Sheet") = 1 End If oDataMedium.FileName = oFolder & "\" & oDateiname & ".pdf" PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions,oDataMedium) Return
Edit: Als erledigt markiert [Diese Nachricht wurde von OibelTroibel am 20. Dez. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|