Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  CAA Selektions Problem

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:  CAA Selektions Problem (1892 mal gelesen)
Templer
Mitglied
System Engineer


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

Beiträge: 141
Registriert: 24.01.2003

erstellt am: 23. Aug. 2011 16: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

Also ich kann mir jetzt keinen reim mehr machen auf folgendes PRoblem:

Ich habe Testweise ein simples selektions makro gebastelt.

Code:
Sub CATMain()
        Dim Doc As Document
        Set Doc = CATIA.ActiveDocument
 
        Dim select As Selection
        Set select = Doc.Selection
   
        MsgBox select.Item2(1).Type   
End Sub

Wenn ich das Catscript über RUN ausführe funktioniert es einwandfrei.
Binde ich es aber über eine CAA Toolbar ein>>
Bleibt Catia stehen (kein absturz) man kann ab nun alle icons anklicken und sie werden nur orange. Als ob Catia den Baum nicht erkennen würde man kann im Baum selbst nichts anklicken und bekommt somit keinen Wert zurück.
Ich habe das Problem offenbar immer dann wenn ich den user anweise etwas zu selektieren, egal in welchen macro auch immer.
In den Catia Logfiles selbst steht nichts, auch in dem tracefile nicht. Es wird nur der aufruf des macros mitgeloggt aber das wars dann auch.
Eine umgehung hatte ich mir auch schon überlegt.
Ein Mini script in die CAA Toolbar einbinden und das Macro über das Mini script starten, fehlanzeige.

Hatte jemand schon mal diesen effekt mit CAA??

PS:
Egal ob CATScript oder CATVba immer das selbe

------------------
Non in omnes omnia conveniunt

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: 23. Aug. 2011 19:54    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 Templer 10 Unities + Antwort hilfreich

Hallo Templer,

ich habe zwar nicht dein Problem, welches du schilderst, aber mit deinem Code bekomme ich erst gar nichts zum Laufen (Kompilierungsfehler, "Description: Bezeichner erwartet; Statement: Dim select; Line: 5; Column: 12").

Ändere ich hingegen das select auf selection ab, läuft es bei mir:

Sub CATMain()
        Dim Doc As Document
        Set Doc = CATIA.ActiveDocument
 
        Dim selection As Selection
        Set selection = Doc.Selection
   
        MsgBox selection.Item2(1).Type   
End Sub

Wenn ich etwas vorselektiere und danach das Makro über ein zugewiesenes Icon in einer neu erstellten Toolbar klicke, kommt damit der Type als Box-Nachricht wie erwartet hoch.

Läuft also in V5R19SP5. Womit versuchst du es?

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

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

CATIA - eine Laune der Natur ...

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

Templer
Mitglied
System Engineer


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

Beiträge: 141
Registriert: 24.01.2003

erstellt am: 24. Aug. 2011 07: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


problemCAA.JPG

 
Hallo
Ja du hast recht, mein code sieht so aus wie bei dir.
Ich habs nur hier schnell reingetippt 
Die eigentlichen Scripte sind sowieso größer.
In diesem Beispiel geht es mir ja nur darum, dass ich sowie eine Selektion ausgeführt werden soll über die CAA Toolbar zum stehen komme.
Wie gesagt, führe ich das Macro über Tools>Macro>Run aus....funktionieren alle einwandfrei
Ein Bild hab ich dazugetan um die auswirkung besser zu sehen.
Die Toolbar wurde nicht auf dem herkömmlichen weg erstellt wie es ein benutzer machen würde, also "Tools > Customize"
Über den weg würde es auch normal funktionieren...Nur CAA macht hier das Problem
Catia V5R19SP03HF83
Aber gleiches Problem mit R17 oder 18...
Ich nehme fast an, dass hier irgendeine Runtime von Windows gewaltig reinpfuscht...kann es aber nicht verifizieren, da keine Logfiles herauskommen

------------------
Non in omnes omnia conveniunt

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

Templer
Mitglied
System Engineer


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

Beiträge: 141
Registriert: 24.01.2003

Win 7, Catia V5 R19,22,23, Enovia VPM 1.6, Enovia 3dcom 19, Enovia V6 2013x, Catia V6 2013x

erstellt am: 24. Aug. 2011 14:54    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

Also mittlerweile habe ich folgendes  herausgefunden:
WEnn man über CAA Toolbars geht, beißt sich die Zeile  InputObjectType(0) = "Body"

Führe ich das Macro so aus, steckt Catia

Code:
Sub CATMain()
    On Error Resume Next

    Dim oDocument As Document
    Set oDocument = CATIA.ActiveDocument
   
    Dim oselection As Selection
    Set oselection = oDocument.Selection

MsgBox "Please select the Body to calculate"

Dim InputObjectType(0)
    InputObjectType(0) = "Body"
     
      Status = oselection.SelectElement2(InputObjectType, "Select a Body", False)
      If (Status = "Cancel") Then
        MsgBox "Macro abortet"
        Exit Sub
      Else
MsgBox oselection.Item2(1).Type
  end if
End Sub


Führe ich das Macro so aus, funktioniert Catia

Code:
Sub CATMain()
    On Error Resume Next

    Dim oDocument As Document
    Set oDocument = CATIA.ActiveDocument
   
    Dim oselection As Selection
    Set oselection = oDocument.Selection

