Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Workbench-Wechsel

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:  Workbench-Wechsel (4620 mal gelesen)
mgheinz1001
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 109
Registriert: 17.03.2005

erstellt am: 09. Aug. 2006 14:18    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,

in meinem Macro muss ich mehrmals zwischen der Assembly- und der PartDesign-Workbench hin und herwechseln. Hier Teile des Codes:

For i = 0 To nCount

...

If "PrtCfg" <> CATIA.GetWorkbenchId Then
  Call oSelection.Add(oPart)
  Call CATIA.StartWorkbench("PrtCfg")  ' HIER DAS PROBLEM (s.u.)
End If

...

Call Call oSelection.Add(oProduct)
Call CATIA.StartWorkbench("Assembly")

...

next

Beim ersten Schleifendurchlauf klappt es noch. Allerdings hat er beim Zweiten schon Probleme, da die Workbench offentsichlich nicht so schnell wechselt, wie der Code abläuft. Während des Ablaufs zeigt sich das dadurch, dass er ein neues Part öffnet, obwohl die Abfrage mit 'CATIA.GetWorkbenchId' schon die richtige Workbench-ID wiedergibt (soll heißen: die gewünschte ID ist bereits eingetragen, obwohl der Wechsel noch nicht perfekt ist - damit wird die Abfrage hinfällig!). Ein 'Sleep(...)' möchte ich allerdings nur ungern einbauen.

Hat da jemand vielleicht eine Lösung für mich?

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 09. Aug. 2006 14:23    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 mgheinz1001 10 Unities + Antwort hilfreich

Frage: Warum musst du zwischen den Workbenches hin und her schalten??

Erklär mal was du in CATIA von der Funktionsabfolge mit dem Makro machen willst

Gruss Timber

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

mathias.bergundthal
Mitglied
informatiker


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

Beiträge: 153
Registriert: 03.08.2005

HP xw6000 - WXP Pro SP2 - CATIA V5 R16 SP9 - Visual Studio 2005

erstellt am: 09. Aug. 2006 14:30    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 mgheinz1001 10 Unities + Antwort hilfreich

hallo heinz,

erkläre mir mal warum du überall einen "call" vornedran schreibst...??!!

wenn es dann immer noch nicht geht
teile uns mal mit was für eine CATIA Version du benutzt und auf was du entwickelst, danke


Wegen dem sleep, also ich bin nicht drumrum gekommen. ist einfach eine Sicherheit und der User merkt nichts. ich habe bei mir 200ms eingestellt und es hat sich niemand beklagt und das Prog ist auch stabil so.


gruss, mahthias

------------------
In diesem Zeitalter der Massenkomunikation sind Verrücktheiten ansteckend.

[Diese Nachricht wurde von mathias.bergundthal am 09. Aug. 2006 editiert.]

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

mgheinz1001
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 109
Registriert: 17.03.2005

erstellt am: 09. Aug. 2006 20:26    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,

ich benutze CATIA V5R14.

Zum Aufruf mit Call:
Das ist reine Formsache, wenn ich es weglasse, löst es das Problem leider auch nicht.
Die Zeile:  ' Call Call oSelection.Add(oProduct) ' ist ein Abschreibfehler - habe hier im Forum versehentlich ein Call zu viel reinkopiert.

Zu meinem Macro:
ich durchsuche mein Root-Product nach Parts mit bestimmten Namen, um deren Position zu bestimmen. Nun kann es vorkommen, dass ein und das selbe Part mehrmals verbaut wurde (-> ein Part - mehrere Part-Instanzen). Um die Position bestimmen zu können, füge ich den Parts Punkte hinzu, um dessen Koordinaten auslesen zu können. Für den Fall, dass ich nun ein Part erwische, welches mehrmals verbaut wurde, habe ich nach längerem Probieren nur eine Lösung gefunden:

Schleifen-Anfang
-> gefundene Part-Instanz (Product) nach seinem Part durchsuchen
  (Call oSelection.Search(...))
-> wenn gefunden, Aktivierung der Part-Design-Workbench
  (hier kommt es dann ab dem zweiten Schleifen-Durchgang zu meinem   
    Problem, da der Wechsel offentichtlich nicht schnell genug abläuft)
-> Selektion der Part-Instanz, dann Aktivierung der Assembly-Workbench
-> Zuweisen des Parts der selektierten Part-Instanz
  (set oPart = oPartInstance.ReferenceProduct.Parent.Part)
-> Hinzufügen des Punktes, danach Auslesen der Koordinaten
-> Löschen des Punktes
Schleifen-Ende

Das sieht doppelt gemoppelt aus, allerdings komme ich sonst nicht an die jeweiligen Parts der gefundenen Part-Instanzen.

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

Axel.Strasser
Ehrenmitglied V.I.P. h.c.
Selbstständig im Bereich PLM/CAx



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

Beiträge: 4107
Registriert: 12.03.2001

Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!

erstellt am: 09. Aug. 2006 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 Nur für mgheinz1001 10 Unities + Antwort hilfreich

Du hast die Frage von Mathias noch nicht ganz beantwortet. Mit was entwickelst Du: CatScript/vbs, VB6 oder VB.NET ? Die Antworten unterscheiden sich eventuell.

Axel

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

mgheinz1001
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 109
Registriert: 17.03.2005

