Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  DoEvents in CATVBS

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:  DoEvents in CATVBS (2650 mal gelesen)
8user8
Mitglied



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

Beiträge: 36
Registriert: 30.07.2010

Catia V5R19 x64
Visual C# 2010

erstellt am: 01. Dez. 2010 16:57    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,
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


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

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 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 8user8 10 Unities + Antwort hilfreich

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



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

Beiträge: 36
Registriert: 30.07.2010

Catia V5R19 x64
Visual C# 2010

erstellt am: 01. Dez. 2010 17:16    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

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



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

Beiträge: 36
Registriert: 30.07.2010

Catia V5R19 x64
Visual C# 2010

erstellt am: 02. Dez. 2010 19: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

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


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

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 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 8user8 10 Unities + Antwort hilfreich

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



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

Beiträge: 36
Registriert: 30.07.2010

Catia V5R19 x64
Visual C# 2010

erstellt am: 03. Dez. 2010 17:01    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,
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


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

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 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 8user8 10 Unities + Antwort hilfreich

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 >>)

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