Autor
|
Thema: Teilfläche aus Fläche selektieren (3475 mal gelesen)
|
richter2 Mitglied
Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 06. Jan. 2010 12:26 <-- editieren / zitieren --> Unities abgeben:
Hallo, habe mal wieder ein bzw. zwei Probleme. Die erste Frage ist dabei wohl recht einfach. 1. Ich möchte aus einer Aufmäßfläche eine Teilfläche selektieren um diese dann als Referenz für die Ableitung zu benutzen. Ich suche mit MyBody.Search ("Topology.CGMFace,sel") im Hauptkörper bereits nach allen Teilflächen. Wie kann ich aber nicht im ganzen Hauptkörper sondern nur in der Aufmaßfläche selbst nach Teilflächen suchen? Also wie funktioniert der Zugriff auf diese? (Stammbaum siehe Bild) 2. Wenn ich alle Teilfflächen selektiert habe, benötige ich nun nur eine als Referenz. Dies kann eigentlich eine beliebige Teilfläche sein außer die Flächen an den Seitenkanten. Hat jemand eine Idee wie ich bei der Auswahl einer Fläche sicherstellen kann, dass dies nicht gerade eine "Seitenkantenfläche" ist? Vielen Dank für eure Hilfe Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
richter2 Mitglied
Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 07. Jan. 2010 16:07 <-- editieren / zitieren --> Unities abgeben:
|
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 07. Jan. 2010 18:45 <-- editieren / zitieren --> Unities abgeben: Nur für richter2
Hallo Klaus, zu 1.: in der Search-Funktion kannst du mit all im gesamten Dokument und mit sel im Selektierten Bereich suchen. D.h. für dich also, du musst dafür sorgen dass deine Aufmaßfläche schon selektiert ist. Hierfür kannst du entweder den Benutzer auffordern oder per Makro. grüße Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
richter2 Mitglied
Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 08. Jan. 2010 08:29 <-- editieren / zitieren --> Unities abgeben:
Hallo Dominik, danke erstmal für deine Antwort. Das mit der Search Funktion ist mir klar. Ich weiß bloß nicht wie ich per Makro auf die Aufmaßfläche zugreifen kann bzw. diese selektieren kann. (Ich weiß das dies wohl ziemlich trivial ist...) Und hast du evtl. auch zu meiner zweiten Frage eine Idee? Vielen Dank für deine Hilfe Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 08. Jan. 2010 10:00 <-- editieren / zitieren --> Unities abgeben: Nur für richter2
Hallo Klaus, für die Selektion gibt es mehrere Möglichkeiten. Entweder per Suchfunktion nach der Aufmaßfläche suchen und diese zur Selektion hinzufügen. Oder direkt über die Struktur auf die Aufmaßfläche zugreifen (Stichwort: Objektauflösung im Makroeditor). Hierzu gibt es weitere Beiträge hier im Forum. Bezüglich der Flächen-Unterscheidung, ich meine im Forum schon mal etwas darüber gelesen zu haben, dass es möglich ist eine Fläche auf "Nachbarn" zu untersuchen. (Ohne Gewähr) grüße Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
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: 08. Jan. 2010 12:05 <-- editieren / zitieren --> Unities abgeben: Nur für richter2
Hallo Klaus, also zuerst erstellt du dir eine Selektion mit folgenden Code: Code: oSelOffset.Search "CATGmoSearch.GSMOffset,all"
.Dieser sucht dir alle Offset-Flächen und selektiert diese. Dann suchst du innerhalb dieser Selektion nach deinen Teilflächen Code: oSelFace.Search ("Topology.CGMFace,oSelOffset")
Jetzt würde ich abfragen ob der SelektionCount >0 ist. Wenn ja schreibst du alle Objekte innerhalb der Selektion in eine Collection (oder Array wenn du CATScript nutzt). Dann leerst du die Selektion und erstellst dir eine neue interaktive Selektion (oSel.SelectElement2...). Mit Hilfe dieser soll der Anwender dann die Teilfläche selektieren die als Referenz dient. Als Hinweis gibst du aus das es keine Seitenfläche sein darf (das sollte IMHO reichen). Wenn dir hie die Fehlerquelle zu hoch ist dann musst du noch dem Vorschlag von Dominik suchen (ich habe sowas allerdings noch nicht gesehen aber ich könnte mir vorstellen das es möglich ist). ------------------ 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 |
richter2 Mitglied
Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 08. Jan. 2010 12:39 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke erstmal für die Hilfe. Die Selektion aller Teilflächen in der Aufmaßfläche sollte ich nun hinbekommen. Zum zweiten Problem: Eine Interaktion mit dem Nutzer zum auswählen einer Teilfläche scheidet aus. Das ganze soll vollständig automatisert ablaufen, da dies für alle Parts eines großen Produktstammbaums erfolgen soll... Kann man den in Catia irgendwie auf die Eigenschaften der Teilflächen zugreifen? Beispielsweise hätte ja jede "Seitenkantenfläche" 4 Kanten. Aber kann ich diese Information irgendwie ermitteln? Mir ist es bisher noch nicht einmal gelungen, die Namen der Teilflächen auszulesen. Danke und Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
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: 08. Jan. 2010 12:59 <-- editieren / zitieren --> Unities abgeben: Nur für richter2
|
richter2 Mitglied
Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 08. Jan. 2010 13:12 <-- editieren / zitieren --> Unities abgeben:
Wie soll denn eine Seitenkantenfläche weniger als 4 Kanten haben? Sie hat auf jeden Fall an der Ober- und Unterfläche der Aufmaßfläche eine Kante und da die Fläche endlich ist auch "rechts" und "links" zur nächsten "Seitenkantenfläche". Diese sind als Referenz deswegen nicht möglich, da ich nach der Auswahl der Referenzfläche die abzuleitenden Flächen mit Tangentenstetigkeit fortführe ich aber nicht die Seitenkante des Volumenkörpers oder der Aufmaßfläche ableiten möchte, sondern deren Ober- oder Unterfläche (schön wäre im übrigen immer die gleiche - welche ist egal, da diese bei sehr geringen Dicken nahezu identisch sind). Zum Beispeil möchte ich also die Geometrie eines Blechteils, was als Volumenkörper oder Aufmaßfläche konstruiert wurde anschließend nur noch als Flächenelemnt vorliegen haben. Soweit verständlich? Viele Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 08. Jan. 2010 13:22 <-- editieren / zitieren --> Unities abgeben: Nur für richter2
Servus Woher kommt die Aufmassfläche? Aus einer Fläche oder aus einem Volumen? Wenn es eine Fläche wäre könntest du diese doch direkt verwenden (oder ist die Fläche geschlossen) bzw den Offset im GSD machen. Nur so eine Idee: Wenn du auf die einzelnen Teilflächen des Offset (aus PartDesign) zugreifen kannst könntest du ja die Flächen der abgeleiteten Flächen (mit Tangentenstetigkeit) vergleichen: die Größte ist mit hoher Wahrscheinlich kein die äußere Fläche. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
richter2 Mitglied
Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 08. Jan. 2010 13:39 <-- editieren / zitieren --> Unities abgeben:
Die Aufmassfläche kann aus einer Fläche oder einen Volumen kommen. Meine Lösung muss jedenfalls für beides funktionieren. Das über den Vergleich der Flächeninhalte der abgeleiteten Flächen ist zwar eine Idee, aber bei einer großen Anzahl an Teilfflächen inpraktikabel und laufzeitaufwändig. Es muss doch auch noch eine andere Möglichkeit geben eine in meinem Sinne geeignete Teilfläche automatisiert auszuwählen und als Referenz zu erstellen. Danke und Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
richter2 Mitglied
Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 08. Jan. 2010 15:23 <-- editieren / zitieren --> Unities abgeben:
Hallo, habe gerade festgestellt, dass ich mit der Methode oSelOffset.Search "CATGmoSearch.GSMOffset,all" zwar die gewünschte Fläche gar nicht mit auswählen kann. Die Fläche die ich will ist zwar als Aufmaßfläche.1 bezeichnet ist aber gar keine richtige Aufmaßfläche darstellt? Vielleicht kennt sich ja jemand mit den Symbolen von Catia aus und kann noch einmal in dem angehangenen Bild am anfang dieses Threads nachschauen und mir sagen, wie ich nur in diesem Element nach Teilflächen suchen kann. Momentan komme ich irgendwie nicht wirklich weiter... Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 08. Jan. 2010 15:35 <-- editieren / zitieren --> Unities abgeben: Nur für richter2
|
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 08. Jan. 2010 15:38 <-- editieren / zitieren --> Unities abgeben: Nur für richter2
|
richter2 Mitglied
Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 11. Jan. 2010 11:31 <-- editieren / zitieren --> Unities abgeben:
Hallo, also Problem Nummer 1 ist voresrt gelöst Der letzte Beitrag von Bernd war des Rätsel Lösung... DANKE Problem 2 existiert hingegen noch. Was ist mit deiner Idee Daniel? Gibt es die noch? Zum besseren Verständnis vielleicht noch einmal: Ich will vollständig automatisiert z.B. folgende Referenz erstellen: Set reference1 = part1.CreateReferenceFromBRepName("RSur Face Brp ThickSurface.1;2 Brp GSMOffset.23;(Brp GSMBiDim.40;%4)))));None );Cf11 ));WithPermanentBody;WithoutBuildError;WithSelecting FeatureSupport;MFBRepVersion_CXR15)", pocket1) Dabei darf die automatisiert ausgewählte Teilffläche nicht eine "Seitenkantenfläche" sein. Und der 2 Teil der Referenzangabe (in obigem Beispiel pocket1) muss ebenfalls automatisiert erstelt werden (nicht durch eine Userselektion). Im Anhang ist auch noch einmal ein kleines Bild zur Demonstration meines Problems zu sehen. @Daniel: Verstehst du jetzt wie ich auf die mindestens 4 Kanten für eine "Seitenfläche" komme ? Oder habe ich da noch einen Denkfehler drin...Und was ist eigentlich mit deiner weiteren Idee? Gibt es die noch? Vielen Dank und Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
richter2 Mitglied
Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 11. Jan. 2010 11:33 <-- editieren / zitieren --> Unities abgeben:
Die Smielies in der Referenz sind natürlcih Blödsinn. Aber was da eigentlich stehen soll kennt ihr sicherlich alle. Aber die automatisierte Bildung des BRepNamens ist sicher auch nicht das größte Problem und gelingt mir im wesentlichen auch bereits... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
richter2 Mitglied
Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 20. Jan. 2010 15:32 <-- editieren / zitieren --> Unities abgeben:
Nur mal so zur Info. das Problem existiert immer noch. Also Ideen, Anmerkungen, Fragen sind jederzeit herzlich willkommen. Insbesondere würde mich ja noch die Idee von Daniel interessieren. Danke und Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
richter2 Mitglied
Beiträge: 81 Registriert: 21.10.2009
|
erstellt am: 18. Feb. 2010 09:48 <-- editieren / zitieren --> Unities abgeben:
Schade das für dieses Thema niemnad mehr eine Idee hat. Gelöst habe ich es derzeit noch nicht richtig zufriedenstellend. Zwar kann ich Seitenkantenfläche - fachmännisch Stirnflächen bei der Auswahl auschließen, ob eine Teilfläche aber oben oder unten liegt erkenne ich noch nicht. Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fmueller Mitglied Student
Beiträge: 9 Registriert: 26.03.2013 Win 7 Enterprise CATIA V5 R21
|
erstellt am: 18. Sep. 2013 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für richter2
Hallo, das Thema ist zwar etwas älter, aber ich hänge aktuell an einem sehr ähnlichem Problem fest. Ich versuche auch von einem Volumenkörper die Teilflächen zu selektieren, jedoch komme ich nicht mit den hier beschriebenen Methoden zum Ziel. Mit
Code: Dim sel0 As Selection Set sel0 = CATIA.ActiveDocument.Selection sel0.Clear sel0.Add body1
erstelle ich eine Selektion, die den Hauptkörper enthält. Wenn ich jetzt folgende suche starte:
Code: Sel1.Search ("Topology.CGMFace,sel0")
Dann ist die Suche widererwartens nicht auf die erste Selektion beschränkt, sondern trotzdem auf das ganze Dokument (bedeutet für meinen Fall, dass alle möglichen Hilfsebenen mitausgewählt werden, was nicht in meinem sinn war.) Kann mir jemand sagen was ich falsch mache? MfG Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 18. Sep. 2013 12:02 <-- editieren / zitieren --> Unities abgeben: Nur für richter2
Servus Der Suchstring sollte heißen: Code: Sel1.Search (""Topology.CGMFace,sel"
"sel" ist hier nicht der Namen der Selektion sonder ein fester "Schalter" (zb auch all, ...) Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fmueller Mitglied Student
Beiträge: 9 Registriert: 26.03.2013 Win 7 Enterprise CATIA V5 R21
|
erstellt am: 18. Sep. 2013 12:32 <-- editieren / zitieren --> Unities abgeben: Nur für richter2
Zitat: Original erstellt von bgrittmann: Servus Der Suchstring sollte heißen:Code: Sel1.Search (""Topology.CGMFace,sel"
"sel" ist hier nicht der Namen der Selektion sonder ein fester "Schalter" (zb auch all, ...)Gruß Bernd
Vielen Dank, hat sofort geklappt
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |