Autor
|
Thema: DoEvents in CATVBS (2650 mal gelesen)
|
8user8 Mitglied
Beiträge: 36 Registriert: 30.07.2010 Catia V5R19 x64 Visual C# 2010
|
erstellt am: 01. Dez. 2010 16:57 <-- editieren / zitieren --> Unities abgeben:
Hallo, dieser DoEvents Befehl ist fürs VBA anscheinend sehr nützlich. Kann man sowas auch in einem VB Script realisieren oder gibt es keine Objekte oder Methoden mit denen man diese Funktion umsetzen kann? Das Problem dahinter: Im VB-Script with Arguments kann man keine Userselektion (SelectElement..) nutzen. Also arbeite ich an einem Workaround, das könnte etwa so aussehen: Dim sel As Selection Set sel = CATIA.ActiveDocument.Selection sel.Clear CATIA.Interactive = True MsgBox "selektiere was" Do While sel.Count2 = 0 DoEvents Loop MsgBox sel.Item(1).Type nur leider kennt das VBScript das DoEvents nicht. Lässt sich das irgendwie realisieren? Oder gibt es doch eine Möglichkeit die Methode "SelectElement.." zu nutzen? Wobei allerdings auf das Macro mit Argumenten nicht verzichtet werden kann. Danke für eure Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 01. Dez. 2010 17:03 <-- editieren / zitieren --> Unities abgeben: Nur für 8user8
Hallo 8user8, sorry, ich habe leider nicht ganz verstanden, warum SelectElement2() nicht funktionieren sollte. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
8user8 Mitglied
Beiträge: 36 Registriert: 30.07.2010 Catia V5R19 x64 Visual C# 2010
|
erstellt am: 01. Dez. 2010 17:16 <-- editieren / zitieren --> Unities abgeben:
Wenn diese Methode im "Macro with Arguments" verwendet wird bekomm ich die Fehlermeldung: "In macro with arguments, the method CATIA.Select.SelectElement is not supported on NT and UNIX, and the method InpuBox is not supported on UNIX." oder bin ich mit dieser Meldung alleine? ich nutze V5R19. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
8user8 Mitglied
Beiträge: 36 Registriert: 30.07.2010 Catia V5R19 x64 Visual C# 2010
|
erstellt am: 02. Dez. 2010 19:09 <-- editieren / zitieren --> Unities abgeben:
So, hier bin ich nochmal. Meine Warteschleife konnte ich ein wenig anpassen, dabei triit allerdings das nächste Problem auf, hier die Schleife: dim sel as selection set sel = catia.activedocument.selection Dim start, stopp, wait As Integer wait = 1 Do While sel.Count2 = 0 start = Timer Do Catia.Interactive = true <----funktioniert leider nicht stopp = Timer Loop Until wait > 1 Loop Gibt es eine Möglichkeit während die Schleife läuft die Interaktion, also in meinem Fall eine Elementauswahl, zu aktivieren?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 03. Dez. 2010 14:21 <-- editieren / zitieren --> Unities abgeben: Nur für 8user8
Ich verstehe irgendwie nicht so ganz, wo die Probleme liegen, was nicht geht und vor allem was Du erreichen möchtest. Was nicht heißt, dass Du's falsch erklärt hast, aber ich brauche es wahrscheinlich noch einmal mit anderen Worten und mit einem klaren Code-Kontext. Ich vermute jetzt einfach einmal, obwohl davon nix aufgeführt ist, dass Du SelectElement2() von einem Objekt der Klasse Selection aufgerufen hast, statt von einem Objekt der Klasse Object. Sprich: DIM die Selection einfach einmal As Object. Dann zur Interaktion. Diese mit DoEvents, oder was möchtest Du genau? SelectElement2 ist doch die Elementauswahl. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
8user8 Mitglied
Beiträge: 36 Registriert: 30.07.2010 Catia V5R19 x64 Visual C# 2010
|
erstellt am: 03. Dez. 2010 17:01 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für deine Mühe und den Versuch mir zu folgen. Was ich möchte: selectelement2 in einem 'Macro mit Argumenten' verwenden, damit das Macro nach dem Instanziieren in meiner PowerCopy bleibt. Die Deklaration sollte passen: advice = "was zu selektieren ist" MsgBox (advice) Dim activedoc 'As Object Set activedoc = CATIA.ActiveDocument activedoc.Selection.Clear activedoc.Selection.SelectElement2 filter, advice, False Das funktioniert ja auch in einem CATScript, nur leider bekomme ich, sobald ich es im VB Script (also Makro mit Argumenten aus der Knowledgeware) verwende, die oben genannte Fehlermeldung. wobei es keine Rolle spielt welche Selectelement Methode verwendet wird, Catia bricht immer mit dieser Fehlermeldung ab. Entweder ich bekomme die SelectElement2 Methode in meinem Script zum laufen (aber wie?) oder ich schaffe es das Macro als Catscript in die Powercopy zu schmuggeln (Achja, wie?) oder ich brauche einen Workaround um die Methode SelectELement2? Der Code Schnipsel von oben lässt Catia warten, bis ein Element in der Selektion auftaucht, aber ich habe leider keine Möglichkeit der Interaktion (also Element auswählen) mit Catia. Hast du dazu Ideen oder Anregungen? Ich wünsch allen die das noch lesen ein schönes Wochenende. GRüße [Diese Nachricht wurde von 8user8 am 03. Dez. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 06. Dez. 2010 17:21 <-- editieren / zitieren --> Unities abgeben: Nur für 8user8
Ohh, ich dachte es ging um CATVBS. In der Knowledgeware hat man kein SelectElement2 zur Verfügung. Die Meldung ist völlig korrekt. Ist eine der vielen Restriktionen von Dassault, damit man CATIA nicht nutzen kann. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|