Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Alle Dateien eines Verzeichnisses öffnen

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:  Alle Dateien eines Verzeichnisses öffnen (1015 mal gelesen)
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: 17. Okt. 2007 19:00    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

Wir möchten folgendes tun:

In einem angegebenen Verzeichnis alle Dateien der Reihe nach öffnen, als "dirty" markieren, speichern und wieder schließen.

Der Hintergrund ist die ERP-Anbindungssoftware, die beim Speichern benutzerdefinierte iProperties schreibt. Da es sich um mehrere hundert Dateien handelt ist Handarbeit ausgeschlossen.
Gibt es einen Codeschnipsel der das macht? Oder kann Inventor sowas von Haus aus? Im Aufgabenplaner konnte ich nix passendes finden.

------------------
MfG
RK

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: 17. Okt. 2007 22: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

Ich hab auf die Schnelle mal was zusammengenagelt. Nicht schön, aber selten. Vielleicht kann einer der Erfahreneren mal drüberschauen und Bescheid sagen wo sich die Zehnägel nicht hochgerollt haben (wird die Liste kürzer    )

Code:
Public Sub doertie()

' Declare the Application object
Dim oApplication As Inventor.Application

' Obtain the Inventor Application object.
' This assumes Inventor is already running.
Set oApplication = GetObject(, "Inventor.Application")

' Set a reference to the active document.
' This assumes a document is open.
Dim oDoc As Document
Set oDoc = oApplication.ActiveDocument
       
        If oApplication.ActiveDocument.DocumentType = kDrawingDocumentObject Then
        MsgBox ("In IDW nicht möglich.")
        Exit Sub
        End If
       
        If oApplication.ActiveDocument.DocumentType = kPresentationDocumentObject Then
        MsgBox ("In IPN nicht möglich.")
        Exit Sub
        End If
       
        If oApplication.ActiveEditObject.DocumentType = kPartDocumentObject Then
        oDoc.Dirty = True
       
        Else
            Dim oAsm As AssemblyDocument
            Set oAsm = ThisApplication.ActiveDocument
            ForAllComponents oAsm.ComponentDefinition.Occurrences, oDoc
           
        End If
       
End Sub


Sub ForAllComponents(oObjOccs As ComponentOccurrences, oDoc As Document)
            ' Declare the Application object
            Dim oApplication As Inventor.Application

            ' Obtain the Inventor Application object.
            ' This assumes Inventor is already running.
            Set oApplication = GetObject(, "Inventor.Application")
           
            Dim oObjOcc As ComponentOccurrence
            Dim oaeo As Object
           
            For Each oObjOcc In oObjOccs
                oObjOcc.Edit
                Set oaeo = oApplication.ActiveEditObject
                oaeo.Dirty = True
               
                If Err.Number <> 0 Then
                      Err.Number = 0
                      GoTo NEXTCOMP
                End If
               
                ThisApplication.CommandManager.[_StartCommand] 43312
NEXTCOMP:
        ForAllComponents oObjOcc.SubOccurrences, oDoc
        ThisApplication.CommandManager.[_StartCommand] 43312
            Next
   
End Sub


P.S.: Da alle Bauteile/Unterbaugruppen in einer großen Baugruppe stecken, hab ich das Öffnen der Hauptbaugruppe in Userhand verlegt. Daran hab ich vorhin gar nicht gedacht.     

P.P.S.: Wenn einer weiß wie man den Teilebrowser wieder einklappt oder ganz abschaltet solange das Makro läuft bitte Bescheid sagen.

------------------
MfG
RK

[Diese Nachricht wurde von rkauskh am 17. Okt. 2007 editiert.]

[Diese Nachricht wurde von rkauskh am 17. Okt. 2007 editiert.]

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