Autor
|
Thema: Punkt auf welcher Fläche? / Ebene parallel zur Fläche durch Punkt (1998 mal gelesen)
|
Effak Mitglied
Beiträge: 6 Registriert: 04.09.2009 CATIA V5R18
|
erstellt am: 04. Sep. 2009 15:29 <-- editieren / zitieren --> Unities abgeben:
Hi, Ich habe folgende Situation: Es gibt einen runden Körper, auf dem mehrere Punkte vorgegeben sind (siehe Bild). Die Punkte wurden bereits ausgewählt und stehen z.B. als CATIA.ActiveDocument.Selection zur Verfügung. Jetzt möchte ich durch jeden Punkt eine Ebene erstellen, die parallel zur Körperobefläche ist. Das Problem daran ist, dass die Oberfläche nicht bei allen Punkten die selbe ist, wie man im Vergleich des 2. und 3. Punktes sieht. Das heißt, dass ich entweder eine Möglichkeit brauche die Ebene herauszufinden, auf der der jeweilige Punkt liegt oder einen ganz anderen Weg. Problem an der Sache ist, dass ich zum Erstellen einer Ebene durch einen Punkt logischer Weise Beides benötige, aber es im Sinne der Automatisierung ja nicht zumutbar ist nach dem Übergeben aller Punkte auch entsprechende Flächen anklicken zu müssen. Vielen Dank im Voraus Zu den Anhängen: Screen.png = "Gegeben" Wunsch.png = "Gesucht" [Diese Nachricht wurde von Effak am 04. Sep. 2009 editiert.] 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: 04. Sep. 2009 15:46 <-- editieren / zitieren --> Unities abgeben: Nur für Effak
Servus Willkommen im Forum. Du könntest die Fläche im GSD mit der Option "Tangentenstegigkeit" und "Zusammenfügen" ableiten oder die entsprechenden Flächen direkt zusammenfügen (Join). Dann hättest du nur noch eine Fläche. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AndiKrue Mitglied Berater
Beiträge: 72 Registriert: 04.12.2008 Windows XP Prof x64 Edition Intel Xeon W3520 @ 2.67 GHz 8 GB RAM, Nvidia Quadro FX 1800 CATIA V5R19
|
erstellt am: 06. Sep. 2009 13:36 <-- editieren / zitieren --> Unities abgeben: Nur für Effak
Hallo, wenn das Points on Surface sind, könntest du auch aus dem Punkt die Referenzfläche auslesen und für die Plane weiterverwenden... achso dazu sei gesagt es gibt im GSD die Funktion Plane - Tangent to Surface, ich denke das ist das was du sucht. Punkt und Fläche als Refernz [Diese Nachricht wurde von AndiKrue am 06. Sep. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Effak Mitglied
Beiträge: 6 Registriert: 04.09.2009 CATIA V5R18
|
erstellt am: 06. Sep. 2009 23:38 <-- editieren / zitieren --> Unities abgeben:
Guten Abend und vielen Dank für die schnellen Antworten. Die Ebenen im Screenshot habe ich per Hand (Punkt + Oberfläche anklicken) über die Funktion "Referenzebene" mit der Konfiguration "Tangential zu Ebene" (o.ä.) erstellt. Das scheint genau die von euch beschriebene Funktion "Plane - Tangent to Surface" gewesen zu sein. Leider hatte ich ganz vergessen zu erwähnen, dass es mir konkret um die Automatisierung dieses Vorganges per VBA für sehr viele Punkte ging , da diese Ebenen in größeren Mengen benötigt werden. Wenn ich mein Skript nun für jeden Punkt ausführe, der zuvor vom Benutzer selektiert wurde (for-Schleife), benötigt die Ebenen-Funktion zur Erstellung der neuen Ebene jeweils zwei Referenzen. Den Punkt (kein Problem: CATIA.ActiveDocument.Selection.Item(i)... der Schleife) und die Ebene, auf der dieser Punkt liegt (und zu der die neue Referenzebene tangential liegt). Und genau das bekomme ich in VBA nicht hin, da die Flächen auf denen die jeweiligen Punkte liegen nicht zwingend identisch sind. Daher auch meine etwas unklar formulierte Frage in der Überschrift "Punkt auf welcher Fläche?": Es könnte ja auch eine (mir leider unbekannte) Funktion weiterhelfen, die zurückgibt, auf welcher Oberfläche sich ein Punkt befindet, womit ich jeweils beide erforderlichen Referenzen zusammen hätte um die Ebene erstellen zu können (ohne 100x per Hand Punkt und Oberfläche anklicken zu müssen). @AndiKrue: Wie genau meinst du "... aus dem Punkt die Referenzfläche auslesen ..."? Genau das suche ich ja per VBA, sodass ich diese Fläche der Ebenen-Funktion als zweite Referenz für die Erstellung der Ebene übergeben könnte. Ich weiß nur leider nicht mit welchen Befehlen, da ich erst kürzlich mit VBA unter CATIA begonnen habe. Vielen Dank für eure Bemühungen
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. Sep. 2009 18:13 <-- editieren / zitieren --> Unities abgeben: Nur für Effak
|
Effak Mitglied
Beiträge: 6 Registriert: 04.09.2009 CATIA V5R18
|
erstellt am: 09. Sep. 2009 09:30 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, vielen vielen Dank für deine schnelle und überaus ausführliche Antwort. Du hast mir sehr weitergeholfen, genau das suchte ich. Wegen irgendwelcher Fehler (Edit: Vermutlich, weil du V19 hast, ich V18) konnte ich zwar deine Beispieldatei nicht öffnen, aber das Skript hat an meinem eigenen Test-Bauteil super funktioniert. Sehr gut fand ich zudem, dass du (so wie ich auch) Wert darauf gelegt hast jeden möglichen Fehler seperat zu erkennen und bei Meldungen sowas wie "Es wurden 1 Ebenen erstellt" zu vermeiden Da ich das restliche Skript in VBA geschrieben habe, hoffe ich, dass sich das ohne Weiteres portieren lässt. Merkwürdig finde ich übrigens, dass die Ebene nur dann erstellt wird, wenn ich ohne Vorauswahl Punkte anklicke - wenn ich in dem Dialog "Es wurde festgestellt dasd Sie bereits..." mit "Ja" die zuvor selektierten Punkte übernehme, entsteht keine Ebene (auch kein Fehler), aber das soll egal sein, Hauptsache man kann überhaupt automatisch diese Ebenen erzeugen. Nochmals vielen Dank für deine Bemühungen, das hat mir sehr geholfen. Effak Edit: Gibt es eigentlich auch eine Möglichkeit das Selbe für Punkte zu machen, die durch Verscheindungen erzeugt wurden? Die Punkte haben dann z.B. den Typ "ZeroDimFeatVertexOrWireBoundaryMonoDimFeatVertex". Wenn ich im Skript nur Code: myType(0) = "ZeroDimFeatVertexOrWireBoundaryMonoDimFeatVertex"
setze, passiert ab der Auswahl überhaupt nichts mehr (keine Meldung - nichts). Aber da habe ich es mir sicherlich zu einfach gemacht.Die Abschlussmeldung per TheEnd myValidCounter, myFailCounter, oSel ist bei mir übrigens noch nie erschienen MfG Effak [Diese Nachricht wurde von Effak am 09. Sep. 2009 editiert.] 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: 10. Sep. 2009 08:09 <-- editieren / zitieren --> Unities abgeben: Nur für Effak
|
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: 10. Sep. 2009 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für Effak
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|