Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Selektion und anschließendes Suchen in Selektion

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:  Selektion und anschließendes Suchen in Selektion (1944 mal gelesen)
zizorro
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 468
Registriert: 21.02.2002

erstellt am: 17. Sep. 2004 11:27    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 zusammen,

ich w�rde gerne �ber ein Makro erreichen, dass ein User aufgefordert wird, einen HybridBody zu selektieren und in diesem HB dann alle Elemente, die einen bestimmten Suchstring im Namen haben, sucht.

Bisher sieht mein Skript so aus:

Sub CATMain()

Dim MyPart As Document
Set MyPart = CATIA.ActiveDocument

Dim Was(0)
Was(0)  = "HybridBody"

Dim UserSel As Selection
Set UserSel = CATIA.ActiveDocument.Selection
UserSel.Clear

MsgBox ("Bitte selektieren Sie den HybridBody")

Dim SelBody As CATBSTR
SelBody = UserSel.SelectElement(Was, "HybridBody w�hlen", true)

MsgBox (UserSel.Item(1).Value.Name)

UserSel.EndSelectElement

' ----------------------------- Suchen nach Namen

Dim HB As HybridBody
Set HB = UserSel

Dim Liste As Collection
Set Liste = CATIA.ActiveDocument.Selection

Liste.Clear
Liste.Search ".Name = *Suchstring_*;sel"

End Sub

Was mache ich da falsch? Das Makro bricht immer bei der Suche ab.

Gru�, zizo


[Diese Nachricht wurde von zizorro am 17. Sep. 2004 editiert.]

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

Günter K.
Mitglied



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

Beiträge: 21
Registriert: 16.08.2004

erstellt am: 17. Sep. 2004 11:55    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 zizorro 10 Unities + Antwort hilfreich

Hallo zizo,

kann das sein, dass du dich einfach verschrieben hast?
Der Aufruf der SelectElement-Funktion sollte ja wohl so aussehen, oder?

SelBody = UserSel.SelectElement(Was, "HybridBody wählen", true)

Ciao, Günter

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

zizorro
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 468
Registriert: 21.02.2002

erstellt am: 17. Sep. 2004 12: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

Hallo Günter,

uups, klar, aber das ändert nichts daran, dass das Makro bei der Search-Methode hängenbleibt.

Gruß, zizo

P.S. Habe den Ausgangs-thread entsprechend geändert.

[Diese Nachricht wurde von zizorro am 17. Sep. 2004 editiert.]

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

Andreas Isele
Mitglied
CAD System Ingenieur


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

Beiträge: 84
Registriert: 22.02.2001

erstellt am: 17. Sep. 2004 13: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 Nur für zizorro 10 Unities + Antwort hilfreich

Hallole,

Versuchs bei der Suche mal mit:

Dim CATIA As INFITF.Application
Set CATIA = GetObject(, "CATIA.Application")

Dim partDocument1 As Document
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim hybridShapeFactory1 As Factory
Set hybridShapeFactory1 = part1.HybridShapeFactory

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies

Dim HB As HybridBody
Set HB = hybridBodies1.Item(UserSel.Item(1).Value.Name)

....
keine Garantie.

Gruss
Andreas

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

zizorro
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 468
Registriert: 21.02.2002

erstellt am: 17. Sep. 2004 13:36    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 Andreas,

wenn ich das richtig versteh und die Suche sich hinter

Dim CATIA As INFITF.Application
Set CATIA = GetObject(, "CATIA.Application")

verbirgt, dann funktionierts irgendwie nicht :-(

Trotzdem danke,

Gruß, zizo

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

Günter K.
Mitglied



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

Beiträge: 21
Registriert: 16.08.2004

erstellt am: 17. Sep. 2004 14:15    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 zizorro 10 Unities + Antwort hilfreich

Hallo zizo,

ich bin's noch einmal.
Ich glaube, ich habe es einigermaßen hinbekommen:

Sub CATMain()

Dim MyPart As Document
Set MyPart = CATIA.ActiveDocument

Dim Was(0)
Was(0)  = "HybridBody"

Dim UserSel As Selection
Set UserSel = CATIA.ActiveDocument.Selection
UserSel.Clear

MsgBox ("Bitte selektieren Sie den HybridBody")

Dim SelBody As CATBSTR
SelBody = UserSel.SelectElement(Was, "HybridBody wählen", true)

Dim HB As HybridBody
Set HB = UserSel.Item(1).Value

UserSel.Clear
UserSel.Add(HB)

MsgBox (UserSel.Item(1).Value.Name)

' ----------------------------- Suchen nach Namen

Dim Liste As Selection
Set Liste = CATIA.ActiveDocument.Selection
'Liste nicht löschen!
Liste.Search "Name=*Suchstring_*,sel"

End Sub

P.S.:
Mit welchem Release arbeitest du denn?
Ab R11 ist die Funktion EndSelectElement deprecated!

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

zizorro
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 468
Registriert: 21.02.2002

erstellt am: 17. Sep. 2004 14:29    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 Günter!

Super! Klappt einwandfrei und so, wie ich mir das vorgestellt habe. Vielen Dank für die Hilfe.

Arbeite auf V5R12, da war EndSelectElement wirklich ein Problem.

Gruß, zizo

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

em Michael Kirsch
Mitglied
Teamleiter KBE Methoden & Tools


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

Beiträge: 222
Registriert: 21.10.2002

CATIA V5 R16
CATIA V5 R18
CATIA V5 R19
NX 5
NX 6
NX 7.5

erstellt am: 27. Sep. 2004 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 zizorro 10 Unities + Antwort hilfreich

Hallo zizorro,

Du wolltest doch die Suche auf den Hybrid Body eingrenzen, oder?

Tatsächlich wird in dem Makro aber der HybridBody zunächst einmal der Selection hinzugefügt. Soweit, so gut. Aber die anschließenden Suche kann nicht auf den HybridBody beschränkt sein, da das Objekt "Selection" zum "CATIA.ActiveDocument" gehört. Die Folge: Alle Elemente innerhalb des aktiven Dokuments, die das Suchkriterium erfüllen, werden einfach in die Selection geschrieben.

Ich kann keinen Bezug zu dem zuvor ausgewählten HybridBody erkennen.

Grüße,

Michael

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

www.em.ag

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