Autor
|
Thema: Nur sichtbare Flächen (4066 mal gelesen)
|
smodo1977 Mitglied
Beiträge: 263 Registriert: 28.07.2006
|
erstellt am: 11. Dez. 2006 07:41 <-- editieren / zitieren --> Unities abgeben:
|
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 11. Dez. 2006 09:34 <-- editieren / zitieren --> Unities abgeben: Nur für smodo1977
Hallo, was sind "die ausseren sichtbaren Flächen " ? Was verstehst du unter behalten? Willst du den Rest löschen? Feststellen, was sichtbar ist, ist einfach: -alle Flächen in eine Selektion -.Items der Selektion durchgehen und prüfen, ob sie sichtbar sind oder nicht, alle .Items in ein Array -Selektion löschen - bei sichtbaren (!) Flächen alle übergeordneten Elemente im Tree (GeoSets etc.) scannen und mit .add() in die Selektion zufügen und prüfen, ob sie sichtbar sind oder nicht. Gruss TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
smodo1977 Mitglied
Beiträge: 263 Registriert: 28.07.2006
|
erstellt am: 11. Dez. 2006 10:26 <-- editieren / zitieren --> Unities abgeben:
Die sichtbaren Flächen sind also nur die Aussenflächen, also Hüllflächen. Den Rest möchte ich löschen. Wenn ich deiner beschreibung richtig folgen kann, dann selektierst du alles, aber es werden doch auch die "inneren Flächen" selektiert, oder? Danke Smodo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 11. Dez. 2006 11:30 <-- editieren / zitieren --> Unities abgeben: Nur für smodo1977
Hallo, ich hatte dich falsch verstanden, deshalb die Nachfrage. Du willst also gar nicht überprüfen, was im Show bzw. Hide liegt, sondern nicht sichtbare Elemente im Sinne von "verdeckt" (weil hinter einer anderen Fläche liegend) ausfiltern? Das geht auch, aber anders und mit einer Einschränkung: - cgr erzeugen (Hüllkurve) - über das TechnologicalObject "Clashes" ein Clash (eine Kollisionsuntersuchung) erzeugen. - über die .FirstProducts & .SecondProducts der erzeugten Conflicts (vom Typ catConflictTypeClash) erhältst du die Instanzen der Bauteile, deren Flächen über eine gemeinsame Schnittmenge mit den Flächen des Cgrs verfügen. - diese kopieren oder den Rest löchen oder was du sonst tun willst Die Einschränkung: Das ganze läuft über die Strukturebene (die Instanzen), d.h. du erhälst immer nur die Info, ob sich eine (Teil-)Fläche eines Bauteil im Cgr "wiederfindet". Wenn also deine Struktur platt (= im Part) vorliegt, funktioniert die beschriebene Vorgehensweise nicht. Gruss TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
smodo1977 Mitglied
Beiträge: 263 Registriert: 28.07.2006
|
erstellt am: 11. Dez. 2006 11:56 <-- editieren / zitieren --> Unities abgeben:
|
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 11. Dez. 2006 14:17 <-- editieren / zitieren --> Unities abgeben: Nur für smodo1977
Hallo, jetzt hast du mich falsch verstanden. Über eine Kollisionsuntersuchung mit dem CGR (per Script, wie oben beschrieben) kannst du die Flächen (aus der Originalstruktur) ausfiltern, die auch im CGR (und damit in deiner "Hülle" ) enthalten sind. Und mit denen arbeitest du dann weiter (den Org Flächen, nicht dem CGR). Gruss TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
smodo1977 Mitglied
Beiträge: 263 Registriert: 28.07.2006
|
erstellt am: 11. Dez. 2006 15:18 <-- editieren / zitieren --> Unities abgeben:
|
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 12. Dez. 2006 07:42 <-- editieren / zitieren --> Unities abgeben: Nur für smodo1977
Hallo, was heisst das? So wie sonst auch. Oder ist das Problem (wie oben beschrieben), das du keine Produktstuktur sondern nur eine Datei hast? Ich habe keine Ahnung, wie Fahrzeugsitze aufgebaut sind. Ich sitze lediglich auf eben solchen. Für Fahrzeugstrukturen (Karosse) funktioniert die beschriebene Vorgehensweise. Für den Fall das sich deine Flächen nicht über die Instanzebene filtern lassen (also z.B. in einem Part liegen) weiss ich keine (einfache) Lösung (da ich nicht weiss, wie dein(e) Modell(e) aufgebaut sind. Gruss TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
smodo1977 Mitglied
Beiträge: 263 Registriert: 28.07.2006
|
erstellt am: 13. Dez. 2006 07:43 <-- editieren / zitieren --> Unities abgeben:
|
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 13. Dez. 2006 10:22 <-- editieren / zitieren --> Unities abgeben: Nur für smodo1977
Moin, das ganze geht so: -cgr erzeugen. Der cgr ist eine Hüllkurve, enthält also nur die aussenliegenden Flächen. Jene, welche du behalten möchtest. -Jetzt willst du aber die "echten" Flächen behalten, nicht den cgr. Daher dient der cgr nur zum Abgleich (da er die Info enthält, was eine aussenliegende Fläche ist) -Der Abgleich läuft über einen Clash (eine Kollisionsuntersuchung) zwischen dem cgr und allen restlichen Modellen. -Der Clash erzeugt (wenn er vom Typ catConflictTypeClash ist) Conflicts (also Konflikte), d.h. er gibt immer eine Paarung von zwei Bauteilen zurück, die kollidieren. Und zwar in Form der jeweiligen Instanz. Das ist wichtig, da ja ein Bauteil in der Struktur mehrfach vorkommen kann und du wissen musst, welche Instanz an der Kollision beteiligt ist. -Jetzt überprüfst du alle Conflict(-Paarungen) daraufhin, ob das cgr eines der beiden beteiligten Instanzen ist. Wenn ja, ist die andere am Conflict beteiligte Instanz ein Bauteil, deren Fläche eine gemeinsame Schnittmenge mit jenen des cgrs aufweist, also Teil deiner gesuchten Hüllkurve ist. -Das wars. Und wie gesagt: Ausfiltern lassen sich die Flächen nur über die Instanz des Bauteils, wenn also ein klitze-kleines Stückchen der Flächen eines Bauteils den cgr berühren, so wird die Fläche komplett berücksichtigt. Am Schluss bleibt also nicht unbedingt die "reine" Hüllkurve übrig, sondern auch noch nach innen ragende Elemente. Das lässt sich bei der beschriebenen Vorgehensweise nicht verhindern, zumal ich den Aufbau deines Sitzes nicht kenne. Man kann es auch anders rum formulieren: Weg bekommst du alle Parts, die die Hüllkurve gar nicht berühren. Das kannst du (wenn du ganz viel Zeit hast) manuell machen ober aber per Script. Die grundsätzliche Vorgehensweise ist die selbe. Und es funktioniert gut, da ich (etwas ähnliches) schon umgesetzt habe. Eine ganz andere Möglichkeit wäre folgende: -cgr erzeugen -eine Referenz zu jedem BRep (das ist die Teilfläche) einer jeden Fläche eines jeden Parts deiner Struktur erzeugen und den Abstand zum cgr ausmessen. Die Messung gibt immer den kleinsten Wert zurück, d.h. wenn die Teilfläche auf dem cgr liegt (also Teil der Hüllkurve ist), ist der Abstand = 0. -Da würdest du dann wirklich nur Flächen zurückbekommen, die auf der Hüllkurve liegen. Problem: das Erzeugen der Referenzen (.CreateReferenceFromName) dauert für jede Teilfläche ca. eine Sekunde. Das ganze also bei entsprechender Teilflächen-/Flächen-/Part-Anzahl mitunter sehr lange. Und der RAM wird massiv geknechtet. Ich weiss nicht, wie groß deine Struktur ist (Auslastung RAM). Ich habe auch hier mal was ganz ähnliches ausprobiert und bin mit Fahrzeugstrukturen (Seitenwand und so was in der Art), die etwas über 1GB im RAM benötigen nicht weit gekommen. Ich arbeite momentan noch mit 4GB RAM (3 für CATIA) und habs deswegen aufgegeben. R16 (64 bit) und 8GB RAM ist in dem Zusammenhang was wirklich feines. Da kommt Freude auf. Kannst du mit dem ganzen was anfangen? Gruss TomTom ------------------ tomtom1972 [Diese Nachricht wurde von tomtom1972 am 13. Dez. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
smodo1977 Mitglied
Beiträge: 263 Registriert: 28.07.2006
|
erstellt am: 13. Dez. 2006 10:39 <-- editieren / zitieren --> Unities abgeben:
|