Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  pdf- + stp-Export automatisieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !
Autor Thema:  pdf- + stp-Export automatisieren (223 / mal gelesen)
Roland Schröder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



Sehen Sie sich das Profil von Roland Schröder an!   Senden Sie eine Private Message an Roland Schröder  Schreiben Sie einen Gästebucheintrag für Roland Schröder

Beiträge: 13329
Registriert: 02.04.2004

AIP2013SP2.2 XPproSP2 MS-IntelliMouse-Optical SpacePilot
DellM4600 2,13GHz 2GB FxGo1400 1920x1200
am Dock Dell2711

erstellt am: 02. Mai. 2024 07:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Moin!

Ich würde gern den Export von Zeichnung und Modelldatei ein bisschen automatisieren. "Ein bisschen" heißt: nicht für ganze Baugruppen (wie fx64 plot das macht), sondern immer nur nur für jeweils ein Bauteil, dessen Zeichnung grad geöffnet ist, und das ich grad geändert habe, weswegen dann genau dafür ein neuer Export nötig ist. Dazu benutze ich bisher pdf-Creator, und für stp die Funktion "Kopie speichern unter". Dabei gibt es aber zwei Punkte, die ich gern wegrationalisieren möchte:

1.: Ich muss bisher für den stp-Export immer neu das Verzeichnis für Fertigungsdokumente ansteuern, denn die liegen aus gutem Grund getrennt von den CAD-Arbeitsdaten. Es wäre sinnvoll, diesen Pfad nur ein Mal wählen zu müssen und beim nächten Aufruf als Default zu haben.

2.: Der Dateiname der Exportdateien soll nicht (wie im CAD) nur die Bauteilnummer, sondern auch den aktuellen Revisionsindex und die Benennung enthalten (und manchmal auch das Datum). Das muss ich bisher immer alles aufwändig selber hinzufügen oder hineinkopieren, dabei stehen diese Daten in den iProperties.

Ich bin sicher, dass das möglich ist, nur: Wie aufwändig wäre es (wenn es das nicht sogar so oder so ähnlich schon gibt), so was zu erstellen? Und womit am besten? Könnte ich das (mit etwas Hilfe) selber, oder ist es besser, direkt jemanden damit zu beauftragen, der das schneller und besser kann als ich? (Ich habe ja durchaus auch schon das eine oder andere in mein VBA-File integriert, aber meine Lieblingsbeschäftigung ist das nicht.)

------------------
Roland  
www.Das-Entwicklungsbuero.de

It's not the hammer - it's the way you hit!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2471
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 02. Mai. 2024 08:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roland Schröder 10 Unities + Antwort hilfreich

Moin

Kannst du gern bei mir beauftragen.
Ich denke alle Punkte gibt es irgendwo im Netz bereits als Schnipsel. Man (damit mein ich das Forum hier) muss sie nur zusammenfügen.
Für die Zukunftsfähigkeit würde ich iLogic nehmen. Bei VBA weiß man einfach nicht wie es mittelfristig weitergeht.
Den gewählten Speicherpfad kann man entweder in die Windows Registry schreiben oder ganz einfach in eine kleine Textdatei an definierter Stelle. Damit "überlebt" er auch einen Inventor- oder Rechenrneustart.
Der Zeitaufwand dürften mit etwas Programmiererfahrung ein paar Stunden sein.

------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2471
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 05. Mai. 2024 10:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roland Schröder 10 Unities + Antwort hilfreich


RSchroeder_PDF-STEP.iLogicVb.txt

 
Moin

Ich hab man einen ersten Entwurf geklöppelt. Ich musste einige Annahmen treffen, z.B. die Optionen der Exporte und welche Properties die gewünschten Namensteile enthalten usw. Der zuletzt gewählte Zielpfad wird in "C:\Temp\path.txt" gespeichert.
Die Exportroutinen stammen aus dem überarbeiteten Code aus diesem Beitrag.
Die angehängte Datei im Verzeichnis für externe iLogicregeln speichern, die Endung txt entfernen und in der Zeichnung ausführen.

