Autor
|
Thema: Makro - keine gespiegelten Punkte auslesen (1574 mal gelesen)
|
Muckenbatscher Mitglied Student Maschinenbau
Beiträge: 44 Registriert: 18.03.2013 CATIA V5 R19 Windows 7 64 Bit Core i7
|
erstellt am: 27. Mai. 2014 17:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich habe ein Makro in VBA geschrieben, das mir Punktkoordinaten aus einer Punktewolke (CATPart) in eine Benutzeroberfläche schreibt mittels dem Befehl GetCoordinates. Von dieser GUI aus kann ich dann die Punkte als Excel abspeichern oder andere Dinge machen... Soweit funktioniert auch alles bis auf eine Kleinigkeit: Ich hatte jetzt den Fall, dass in meiner Punktewolke neben normalen Points auch gespiegelte Punkte drin waren, die ganz normal über die Funktion "Mirror" in Catia erzeugt wurden. Dummerweise versucht das Makro auch die Mirror-Punkte auszulesen (was ich aber eigentlich garnicht will) und bricht dann ab weil es sich an den gespiegelten Punkten aufhängt. Weiß jemand wie ich unterbinden kann, dass die gespiegelten Punkte nicht mit ausgelesen werden, sondern nur die normalen? Bin hierzu im Forum nicht fündig geworden... Besten Dank! ------------------
Grüße Muckenbatscher 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: 27. Mai. 2014 17:17 <-- editieren / zitieren --> Unities abgeben: Nur für Muckenbatscher
|
Muckenbatscher Mitglied Student Maschinenbau
Beiträge: 44 Registriert: 18.03.2013 CATIA V5 R19 Windows 7 64 Bit Core i7
|
erstellt am: 28. Mai. 2014 01:20 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, Wie immer besten Dank für deine schnelle Antwort! Ich habe mir die Beiträge zu deinem Link durchgelesen. Allerdings behandelt der glaube ich nicht meine Problematik oder habe ich was wichtiges übersehen? Ich finde zumindest leider keine Antwort auf mein Problem... Ich verwende ja wie gesagt den GetCoordinates Befehl. GetCoordinates verlangt Punkte in Form von x y z Koordinaten, genau so soll es auch sein. Jetzt habe ich leider in dem Catpart wo ich die Punkte auslesen will auch noch gespiegelte Punkte drin die der Befehl GetCoordinates offensichtlich ebenfalls versucht auszulesen und dann aber abbricht. Und ich weiß nicht wie ich es unterbinden kann dass die gespiegelten Elemente garnicht erst versucht werden ausgelesen zu werden... ------------------
Grüße Muckenbatscher 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: 28. Mai. 2014 07:55 <-- editieren / zitieren --> Unities abgeben: Nur für Muckenbatscher
Servus Dann lies dir das Thema nochmal durch. Über eine Messung sollte es auch mir gespiegelten/isolierten Punkten klappen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bertel Mitglied
Beiträge: 300 Registriert: 03.04.2002 CATIA V5 R26SP3HF21 Win10 Lenovo P52 Intel Xenon 16GB Ram NVIDIA Quadro P2000 EUKLID V14 ViCADo 2015
|
erstellt am: 28. Mai. 2014 09:24 <-- editieren / zitieren --> Unities abgeben: Nur für Muckenbatscher
Hallo Muckenbatscher, Wie man gespiegelte Punkte rausfiltert kann ich dir leider nicht sagen. Hatte aber auch mal ein Problem mit GetKoordinates. Habe dann alle Punkte kopiert und als Result in ein neues Set eingefügt - dann hat die Koordinatenermittlung problemlos funktioniert. Vielleicht hilfts. Gruß Bertel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Muckenbatscher Mitglied Student Maschinenbau
Beiträge: 44 Registriert: 18.03.2013 CATIA V5 R19 Windows 7 64 Bit Core i7
|
erstellt am: 28. Mai. 2014 09:58 <-- editieren / zitieren --> Unities abgeben:
Morgen Zusammen, @Bertel: Vielen Dank für den Tipp. Selbiges hatte ich mir bereits auch ausgedacht. Problem ist nur, dass ich diese Punkte für meine Publications bzw externe Refrenzen brauche. Somit darf ich leider nicht Punkte woanders hinkopieren. @Bernd: Das mit dem Messen hatte ich schon verstanden. Problem an der Sache war nur dass ich zu arg auf meine Frage versteift war und ich nicht die Lösung zu meiner Aufgabe darin gefunden hatte =) Ich probiere mal weiter. Habe bereits vesucht die gespiegelten Punkte zu isolieren. Dann kommt wenigstens keine Fehlermeldung mehr, allerdings werden die Punkte natürlich trotzdem ausgelesen. Scheint wohl so als wäre es nicht zu verhindern, dass gespiegelte Punkte auch ausgelesen werden. ------------------
Grüße Muckenbatscher 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: 28. Mai. 2014 10:25 <-- editieren / zitieren --> Unities abgeben: Nur für Muckenbatscher
Servus jetz hab ich deine Frage erst richtig verstanden? Wie greifst du auf die Punkte zu? Ggf vor dem bestimmen der Koordinaten einfach über den TypeName der Punkte die richtigen Punkte herausfiltern. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Muckenbatscher Mitglied Student Maschinenbau
Beiträge: 44 Registriert: 18.03.2013 CATIA V5 R19 Windows 7 64 Bit Core i7
|
erstellt am: 28. Mai. 2014 11:26 <-- editieren / zitieren --> Unities abgeben:
Hi Bernd, ich greife auf die Punkte mit GetCoordinates zu. Ich habe dir hier mal nen Teil des Makros ------------------------------------------------------------------------------ 'searching points selection1.search "(CATGmoSearch.Point),all" If Err <> 0 Then MsgBox ("No Points could be found!") End If Dim coords(3) For i = 1 To selection1.Count Me.Hardpoint_Count.Caption = selection1.Count Set Element = selection1.Item(i) Set Point = Element.Value Call Point.GetCoordinates(coords) Me("Label" & i).Caption = Point.Name Me("textbox" & i & "X").Value = coords(0) Me("textbox" & i & "Y").Value = coords(1) Me("textbox" & i & "Z").Value = coords(2) Erase coords() Next i --------------------------------------------------------------- Ich lasse mir die Koordinaten der Punkte in meine grafische Oberfläche in Textboxes reinschreiben. Mein Baum der Punktewolke sieht beispielhaft so aus (siehe Anhang punktewolke) Problem ist, dass mein Makro alles Punkte zwar wunderbar rausschreibt, aber eben auch die gespiegelten Punkte versucht mit auszulesen und dann aber logischerweise abbricht, weil es ja keine "richtigen" Punkte sind....und ich würde gerne wissen wie ich es schaffen kann, dass mein Makro einfach nur Point 1,2,3 ausliest, aber Symmetry 1,2,3 in Ruhe lässt. Mein Ziel ist also nicht zu versuchen, gespiegelte Punkte auszulesen, sondern genau das Gegenteil, nämlich gespiegelte Punkte nicht auszulesen. ------------------
Grüße Muckenbatscher 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: 28. Mai. 2014 11:35 <-- editieren / zitieren --> Unities abgeben: Nur für Muckenbatscher
Servus Mein Vorschlag dazu (ungetestet): Code: 'searching points selection1.search "(CATGmoSearch.Point),all" If Err <> 0 Then MsgBox ("No Points could be found!") End If Dim coords(3) For i = 1 To selection1.Count Me.Hardpoint_Count.Caption = selection1.Count Set Element = selection1.Item(i) Set Point = Element.Value if TypeName(Point) = "HybridShapePointCoord" then Call Point.GetCoordinates(coords) Me("Label" & i).Caption = Point.Name Me("textbox" & i & "X").Value = coords(0) Me("textbox" & i & "Y").Value = coords(1) Me("textbox" & i & "Z").Value = coords(2) Erase coords() end if Next i
Gruß Bernd EDIT: Oder viel einfacherer: die Selektion einschränken Code: selection1.Search "CATGmoSearch.GSMPointCoord,all"
------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 28. Mai. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Muckenbatscher Mitglied Student Maschinenbau
Beiträge: 44 Registriert: 18.03.2013 CATIA V5 R19 Windows 7 64 Bit Core i7
|
erstellt am: 28. Mai. 2014 15:05 <-- editieren / zitieren --> Unities abgeben:
|