MsgBox "Please select the Body to calculate"

Dim InputObjectType(0)
    'InputObjectType(0) = "Body" (Auskommentiert)
     
      Status = oselection.SelectElement2(InputObjectType, "Select a Body", False)
      If (Status = "Cancel") Then
        MsgBox "Macro abortet"
        Exit Sub
      Else
MsgBox oselection.Item2(1).Type
  end if
End Sub



------------------
Non in omnes omnia conveniunt

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: 24. Aug. 2011 17: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 Templer 10 Unities + Antwort hilfreich

Hallo Templer,

gib mir mal mehr Input. :-)

Also, das habe ich verstanden:

Du hast ein simples Makro, welches die Selection verwendet.
Dieses Makro ist ein CATVBA.
Im Makro-Modus (Interpreter) vom CATIA über Tools --> Macro --> Macros läuft es.
Nun baust Du ein CAA, welches eine Toolbar enthält, welche wiederum über einen Command das Makro ausführt und dann wird Dein CATIA unbrauchbar.

Zunächst einmal, was passiert, wenn Du <ESC> zweimal hintereinander drückst, wenn CATIA in diesem Zustand ist?

Dann wüsste ich gern wie Du das Makro in ein CAA eingebunden hast, denn ich denke hier wurde etwas vergessen, nicht im Makro selber.

Stimmt der Input "Body" eigentlich oder hat die Klasse einen anderen Namen?

Hast Du mal Messageboxen eingebaut um die genaue Stelle zu finden, oder kannst Du das makro im Debugger durchstep'en, wenn es über die Toolbar gestartet wird?

Und damm zum Schluss, was Du bei Makros eben machen musst, wenn Du Variablen an eine Schnittstelle übergibst: Setz die Selection auf den Typ Object also

Code:

Dim oselection As Object

Was auch noch sein könnte: CAA hat einen eigenen Namensraum, wenn Du die entsprechenden Module klar angribst, also INFTITF.Document und so, dann vermeit man überschneidungen.

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

Templer
Mitglied
System Engineer


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

Beiträge: 141
Registriert: 24.01.2003

erstellt am: 25. Aug. 2011 08: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
Also das MAcro ist eigentlich schon wesentlich größer.
Ich habe nur den Teil am Anfang herausgenommen, der das Problem verursacht und als Output nur eine Msg Box gemacht anstatt der restlichen funktion.

Wenn ich 2x Esc drücke, passiert nichts. Catia steht weiterhin und verhält sich wie am Bild.
Der Input Body stimmt, weil ja die Msg Box mir auch den Wert "Body" liefert (Item2(1).Type)
In diesem Fall habe ich das Macro auf ein einfaches Catscript reduziert also nicht VBA.
Was ansich aber egal ist, da sich der Code in beiden Fällen gleich verhält.
Die MSg Box taktik hatte ich schon probiert, bringt aber nichts.
Auf die Fehlerhafte Zeile bin ich gestoßen, nachdem ich das Macro schritt für schritt neu aufgebaut hatte.
Das Problem tritt genau an der Stelle auf:

Code:
InputObjectType(0) = "Body"

kommentiere ich sie aus, funktioniert es.
Debuggen über die Toolbar, wüsste ich nicht wie. Im VB Editor nützt das debuggen nichts, da ja das MAcro ohne toolbar wunderbar funktioniert

CAA wurde von einem anderen erstellt, ich muss nur die icons liefern und mein Macro in einem Configfile eintragen.
Was müsste ich da genau nachfragen?

DAs Configfile:
MagnaMacroConfigFile
Zeile: G:\adm\tk\das\v5\all\makros\ABMASSE select_test_select.CATScript

Environment:

Code:

CAAPath=G:\adm\tk\das\v5\all\msf\CAAToolbar\1.2\R19\intel_a
CATMsgCatalogPath=%CATMsgCatalogPath%;%CAAPath%\resources\msgcatalog
CATDictionaryPath=%CATDictionaryPath%;%CAAPath%\code\dictionary
CATDLLPath=%CATDLLPath%;%CAAPath%\code\bin
CATGraphicPath=%CATGraphicPath%;%CAAPath%\resources\graphic\icons
PATH=%PATH%;%CAAPath%\code\bin
MagnaMacroConfig=%CAAPath%\..\..\MagnaMacroConfigFile


Wie ich die Selection als Object einfüge wie bei dir beschrieben, ändert sich auch nichts.
Gleiches Verhalten.

Das mit dem Namesraum habe ich nicht ganz verstanden, was muss ich da genau tun?

------------------
Non in omnes omnia conveniunt

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: 25. Aug. 2011 14: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 Nur für Templer 10 Unities + Antwort hilfreich

Wenn das CAA nicht von euch kommt, dann würde ich mich an den Hersteller wenden.

Was wir noch probieren können: CStr("Body") und eventuell mit einem Set davor.

Was auch manchmal passiert bei solchen Sachen (mehrere Sprachen) ist dass die Arrays plötzlich nicht bei 0 sondern bei 1 anfrangen, also versuch mal ein größeres Array.

Dass es genau in der Zeile InputObjectType(0) = "Body" abschmiert ist schon komisch.

Debuggen und so funzt nicht, wenn ihr den Code nicht habt.

Ansonsten gehen mir langsam die Ideen aus. :-(

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