------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Roland Schröder
Ehrenmitglied V.I.P. h.c.
Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen



Sehen Sie sich das Profil von Roland Schröder an!   Senden Sie eine Private Message an Roland Schröder  Schreiben Sie einen Gästebucheintrag für Roland Schröder

Beiträge: 13329
Registriert: 02.04.2004

AIP2013SP2.2 XPproSP2 MS-IntelliMouse-Optical SpacePilot
DellM4600 2,13GHz 2GB FxGo1400 1920x1200
am Dock Dell2711

erstellt am: 05. Mai. 2024 14:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Moin!

Vielen Dank, Ralf, für die Mühe; den Code werde ich mal ausprobieren. (Und den alten Thread hätte ich auch finden können - wenn ich denn ordentlich gesucht hätte...)

Ich habe jetzt auch noch mal mit Igor gesprochen, der ja fx64-Plot gemacht hat. Der meinte, ich könnte alles Gewünschte auch damit machen, auch direkt aus der idw.

Ich habe also jetzt einiges, was ich ausprobieren kann; grad liegen aber noch paar andere Sachen an, die ich zuerst machen muss.

------------------
Roland  
www.Das-Entwicklungsbuero.de

It's not the hammer - it's the way you hit!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bluejay
Mitglied
Ingenieur


Sehen Sie sich das Profil von Bluejay an!   Senden Sie eine Private Message an Bluejay  Schreiben Sie einen Gästebucheintrag für Bluejay

Beiträge: 201
Registriert: 14.05.2007

Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400
Intel(R) Core(TM)2 Duo CPU
E6750 @2,66 GHz
3,00 GB RAM

erstellt am: 08. Mai. 2024 15:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roland Schröder 10 Unities + Antwort hilfreich

Anbei ein Code zum Anpassen: Speichert aus der Zeichnung an vorgebenen Pfad

Sub Export_PDF_DXF_Step()
Call Export_PDF
Call Export_Step

  MsgBox "PDF/Step wurde unter  -- C:\Collaboration\Exchange -- gespeichert!!"
End Sub

Sub Export_PDF()
'Reference zum Aktiven Dokument erstellen
    Dim oDocument As Document
    Set oDocument = ThisApplication.ActiveDocument

    Dim bErr As Boolean
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FilesystemObject")

    Dim ret As Variant
    Set ddoc = ThisApplication.ActiveDocument
 
  'Nachricht fall Dokument noch nicht gespeichert ist
      If ddoc.FullFileName = "" Then
        MsgBox "Bitte zuerst die Datei speichern...  "
        Exit Sub
    End If
 
  'PDF translator Add-In ansprechen
    Dim PDFAddIn As TranslatorAddIn
    Set PDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")

    Dim oContext As TranslationContext
    Set oContext = ThisApplication.TransientObjects.CreateTranslationContext
    oContext.Type = kFileBrowseIOMechanism

    'NameValueMap object erstellen
    Dim oOptions As NameValueMap
    Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap

    'DataMedium object erstellen
    Dim oDataMedium As DataMedium
    Set oDataMedium = ThisApplication.TransientObjects.CreateDataMedium

        'Iprops lesen
    'Dim oDiName As Inventor.Property
    'On Error GoTo ErrorHandler
    'Set oDiName = ddoc.PropertySets(4).Item("ET-Listen Nr.")
   
    Dim oDiName1 As Inventor.Property
    On Error GoTo ErrorHandler
    Set oDiName1 = ddoc.PropertySets(4).Item("Zeichnungsnummer")
   
    Dim oDiName2 As Inventor.Property
    On Error GoTo ErrorHandler
    Set oDiName2 = ddoc.PropertySets(4).Item("Revision")
   
    'Dim oDiName3 As Inventor.Property
    'On Error GoTo ErrorHandler
    'Set oDiName3 = ddoc.PropertySets(4).Item("Bezeichnung1")
   

    'SaveCopyAs' options einstellen
    If PDFAddIn.HasSaveCopyAsOptions(oDocument, oContext, oOptions) Then

        oOptions.Value("All_Color_AS_Black") = False
        oOptions.Value("Remove_Line_Weights") = False
        oOptions.Value("Vector_Resolution") = 4800
        oOptions.Value("Sheet_Range") = kPrintAllSheets
        'oOptions.Value("Custom_Begin_Sheet") = 2
        'oOptions.Value("Custom_End_Sheet") = 4


    'Dateinamen mit Pfad erstellen
