Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Fensterwechsel / Skizziererabfrage

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:  Fensterwechsel / Skizziererabfrage (1893 mal gelesen)
mycon
Mitglied



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

Beiträge: 58
Registriert: 14.02.2011

Catia V5R19

erstellt am: 14. Feb. 2011 23: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

Hi,

ich habe ein kleines Problem mit einem Makro an dem ich mich gerade versuche.
Ich möchte eine Geometrie von einer dxf in ein Part kopieren.
Gestartet wird das Makro vom Skizzierer aus in einem Part.
Als erstes bräuchte ich eine Prüfung ob man sich im Skizzierer befindet.
Die Prüfung ob ein Dokument geöffnet ist, und ob man sich in einem Part befindet habe ich schon geschafft, nur die Abfrage ob man sich derzeit im Skizzierer befindet bekomme ich nicht hin.

Dann würde ich gerne ganz am Anfang des Makros prüfen ob die dxf-Datei bereits existiert, falls ja soll sie gelöscht werden, damit später nicht die Frage zum Überschreiben kommt. Oder gibts hierfür eine schönere Lösung zum überschreiben einer Datei?

Dann habe ich es jetzt so weit geschafft, das ich das gewünschte in der dxf kopiert bekomme. Jetzt weiss ich aber leider nicht wie ich wieder zu dem vorherigen Document, von dem aus das Makro gestartet wurde zurück komme, die selection1.paste ausführe, dann wieder zurück zur dxf, diese schließe und vom dateisystem wieder lösche.
Am ende soll wieder mein Skizzierer im Part das aktive Dokument sein.


Ich hoffe ihr könnt mir helfen, habe mich da jetzt schon eine weile daran versucht. :/

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

mycon
Mitglied



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

Beiträge: 58
Registriert: 14.02.2011

Catia V5R19

erstellt am: 15. Feb. 2011 18:52    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

Wäre für jede Idee oder Stups in die richtige Richtung dankbar.

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

tberger
Mitglied
Application Manager CATIA V5 / V6


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

Beiträge: 1385
Registriert: 13.01.2007

WIN 7 64bit
V5R21SP3HF49
3DX/V6 R2016x

erstellt am: 15. Feb. 2011 19:04    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 mycon 10 Unities + Antwort hilfreich

Hallo mycon,

mit der Suchabfrage wärst du vieleicht über den einen oder anderen Beitrag gestolpert.

Ich linke mal auf "meinen": http://ww3.cad.de/foren/ubb/Forum137/HTML/004265.shtml#000003

Du kannst mit:


Sub CATMain()

MsgBox CATIA.GetWorkbenchId

End Sub


Zu einer gerade befindlichen Workbench dir die ID auslesen. Beim Sketcher kommt CS0WKS heraus.

Damit könntest du abfragen und über If .. Then etwas steuern:

If CATIA.GetWorkbenchID = "CS0WKS" Then ...


Und noch ein weiterer Link um Workbenches zu wechseln:
http://ww3.cad.de/foren/ubb/Forum137/HTML/001485.shtml#000001


Jetzt bist du wieder dran 

------------------
Grüße aus dem Thurgau
Thomas

+++++++++++++++++++++++++++++++++

CATIA - eine Laune der Natur ...

[Diese Nachricht wurde von tberger am 15. Feb. 2011 editiert.]

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: 15. Feb. 2011 19:13    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 mycon 10 Unities + Antwort hilfreich

Servus
Willkommen im Forum. Bitte Systeminfo ausfüllen.
Ob eine Datei existiert kannst du über fileexists des FileSystemObjects (siehe Doku "V5Automation.chm") feststellen.
Ob der Skizzierer geöffnet ist, könnte über die Abfrage der aktuellen WorkbenchId funktionieren (CATIA.GetWorkbenchId())

Gruß
Bernd

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

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

mycon
Mitglied



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

Beiträge: 58
Registriert: 14.02.2011

Catia V5R19

erstellt am: 15. Feb. 2011 21: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

Vielen Dank für den Stups 

Die Abfrage ob derzeit der Skizzierer aktiv ist klappt jetzt wunderbar.
Allerdings habe ich nach wie vor Probleme das Fenster zu wechseln.
Das Problem ist ja nicht die Workbench zu wechseln, sondern ich möchte jetzt z.b. von einer Drawing (Drawing1.dxf) wieder zu meinem Ursprungspart (Part1.CatPart) wechseln, um dort dann die Selection1.paste auszuführen.

Wenn das erledigt ist wieder zurück zur Drawing1.dxf und diese schließen.

Ich hab es mit der Catia.StartWorkbench versucht, jedoch ohne den gewünschten Erfolg.

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: 15. Feb. 2011 22:12    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 mycon 10 Unities + Antwort hilfreich

Servus
Du könntest am Anfang den Namen des Fensters auslesen. Und danach wieder mit CATIA.Windows.item("Window_Name_des_Parts") wieder zum Part springen.

Gruß
Bernd

PS: Dein dxf solltest du auch direkt nach dem Kopieren schließen können.

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

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

mycon
Mitglied



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

Beiträge: 58
Registriert: 14.02.2011

Catia V5R19

erstellt am: 15. Feb. 2011 22: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

Das will bei mir nicht funktionieren :/

Schließe ich die .dxf vorher, kann ich nichts mehr pasten.
Versuche ich einen fensterwechsel von 3D zu 3D z.b. von Produkt zu Part (nur zum testen) funktioniert es damit:

Dim winDoc As Windows
Set winDoc = CATIA.Windows
Dim winDoc1 As Window
Set winDoc1 = winDoc.Item("Part2")
winDoc1.Activate

Allerdings funktioniert es nicht, wenn ich in der .dxf bin und wieder zu meinem "Part2" möchte.
Ich versteh nur nicht wieso.
Es kommt keine Fehlermeldung oder sonst was, er wechselt "nur" einfach nicht.


Edit:
Ich hab das mal als extra Sub ausgelagtert.
Wenn ich die direkt aufrufe funktioniert es, wenn ich es im Script mache nicht.
Wie es scheint verhaspelt er sich am Ende des Makros.
Selbst wenn mein letzter befehl der Aufruf dieser Sub ist, wechselt er wieder zur dxf.
Kurzzeitig sehe ich schon das 3D, allerdings weiss ich nicht ob das durch das .close kommt und er dabei wieder zum 3D wechselt, bevor er die .dxf öffnet.

Edit2:
Wenn ich das mit hilfe von Break Points etwas verzögere, dann funktioniert der wechsel.
Also bräuchte ich ja nur eine art Wait am ende.

[Diese Nachricht wurde von mycon am 15. Feb. 2011 editiert.]

[Diese Nachricht wurde von mycon am 15. Feb. 2011 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