Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Leere Bodies löschen

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 Bodies löschen (1662 mal gelesen)
jotge
Mitglied
Dipl.-Ing. Maschinenbau


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

Beiträge: 21
Registriert: 03.12.2001

V5R19 + VisualStudio 2012

erstellt am: 14. Mrz. 2013 09:05    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,

ich erzeuge mit einem Powercopy einen neuen Körper in einem CATPart, das bereits einen Body mit mehreren Unterkörpern enthält (Startmodell eines Automobilherstellers). Dadurch entsteht neben dem Hauptkörper also ein zweiter Körper, der die eigentliche Geometrie enthält.

Meine Probleme sind:
1. Wie erkenne ich welcher der beiden Körper leer ist (d.h. ich muss alle "Unterbodies" finden und prüfen, ob Sie Geometrie enthalten, wenn
nicht, handelt es sich um den leeren Körper und der muss gelöscht werden
2. Problem ist, das nach dem Löschen dieses Körpers die mit Boole´schen Operationen verbauten "Unterbodies" übrig bleiben.

Eigentlich würde es mir reichen, wenn ich für jeden Körper, den ich mit Part.Bodies erhalte abfragen könnte, wer sein Vorgänger ist.

Irgendwelche Tipps?

------------------
Jochen Geschwentner
WIGE Konstruktionen
www.wige.com
_______________________________________________________________

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: 14. Mrz. 2013 10:41    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 jotge 10 Unities + Antwort hilfreich

Hallo Jochen,

ich glaube das ist gar nicht so einfach. Also rein vom Code her schon, aber es ist erst einmal viel zu schreiben, zumindest fällt mir gerade nichts Besseres ein.
Du müsstest sämtliche Bodies durchgehen. Entweder über eine Suche (wahrscheinlich das Einfachste) oder indem du die komplette Struktur, also immer die Body.Bodies durchgehst, sowie die boole'schen Operationen.

Dann müsstest Du eine Funktion schreiben und für jeden Body aufrufen, die dessen Inhalt prüft. Also .Bodies, bolle'sche Operationen, sind Shapes enthalten, etc. Sobald was drin ist, was Geometrie sein könnte, kannste schon False zurückliefern und mit dem nächsten Body weiter machen.

Liefert die Funktion True, oder was auch immer Du vergibst, zurück, so kannst Du den Body löschen.

Zusammenfassung, wie ich es machen würde:
* Funktion isEmptyBody schreiben
* Funktion liefert True zurück, wenn er leer ist
* Funktion bekommt einen Body übergeben
* Body wird geprüft ob er Shapes oder Solids enthält sobald etwas drin ist, wird False zurückgegeben und die Funktion abgebrochen
* Body wird in der Funktion geprüft ob er Kinder hat, sind welche drin, wird die Löschfunktion für die Kinder aufgerufen - ich glaub das ist gar nicht möglich
* Body wird geprüft ob er bolle'sche Operationen enthält, sind welche drin wird die Löschfunktion für die Kinder aufgerufen - sobald einer nicht gelöscht wird, ausstieg mit False
* Es wird eine Löschfunktion geschrieben, der ein Body übergeben wird, diese prüft ob der Body leer ist mit der Funktion isEmptyBody
* Es wird eine Funktion geschrieben, die die Struktur durcharbeitet und für jeden Body die Löschfunktion aufruft, da in der isEmpty-Funktion die Kinder überprüft werden, muss in dieser Mainfunktion nur auf oberster Ebene gearbeitet werden

Hoffe mit meinen wirren Gedanken lässt sich was anfangen. :-)

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