erstellt am: 09. Aug. 2006 20:40    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 entwickel mit VB6.

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 10. Aug. 2006 00: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 mgheinz1001 10 Unities + Antwort hilfreich

Hallo mgheinz1001,

aus meiner Erfahrung ist es nicht notwendig, den Workbench zu wechseln, um im Part zu arbeiten. Du mußt nur das Part über das Part-Dokument ansprechen, dann sollte die Funktionalität von Part-Design verfügbar sein.
Von der Part-Instance kommst Du mittels .ReferenceProduct.Parent zum Part-Dokument und .ReferenceProduct.Parent.Part zum Part. Part-Dokument oder Part aktivieren und schon hast du die Part-Design-Umgebung.
Wenn Du die Namen der abgearbeiteten Part-Dokumente in ein Array schreibst, kannst Du auch bei jeder Part-Instance prüfen, ob Die schon abgearbeitet ist.


mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

Jules_Vernes
Mitglied
Systemadmin


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

Beiträge: 145
Registriert: 04.10.2005

Catia V5R24SP4

erstellt am: 10. Aug. 2006 08:11    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 mgheinz1001 10 Unities + Antwort hilfreich

Guten Morgen,

ich hab das Problem auch schon öffters gehabt und hab bis jetzt immer den Anwender von Hand in die entsprechende Umgebung wechseln lassen, weil ich den Übergang vom ProductDocument zum PartDocument nicht hin bekomme(siehe Code).


Dim productDocument As ProductDocument
Set productDocument = CATIA.ActiveDocument

Dim product As Product
Set product = productDocument.Product

.........................???????
   
Dim partDocument As PartDocument
Set partDocument = ................Item("Sepp_Maier.CATPart")

Vieleicht hat jemand von euch ne Idee
Ich arbeite mit VBA und CATIA R14 SP3 HF56
Gruss Jules

[Diese Nachricht wurde von Jules_Vernes am 10. Aug. 2006 editiert.]

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

mgheinz1001
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 109
Registriert: 17.03.2005

erstellt am: 10. Aug. 2006 09:02    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

Noch mal zurück zu meinem Problem (s.o.!): wenn ich die Workbench von 'PartDesign' in 'Assembly' und dann wieder zurück wechsel, wird automatisch ein neues Part geöffnet. Grund dafür ist wahrscheinlich, dass der Code schneller abläuft als der Wechsel. Gibt es eine Möglichkeit das abzufragen?! ('CATIA.GetWorkbenchId' funktioniert nicht, da die abgefragete Eigenschaft, offensichtlich sofort gesetzt wird, ohne den Wechsel abzuwarten. Auf Sleep(...) würde ich gern verzichten)

Zur Abgrenzung: ich möchte NICHT wissen, wie ich von der Part-Instanz zu meinem Part komme - dieses Problem habe ich bereits gelöst (s.o.!). Lusilnies Lösung funktioniert bei mir nicht, da ein und das selbe Part mehrmals verbaut wurde und ich damit nicht so einfach an die verschiedenen angezeigten Parts im Strukturbaum heran komme, welche eigentlich auf ein und das selbe Part zurückgehen (s.o.!)

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

mathias.bergundthal
Mitglied
informatiker


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

Beiträge: 153
Registriert: 03.08.2005

HP xw6000 - WXP Pro SP2 - CATIA V5 R16 SP9 - Visual Studio 2005

erstellt am: 10. Aug. 2006 11:21    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 mgheinz1001 10 Unities + Antwort hilfreich

also das mit der geschwindigkeit ... ist so ein problem... wenn du sleep nicht brauchen willst dann mach doch eine schleife in der du überprüfst wo du bist und wo du sein solltest... wenn dies erreicht, führe den code weiter aus.

etwas anderes kommt mir momentan für dein problem nicht in sinn.

gruss, mathias

------------------
In diesem Zeitalter der Massenkomunikation sind Verrücktheiten ansteckend.

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

romanoir2005
Mitglied



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

Beiträge: 62
Registriert: 22.02.2005

erstellt am: 16. Aug. 2006 19:37    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 mgheinz1001 10 Unities + Antwort hilfreich

Hallo Heinz,

ich löse dieses Problem immer dadurch, dass ich nach dem Workbenchwechsel die Fensterdarstellung in CATIA umschalte; danach hat er die richtige Workbench immer erst gerafft. Die Fensterdarstellugn kannst Du leider nicht direkt über die Automatisierungsschnittstelle ansprechen, aber der Weg über "StartCommand" geht.

Hier ein Beispiel:
Catia.StartWorkbench "Assembly"
Catia.StartCommand "cascade"

Statt "cascade" kannst du auch "maximize" oder ähnliches nehmen. Manchmal flackert die Darstellung dann kurz etwas, aber Hauptsache die Workbench ist umgestellt.

Bye,
r.

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

Heini_K
Mitglied



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

Beiträge: 34
Registriert: 26.09.2006

Catia V5R14SP4/R16
HP- Unix- Workstation

erstellt am: 03. Jan. 2007 14: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 Nur für mgheinz1001 10 Unities + Antwort hilfreich

Hallo Heinz,

Auch wenn der Beitrag nen bisschen spät kommt: Hast Du schonmal versucht Dein entsprechendes Part vom Assembly aus im Design- Mode zu laden und es dann zu aktivieren? In diesem Fall erzeugt CATIA nämlich kein neues Part.

------------------
Gruß,
Matthias

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