Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Zeichnung öffnen und ILogic ausführen per VBA

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
Autor Thema:  Zeichnung öffnen und ILogic ausführen per VBA (832 mal gelesen)
Alex30
Mitglied



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

Beiträge: 49
Registriert: 09.11.2020

ST8

erstellt am: 15. Aug. 2021 09:42    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

Hallo Leute,

auf der neuen Arbeit muss ich oft bestimmte Zeichnungen öffnen und als PDF oder DXF abspeichern. Das ist langweilig und kostet viel Zeit, deswegen wollte ich fragen, ob jemand ein VBA-Code hat, das sowas macht.
Also ich habe eine Excel-Tabelle mit mehreren Arbeitsblätten und auf dem Blatt 3 habe ich eine Liste mit Zeichnungen, die ich immer aufrufen muss und mit Hilfe von iLogic PDF und/oder DXF erzeugen muss. Ich hätte gerne ein VBA-Code/Makro, dass für mich die Liste durchgeht und alle Zeichnungen öffnet und z.b. mit iLogic die Zeichnungen als PDF in einem Ordner speichert.

Gruß
Alex

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: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 15. Aug. 2021 21:46    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 Alex30 10 Unities + Antwort hilfreich

Hallo

Den exakt passenden Code wird's wohl fertig nicht geben.
Ich würde nicht unbedingt VBA und iLogic mischen. Den Export kann man genau so gut komplett in VBA erledigen. Es ist nur recht unzuverlässig feststellbar wann der iLogic Code fertig ist, um mit dem VBA-Code fortzufahren. Wäre schon suboptimal, wenn VBA die Datei schon schließt während iLogic noch exportiert.

Es gibt auch jede Menge ungeklärte Fragen. Unter anderem:
Blatt 3 sollte besser einen eindeutigen Namen bekommen wenn möglich.
Öffnet Inventor die Dateien sichtbar und aktualisiert sie automatisch oder Rückfrage beim User?
Welche Druck- bzw. Exporteinstellungen (alle Seiten, Farbe/sw, usw.)?
Wie heißt z.B. die ini für den DXF-Export und wo liegt sie?
Was passiert im Fehlerfall? Fortfahren oder Abbrechen?
Was soll mit fehlgeschlagenen Dateien passieren?
Braucht es ein Logfile und/oder eine Statusmeldung am Ende?
usw. usw.

Massenverarbeitungen sind nur auf den ersten Blick simpel. Für den Anfang mal ein Grundgerüst für die Liste aus Excel. Wenn es komfortabler und umfassender sein soll, lohnt sich eventuell ein Blick auf Igor's FX64 Plot

Code:

Option Explicit

'Modify following options to fit your needs
Const sFullExcelFileName As String = "C:\Pfad\Zeichnungsliste.xlsx"    ' Name and Path to the excel file
Const sSheetName As String = "Zeichnungen"                            ' Name of the Excel sheet

Private Sub ImportExcelMaterials()

    Dim oApp As Inventor.Application
    Set oApp = ThisApplication
   
    Dim oDrawDoc As DrawingDocument
   
    Dim aDrawings() As Variant
    aDrawings() = ReadXLSFileIntoArray(sFullExcelFileName)
   
    Dim i As Integer
    For i = 2 To UBound(aDrawings)
        Call PrintDrawing(aDrawings(i, 1))
    Next

End Sub

Private Function ReadXLSFileIntoArray(ByVal sFileName As String) As Variant()
    Dim oExcelApp As New Excel.Application
    oExcelApp.Visible = False 'Visible is False by default, so this isn't necessary
   
    Dim oWB As Excel.Workbook
    Dim oWS As Excel.WorkSheet

    Set oWB = oExcelApp.Workbooks.Open(sFileName)
    For Each oWS In oWB.Sheets
        If oWS.Name = sSheetName Then Exit For
    Next
   
    ReadXLSFileIntoArray = oWS.UsedRange
   
    oWB.Close (False)
    oExcelApp.Quit

End Function

Private Sub PrintDrawing(ByVal sDrawing As String)

    Dim oFS As New FileSystemObject
    If oFS.FileExists(sDrawing) Then
        Dim oDrawDoc As DrawingDocument
        Set oDrawDoc = ThisApplication.Documents.Open(sDrawing)
       
        If ThisApplication.ActiveDocument.FullFileName = sDrawing Then
            Call Print2PDF(oDrawDoc)
       
            Call Print2DXF(oDrawDoc)
           
            oDrawDoc.Close (True)
        End If
       
    End If
End Sub

Private Sub Print2PDF(ByVal oDrawDoc As DrawingDocument)
    MsgBox ("Print2PDF " & oDrawDoc.FullFileName)
   
    'TODO implement PDF Export
End Sub

Private Sub Print2DXF(ByVal oDrawDoc As DrawingDocument)
    MsgBox ("Print2DXf " & oDrawDoc.FullFileName)
   
    'TODO implement DXF Export
End Sub


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

RKW Solutions GmbH
www.RKW-Solutions.com

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)2023 CAD.de | Impressum | Datenschutz