Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro über mehrere geöffnete Fenster laufen lassen

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
Autor Thema:  Makro über mehrere geöffnete Fenster laufen lassen (2515 mal gelesen)
Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 29. Jan. 2014 08:44    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

Einen schönen guten Morgen an alle,

ich habe ein Makro geschrieben, welches einige Componenten einer Zeichnung mit einer Excel-Tablle vergleicht.
Pro Excel-Tabelle, gibt es ungefähr 5-8 Zeichnungen.
Derzeit muss ich jede Zeichnungen in Catia öffnen:
1) 1. Zeichnung
2) Marko starten
3) Fenster auf 2. Zeichnung wechseln
4) Marko starten .... u.s.w.

Gibt es eine Möglichkeit die geöffneten Fenster von Catia wie ein Array zu durchsuchen?
Der Anfangsname der benötigten Zeichungen ist halt immer gleich.

z.b. schwarz-01 bis schwarz-07
--> Ich kann vorher nicht sagen, wieviele Zeichnungen es sein werden (soll also unbekannt sein)
--> einfach alle zeichnungen angucken, die mit "schwarz" anfangen

Ich hab über Macro-Aufzeichnung versucht etwas herauszufinden, aber das hat nicht funktioniert.

Schonmal danke für eure Hilfe im Voraus

BR
Hamlet

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 29. Jan. 2014 08:55    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 Hamlet 10 Unities + Antwort hilfreich

Servus
Dazu kannst du die Window-Collection mit einer Schleife abarbeiten. zB
Code:
Dim oWindow As Window
Dim oDoc As Document
For I = 1 To CATIA.Windows.Count
    Set oWindow = CATIA.Windows.Item(1)
    Set oDoc = oWindow.Parent
    'Mach was mit dem Dokument zB hier den Namen das Dokuments auswerten
Next
Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 29. Jan. 2014 09: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

Danke Bernd,

wie immer schnell und auf den Punkt.
Funktioniert echt klasse.  

Nur eine kleine Anmerkung, falls jmd. das Marko später einfach kompieren sollte:
In der For-Schleife muss

"Set oWindow = CATIA.Windows.Item(1)" --> "Set oWindow = CATIA.Windows.Item(I)" heißen. 

BR
Hamlet

[Diese Nachricht wurde von Hamlet am 29. Jan. 2014 editiert.]

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

Jerre95
Mitglied



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

Beiträge: 27
Registriert: 04.12.2017

CATIA V5 R24

erstellt am: 27. Dez. 2018 21:49    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 Hamlet 10 Unities + Antwort hilfreich


Fehlermeldung.JPG

 
Guten Abend,

habe diesen nützlichen Beitrag entdeckt und ein bestehendes Makro in diese Window-Collection gehängt. Leider funktioniert es nicht mehr, sobald mehrere CatParts in einer Sitzung geöffnet sind.
Die Fehlermeldung befindet sich im Anhang.
Wäre schön wenn mir jemand auf die Sprünge helfen kann.

Hier das Skript:

Sub CATMain()

'------------Schleife über alle Fenster in der Catia-Sitzung

Dim oWindow As Window

Dim oDoc As Document

For Z= 1 To CATIA.Windows.Count

Set partDocument1 = CATIA.ActiveDocument

Set selection1 = partDocument1.Selection

selection1.Search "CATGmoSearch.OpenBodyFeature,all"

Set product1 = partDocument1.GetItem("Part1")


'-----------Geo-Sets in ein Datenfeld schreiben

If selection1.Count >0 Then

Dim Datenfeld() As object  '-----------Hier der Fehler

ReDim Datenfeld(selection1.Count)

For n = 1 to selection1.Count

Set Datenfeld(n) = selection1.Item2(n).Value

Next

selection1.Clear

'-----------Schleife über das Datenfeld

For n = 1 To UBound(Datenfeld)

set Objekt = Datenfeld(n)

name=Objekt.Name

msgbox name

Next

CATIA.ActiveDocument.Close

End If

Next

End Sub

Viele Grüße

------------------
Viele Grüße,
Jerre95

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 27. Dez. 2018 22:09    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 Hamlet 10 Unities + Antwort hilfreich

Servus

Ich konnte deinen Fehler nicht nachstellen.
ggf liegt es daran dass das Objekt pro schleife neu dimensioniert wird und nicht einfach redimensioniert wird (bzw der Array zuvor gelöscht wird)
Packe mal alle Dimensionierungen nach vorne im Code.
Benötigst du das zwischenspeichern der GeoSets in einem Array? (im Moment eher nicht)
(meine Empfehlung: alle Variablen/Objekte dimensionieren und sprechende Namen verwenden (um den Code in einem halben Jahr gleich wieder verstehen zu können))

Gruß
Bernd

PS: Wo greifst du in deinem Code auf die verschiedenen Fenster zu? Du hast zwar eine Schleife greifst aber nicht auf die Fenster darin zu (Code besser strukturieren/einrücken kann da helfen das zu sehen)

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Jerre95
Mitglied



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

Beiträge: 27
Registriert: 04.12.2017

CATIA V5 R24

erstellt am: 28. Dez. 2018 14:22    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 Hamlet 10 Unities + Antwort hilfreich

Danke für die schnelle Antwort und die Empfehlung!

Code funktioniert, sobald die Dimensionierung vorne steht!

Guten Rutsch und viele Grüße!

------------------
Viele Grüße,
Jerre95

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