Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Show Status von Elementen prüfen

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:  Show Status von Elementen prüfen (2835 mal gelesen)
Julenk0rt
Mitglied
Produktentwickler / Konstrukteur


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

Beiträge: 63
Registriert: 05.03.2010

Win10
Catia V5-6 Release 2016 SP5

erstellt am: 23. Mai. 2014 10:08    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 hab leider auch über die Suche noch nicht die richtige Lösung gefunden. Ich möchte über ein Makro (CATVBA bzw. CATScript) alle Bodies eines CAtParts auswählen, die sich im sichtbaren Raum befinden.
Zusätzlich möchte ich nur die Körper auswählen, die auch Volumengeometrie enthalten.

Dazu möchte ich wie folgt vorgehen:

1. Bodies des CatParts zählen
2. Schleife von 1 bis Anzahl Bodies mit Abfrage ob sichtbar und "nicht leer", wenn beides erfüllt, zur Auswahl hinzufügen

Mein Problem ist nun die Abfrage der Sichtbarkeit. Alles andere funktioniert.
Mit welchem Befehl kann ich die Sichtbarkeit eines Bodies prüfen?
(Analog zur Prüfung ob der Körper leer ist:
If CATIA.ActiveDocument.Part.Bodies.Item(i).shapes.count <> 0 Then.....)

Danke schonmal für die Hilfe

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. Mai. 2014 10:12    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 Julenk0rt 10 Unities + Antwort hilfreich

Servus
Versuche die mal über die Suche (Bearbeiten -> Suche). Dabei kann man AFAIK den Filter auf sichtbare Geometrie einschränken (und zusätzlich nur Körper, ...)
Dies sollte sich dann auch mit dem Makrorekorder aufzeichnen lassen.

Gruß
Bernd

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

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

Julenk0rt
Mitglied
Produktentwickler / Konstrukteur


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

Beiträge: 63
Registriert: 05.03.2010

Win10
Catia V5-6 Release 2016 SP5

erstellt am: 23. Mai. 2014 10: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

Hallo,

über die Suche habe ich es bereits versucht und aufgezeichnet.
Problem dabei:
Ich kann zwar alle Körper suchen, die sichtbar sind, jedoch werden dann auch die Körper ausgewählt, die "leer" sind. Genau das muss ich irgendwie vermeiden.
Ich möchte nur die Körper auswählen, die sichtbar sind und Volumengeometrie enthalten.

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. Mai. 2014 10:34    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 Julenk0rt 10 Unities + Antwort hilfreich

Servus
Du kannst doch nach der Selektion (nur sichtbare Körper) die Selektion abarbeiten und prüfen ob diese leer sind (siehe zB hier)

Gruß
Bernd

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

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

Julenk0rt
Mitglied
Produktentwickler / Konstrukteur


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

Beiträge: 63
Registriert: 05.03.2010

Win10
Catia V5-6 Release 2016 SP5

erstellt am: 23. Mai. 2014 10:45    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

Danke für den Tipp, aber ich hab noch eine andere Lösung gefunden. Ich arbeite die beiden Schritte einfach nacheinander ab.
Zunächst lasse ich eine Schleife über alle Bodies laufen und zu prüfen ob sie "leer" sind. Dabei blende ich die "leeren" Bodies aus.
Im Anschluss selektiere ich über die Suche alle Körper, die sich im Show befinden.
Zwar etwas umständlicher, als beides in einem Abwasch zu erledigen, aber es scheint zu funktionieren. Hier der Code dazu:

Sub CATmain()

Dim Anz
Dim i
Dim Sel


Anz = CATIA.ActiveDocument.Part.Bodies.Count
Set Sel = CATIA.ActiveDocument.Selection

Sel.Clear

For i = 1 To Anz
    If CATIA.ActiveDocument.Part.Bodies.Item(i).Shapes.Count = 0 Then
    Sel.Add CATIA.ActiveDocument.Part.Bodies.Item(i)
    Sel.VisProperties.SetShow catVisPropertyNoShowAttr
    Sel.Clear
    End If
Next
   
Sel.Clear

Sel.Search "(((((CATStFreeStyleSearch.BodyFeature + CATPrtSearch.BodyFeature) + CATGmoSearch.BodyFeature) + CATSpdSearch.SpdBodyRef) + CATSpdSearch.BodyFeature) & Visibility=Visible),all"


End Sub

[Diese Nachricht wurde von Julenk0rt am 23. Mai. 2014 editiert.]

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

Julenk0rt
Mitglied
Produktentwickler / Konstrukteur


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

Beiträge: 63
Registriert: 05.03.2010

Win10
Catia V5-6 Release 2016 SP5

erstellt am: 06. Jan. 2016 08: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

Ich will das Thema nochmal kurz aufgreifen.
Die Suche der Körper funktioniert in meinem Makro wie beschrieben ganz gut. Allerdings taucht von Zeit zu Zeit immer mal folgendes Problem auf:
Wenn das Part verschachtelte Bodies enthält (durch boolsche Operationen) werden auch die Körper selektiert, die mit anderen Körper durch boolsche Operationen verbaut wurden.
Ich möchte allerdings jeweils nur die Körper in der ersten Ebene selektieren.

Hat hierzu jemand eine Idee?

Gruß

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: 06. Jan. 2016 09:58    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 Julenk0rt 10 Unities + Antwort hilfreich

Servus
Dazu kannst du die Methode InBooleanOperation nutzen.
(siehe zB hier)

Gruß
Bernd

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

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