Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Makro zum Export nach DXF oder STP

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:  Makro zum Export nach DXF oder STP (1890 mal gelesen)
themechanicalman
Mitglied


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

Beiträge: 1
Registriert: 20.01.2015

Inventor 2014 SP2

erstellt am: 20. Jan. 2015 18:19    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 Forum,

ich versuche mich an meinem ersten Makro.
Ziel: Alle geöffneten Dateien sollen in ein gemeinsames Verzeichnis exportiert werden.
IPT-Dateien sollen als STP exportiert werden.
IDW-Dateien sollen als DXF exportiert werden.

So weit ist mein Makro:

Code:
Sub exportToDesktop()
Dim oDoc As Document
Dim dDoc As DrawingDocument
Dim fso As Object
Dim ret As Variant
Dim FilenameLength As Integer
Dim FilenameExtension As String
Dim iDot As Integer


For Each oDoc In ThisApplication.Documents.VisibleDocuments

    ' Abfrage auf Dokumenttyp. Siehe auch http://adndevblog.typepad.com/manufacturing/2013/01/inventor-document-sub-types.html
    ' Ich versuche "Quick-and-dirty" die Erkennung über die Dateiendung.
    ' If oDoc.DocumentType = kDrawingDocumentObject Then
   
        Set fso = CreateObject("Scripting.FilesystemObject")
        Call oDoc.Activate
        Set dDoc = ThisApplication.ActiveDocument
        If dDoc Is Nothing Then Exit Sub
       
            FilenameLength = Len(Trim(dDoc.FullFileName))   ' Anzahl der Zeichen des Dateinamens
       
            If FilenameLength > 0 Then  ' Trivial-Abfrage ob Dateiname vorhanden ist
           
                iDot = InStrRev(Trim(dDoc.FullFileName), ".")   ' Anzahl der Zeichen vor dem Punkt
                FilenameExtension = Right(Trim(dDoc.FullFileName), FilenameLength - iDot)   ' Zeichen hinter dem Punkt, also Dateiendung
           
                If FilenameExtension = "idw" Then
                ' Dateiendung ist idw: Export als DXF
                    outFile = "[...Pfad...]" & fso.GetBaseName(dDoc.FullFileName) & ".dxf"
                    dDoc.SaveAs outFile, True
                   
                ElseIf FilenameExtension = "iam" Or FilenameExtension = "ipt" Then
                ' Dateiendung ist iam oder ipt: Export als STP
                    outFile = "[...Pfad...]" & fso.GetBaseName(dDoc.FullFileName) & ".stp"
                    dDoc.SaveAs outFile, True
                End If
           
            Else
                MsgBox "Erst alles Speichern", vbInformation
                Exit Sub
            End If
    ' End If
Next

End Sub


Wenn ich nun eine IDW-Datei öffne, dann wird eine DXF-Datei exportiert. Soweit also alles prima.

Wenn ich aber eine IPD-Datei öffne, bleibt die Schleife an Zeile

Code:
Set dDoc = ThisApplication.ActiveDocument
hängen und gibt den Fehler "Laufzeitfehler '13': Typen unverträglich" aus.

Kann mir jemand weiter hier helfen??

Viele Dank im Voraus!

[Diese Nachricht wurde von themechanicalman am 21. Jan. 2015 editiert.]

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

BernoAn
Mitglied



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

Beiträge: 164
Registriert: 16.01.2014

erstellt am: 21. Jan. 2015 10:05    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 themechanicalman 10 Unities + Antwort hilfreich

Hallo

Bei einer IPT geht natürlich "Drawing Document" nicht.

Code:

Dim dDoc As PartDocument

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

axi92
Mitglied
Konstrukteur


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

Beiträge: 685
Registriert: 20.02.2010

Inventor 2014 64bit SP2
Vault Basic 2014 64bit SP1
HP Z200
Win 7 64bit
16GB RAM
CPU: i5 3,2GHz
GPU: Nvidia Quadro K600

erstellt am: 22. Jan. 2015 11:32    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 themechanicalman 10 Unities + Antwort hilfreich

Du musst natürlich immer abfragen ob der Export auch für den aktiven Dokumenttyp passt.

Das bringt zb das Sub ab wenn das aktive Dokument (das was du offen hast) keine Zeichnung ist.

Code:
If ThisApplication.ActiveDocument.DocumentType <> kDrawingDocumentObject Then Exit Sub

------------------
Grüße aus Wien
Philipp
http://black-evolution.de/

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