Die Inventor FAQ wird unterstützt von:

Inventor FAQ Logo
Einsteigertipps Profitipps Probleme & Abstürze Themensammlungen Newsletter & Feed Alle Artikel Blog unterstützen
Newsletter RSS Feed Google+

25.02.2011

Mittels iLogic Zeichnung als PDF speichern (auch mehrere Blätter)

In diesem Beitrag habe ich gezeigt, wie man mittels iLogic eine Zeichnung als PDF speichern kann. Das Problem bei diesem Beispiel war, das bei Zeichnungen mit mehreren Blättern immer nur eine Seite als PDF gespeichert wurde. Ein Leser hat im Kommentar einen iLogic Quelltext gepostet, der mehrere Blätter als PDF speichert:

path_and_name = ThisDoc.PathAndFileName(False) ' without extension
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.kPrintAllSheets
'oOptions.Value("Custom_Begin_Sheet") = 2
'oOptions.Value("Custom_End_Sheet") = 4
End If
'Set the destination file name
oDataMedium.FileName = path_and_name & ".pdf"
'Publish document
PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions,oDataMedium)

image

image

Zusammen mit den MUM iLogic Autorun Tool sicherlich für den einen oder anderen nützlich.

Kommentare:

  1. Sehr guter Beitrag,

    wie löst man das ganze, wenn man nun noch jedes Blatt in einzelne *.pdf gedruckt haben möchte. Z.B. Zeichnungsname_(Blattname).pdf

    Und geht das ganze auch mit dem gleichzeitigen Speichern einer *.dwg-Datei zu lösen?

    Viele Grüße,

    AntwortenLöschen
    Antworten
    1. '------start of iLogic-------
      oPath = ThisDoc.Path
      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
      sSheetNumber = Right(oSheet.Name, sLen -lPos)

      'set PDF Options
      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") = sSheetNumber
      oOptions.Value("Custom_End_Sheet") = sSheetNumber
      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 & ".pdf"

      'Publish document
      oPDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)

      Next
      '------end of iLogic-------

      Quelle: http://inventortrenches.blogspot.de/2011/07/ilogic-to-save-pdf-files-to-new.html

      Löschen
    2. Hallo,

      hier funkioniert vieles schon perfekt und das wäre genau das was ich brauchen könnte. Inventor(2015) legt verschiedene PDF´s mit den jeweiligen Blattnamen an... Dargestellt wird bei mir in jeder PDF aber leider immer das erste Blatt. Weiß jemand Abhilfe?

      Löschen
  2. Hallo,

    leider bekomme ich mit demCode von Anonym zwar mehrere PDF jeweils mit den Blattnamen, es wird aber in jeder PDF das erste Blatt dargestellt. Weiß jemand Hilfe? Bzw. ist noch ein Fehler im Code?

    AntwortenLöschen

War der Beitrag hilfreich oder hast du eine Ergänzung dazu?
Ist noch eine Frage offen?
Ich freue mich auf deine Rückmeldung!

Related Posts Plugin for WordPress, Blogger...
Inventor FAQ Newsletter. Emailadresse: