Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  leere Selektion definieren

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:  leere Selektion definieren (996 mal gelesen)
Machiwi
Mitglied
Student

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

Beiträge: 5
Registriert: 19.06.2012

Win 7 Professional
CATIA V5 R19 SP8

erstellt am: 23. Jul. 2012 10: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 zusammen,

ich habe folgendes Problem. Mein Makro muss mir die Anzahl der vorhandenen Flächen ausgeben. Dazu habe ich eine Suchfunktion gemacht die solange durchläuft und mitzählt, bis alle Flächen erkannt wurden und die Selektion damit leer ist. Nun weiß ich aber leider nicht, wie ich es ausdrücke, dass die Selektion leer sein muss. Hier mal mein Code:

Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim Selection1 As Selection
Set Selection1 = partDocument1.Selection

Do

A = A + 1

searchstring1 = "'Generative Shape Design'.Surface.Name='SplitSurface.'"

Selection1.Search searchstring1 & A

Loop Until Selection1.Item(1) = 0  ### --> soll solange weitersuchen, bis die Selection1 leer bleibt ###

End Sub

Hoffe ihr könnt mir weiterhelfen.

Danke.

Gruß Machiwi

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 23. Jul. 2012 11:22    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 Machiwi 10 Unities + Antwort hilfreich

Hallo,

das sieht ziemloch wirr aus. Wenn du mittels der Funktion .search suchst, dann werden alle Einträge auf die der Suchstring passt (Match) in die Collection des Suchobjekts (selection1) verschoben. Diese Kollektion (Collection) muss du mittels der Schleife durchlaufen

Beispielhaft:

selection1.Search "Generative Shape Design'.Surface.Name='SplitSurface*"
Do
  blublu
Loop Until selection1.Items.Count = 0

oder:
Dim i as Long
selection1.Search "Generative Shape Design'.Surface.Name='SplitSurface*"
For i =selection1.Items.Count to 1 Step -1
  blublu
Next i

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

Machiwi
Mitglied
Student

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

Beiträge: 5
Registriert: 19.06.2012

Win 7 Professional
CATIA V5 R19 SP8

erstellt am: 23. Jul. 2012 11: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

Hey Daniel,

ich hab deine Vorschläge mal durchprobiert. Nur leider hab ich immer bei "selection1.Items.Count" immer den Fehler "object doesn't support this property or method".
Hab ich irgendeine Deklarierung oder so vergessen?
Mein vollständiger Code lautet:

Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = part1.HybridShapeFactory

Dim parameters1 As Parameters
Set parameters1 = part1.Parameters

Dim hybridShapeSurfaceExplicit1 As hybridShapeSurfaceExplicit
Set hybridShapeSurfaceExplicit1 = parameters1.Item("SV")

Dim Selection1 As Selection
Set Selection1 = partDocument1.Selection


Selection1.Search "'Generative Shape Design'.Surface.Name=SplitSurface*"

Do
A = A + 1

Loop Until Selection1.Items.Count = 0


MsgBox A

End Sub

Danke dir!

Gruß Sebastian

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 23. Jul. 2012 12:33    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 Machiwi 10 Unities + Antwort hilfreich

Servus
AFAIR müsst es statt: Selection1.Items.Count
Selection1.Count2 heißen.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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



Konstrukteur / Ingenieur Catia V5 (all gender)

Die ALTEN Consulting Services GmbH bietet mit über 20 Jahren Branchenerfahrung ihren namhaften Kunden aus Industrie und Wirtschaft hochspezialisierte Engineering- und IT-Dienstleistungen zur gemeinsamen Realisierung von branchen- und technologieübergreifenden Lösungen an.

Kompetenz, Engagement und Leidenschaft verbinden alle unsere Mitarbeiter der ALTEN Consulting Services GmbH. Dabei ...

Anzeige ansehenKonstruktion, Visualisierung
Machiwi
Mitglied
Student

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

Beiträge: 5
Registriert: 19.06.2012

Win 7 Professional
CATIA V5 R19 SP8

erstellt am: 23. Jul. 2012 13:00    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

Hey,

ich hab das Problem gelöst. Ist zwar nicht sehr elegant aber funktioniert:


On Error Resume Next

Do

A = A + 1

searchstring1 = "'Generative Shape Design'.Surface.Name='SplitSurface.'"

Selection1.Search searchstring1 & A

Loop Until Selection1.Item(1).Value.Name = ""

MsgBox (A)


Damit überspringt er die Fehlermeldung, wenn keine Fläche mehr selektiert wird.

Aber vielen dank für eure schnelle Hilfe!!

Gruß Machiwi

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