Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  Inventor VBA
  VBA iProps schreiben - Datei unsichtbar ö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
  
Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
Autor Thema:  VBA iProps schreiben - Datei unsichtbar öffnen (2523 mal gelesen)
RolandD
Mitglied



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

Beiträge: 559
Registriert: 07.01.2005

i7-9700k
32GB DDR4-RAM
Nvidia RTX 2060
SSD 970 m.2
Win10-64 (21H2)
AIP 2020.3
Dell U3417W

erstellt am: 01. Dez. 2013 18: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

Hallo,

ein kleines "Sonntagsproblem":
Ich muss die iProperties in diverse Dateien angleichen.
Da es ca. 40.000 Dateien sind (IPT und IAM) wollte ich das mit einem VBA-Makro erledigen:
- alle Pfade und Unterpfade scannen
- Datei öffnen, iProperties umsortieren
- Speichern schließen, nächste Datei.

Funktioniert bisher auch alles, nur kann ich die Datei nicht öffnen, ohne Bildschirmanzeige.
Da das Öffnen und Anzeigen rel. lange dauert (vor allem bei IAMs) will ich unsichtbar öffnen:
Hier ein kleines Testprogramm, das ein Test.ipt auf D:\ öffnet und die aktuelle Uhrzeit schreibt:

Code:
Sub iProp_Test()
'Schreiben von iProps ohne Bildschirmanzeige

    Dim oDoc As Document
    Dim fs As Object
    Dim Dateiname As String
    Dateiname = "D:\Test.ipt"
   
    Set fs = CreateObject("Scripting.FileSystemObject")
    If fs.FileExists(Dateiname) = True Then
   
        Dim oOptions As NameValueMap
        Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap
        oOptions.Value("SkipAllUnresolvedFiles") = True 'fehlende Referenzen ignorieren
       
        'unsichtbar öffnen mit false funktioniert nicht!
        Set oDoc = ThisApplication.Documents.OpenWithOptions(Dateiname, oOptions, True)
        'Set oDoc = ThisApplication.Documents.Open(Dateiname, True)
    End If
   
    Dim SysTime As String
    SysTime = Format(Time, "hh:mm:ss")
    oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Zeit").Delete
    oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Add SysTime, "Zeit"
       
    oDoc.Update  'Werte aktualisieren

    ' Save and close die Datei
    ThisApplication.SilentOperation = True  'Speichern ohne Meldungsfenster
    oDoc.Close (False)
    ThisApplication.SilentOperation = False
       
End Sub


Wenn ich
Set oDoc = ThisApplication.Documents.OpenWithOptions(Dateiname, oOptions, False)
eintrage wird gar keine Aktion ausgeführt.

Wo ist mein Denkfehler??

------------------
Gruß Roland

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

PaulSchuepbach
Moderator
Programmierer




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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 02. Dez. 2013 08:03    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 RolandD 10 Unities + Antwort hilfreich

Hallo Roland,

'OpenWithOptions' macht nur Sinn, wenn Du eine Baugruppe öffnest. Die Optionen beziehen sich dabei auf Ansichts- und Positionsdarstellung sowie Detailgenauigkeit. Bei Parts gibt's die nicht und auf die Properties haben diese auch keinen Einfluss... Macht also keinen Sinn - auch bei Assemblies nicht - diesen Weg zu gehen.
Am schnellsten ist es, die Dateien unsichtbar zu öffnen, Properties schreiben, speichern und wieder schliessen, wobei das Speichern am meisten Zeit brauchen wird...

HTH

------------------
Grüsse, Paul

Inventor-Programmierung, Inventor-Tools und Inventor API-Schulung
Online 3D-Ersatzteilkataloge
Kostenmanagement mittels NLPP Analyse

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

RolandD
Mitglied



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

Beiträge: 559
Registriert: 07.01.2005

i7-9700k
32GB DDR4-RAM
Nvidia RTX 2060
SSD 970 m.2
Win10-64 (21H2)
AIP 2020.3
Dell U3417W

erstellt am: 02. Dez. 2013 10:48    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 Paul,

Danke für deine Antwort.
Du hast vollkommen recht, die Öffnen mit Optionen brauche ich nur für IAMs, da ich bereits weiß, dass viele Verknüpfungen nicht gefunden werden.

Mein Problem ist aber das unsichtbar öffnen. Den Code habe ich nur als Test für jemanden, der erforschen will, weshalb bei unsichtbar öffnen eben keine iProperties geschrieben werden!
Es ist viel einfacher, ein IPT zu erzeugen und zu testen.
Im Code steht auch das normale öffnen.

Code:
Set oDoc = ThisApplication.Documents.Open(Dateiname, True) 'funktioniert, Datei wird aber angezeigt
Set oDoc = ThisApplication.Documents.Open(Dateiname, False) 'funktioniert nicht


Das hat aber den gleichen Fehler, dass bei unsichtbar Öffnen das iPropertie Zeit nicht geschrieben wird.

------------------
Gruß Roland

[Diese Nachricht wurde von RolandD am 02. Dez. 2013 editiert.]

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



Anzeige:Infos zum Werbeplatz >>

pitCAD Ultimate Heizung - Kälte - Sanitär - Laborbau - Netzwerk CAD APP für TGA, Elektro, Facility Management

Vereint die langjährige Erfahrung von pit-cup im Bereich der Gebäudetechnikplanung und des Facility Management zu einem durchgängigen 2D/3D CAD/BIM Planungswerkzeug, über den gesamten Lebenszyklus einer Immobilie.

RolandD
Mitglied



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

Beiträge: 559
Registriert: 07.01.2005

i7-9700k
32GB DDR4-RAM
Nvidia RTX 2060
SSD 970 m.2
Win10-64 (21H2)
AIP 2020.3
Dell U3417W

erstellt am: 02. Dez. 2013 20:35    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 Paul,

ich habe nochmals verschiedene Kombinationen getestet. Es funktioniert unsichtbar öffnen mit

Code:
Set oDoc = ThisApplication.Documents.Open(Dateiname, False)
  'hier Bearbeitung einfügen
oDoc.Save
   
' Save and close die Datei
ThisApplication.SilentOperation = True  'Speichern ohne Meldungsfenster
oDoc.Close
ThisApplication.SilentOperation = False


Aber da es Dateien aus IV2010 sind, die mit IV2014 bearbeitet werden, kommt dann das
Fenster "Datenformat hat sich geändert". Das kann nicht automatisch quittiert werden.

Somit bleibt mir nur übrig, sichtbar zu öffnen und ohne separates " oDoc.Sace " zu speichern und schließen

------------------
Gruß Roland

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