If bErr = False Then
    'FileName = "C:\Collaboration\Exchange\" & oDiName.Value & "_" & oDiName2.Value & ".pdf"
    filename = "C:\Collaboration\Exchange\" & Replace(oDiName1.Value, ".", ".") & "_" & oDiName2.Value & ".pdf"
 
    'filename = "C:\Collaboration\Exchange\" & oDiName.Value & ".pdf"
    oDataMedium.filename = Strings.Replace(filename, "/", "_")

Else
    oDataMedium.filename = "C:\Collaboration\Exchange\" & NameSplit(oDocument.FullFileName) & ".pdf"
End If


'Dokument puplizieren
  End If
 
  Call PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)

 
Exit Sub

ErrorHandler:
bErr = True
Resume Next

End Sub

Sub Export_Step()

'Referenz zu Aktiven Dokument setzen
    Dim oDoc As Inventor.Document
    Set oDoc = ThisApplication.ActiveDocument

  Set oDef = oDoc.ReferencedDocuments.Item(1)
   
       
  'Iprops lesen
 
        Dim oProp As Property
        Dim sPropValue As String
     
        For Each oProp In oDef.PropertySets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")
        If oProp.Name = "Artikel-Nr." Then
        'If oProp.Name = "Anzeigename" Then
        'sPropValue1 = Left(oProp.Value, 12)
        sPropValue1 = oProp.Value
       
    End If
Next

        For Each oProp In oDef.PropertySets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")
        Dim sPropValue2 As String
        If oProp.Name = "Index" Then
        sPropValue2 = oProp.Value
   
    End If
Next

   
'STEP translator Add-In setzen
    Dim oSTEPTranslator As TranslatorAddIn
    Set oSTEPTranslator = ThisApplication.ApplicationAddIns.ItemById("{90AF7F40-0C01-11D5-8E83-0010B541CD80}")

    If oSTEPTranslator Is Nothing Then
        MsgBox "STEP Translater nicht aufrufbar."
        Exit Sub
    End If

    Dim oContext As TranslationContext
    Set oContext = ThisApplication.TransientObjects.CreateTranslationContext
    Dim oOptions As NameValueMap
    Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap
    If oSTEPTranslator.HasSaveCopyAsOptions(oDef, oContext, oOptions) Then
   
        'Optionen Export Step setzen
        ' 2 = AP 203 - Configuration Controlled Design
        ' 3 = AP 214 - Automotive Design
        oOptions.Value("ApplicationProtocolType") = 3
   

        oContext.Type = kFileBrowseIOMechanism

        Dim oData As DataMedium
        Set oData = ThisApplication.TransientObjects.CreateDataMedium
        'oData.filename = "C:\Collaboration\Exchange\" & sPropValue1 & ".stp"
        oData.filename = "C:\Collaboration\Exchange\" & sPropValue1 & "_" & sPropValue2 & ".stp"
       
       
                'Bestehende Versionen im Pfad l�schen
                Dim sFileName As String
                sFileName = Dir("C:\Collaboration\Exchange\" & sPropValue1 & "_" & "*.stp")
               
                Do While sFileName <> ""
                    Kill "C:\Collaboration\Exchange\" & sFileName
                    sFileName = Dir
                Loop
       
       

        Call oSTEPTranslator.SaveCopyAs(oDef, oContext, oOptions, oData)
    End If
     
       

End Sub

------------------
MFG

BlueJay

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz