Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro - keine gespiegelten Punkte auslesen

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:  Makro - keine gespiegelten Punkte auslesen (1574 mal gelesen)
Muckenbatscher
Mitglied
Student Maschinenbau


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

Beiträge: 44
Registriert: 18.03.2013

CATIA V5 R19
Windows 7 64 Bit
Core i7

erstellt am: 27. Mai. 2014 17:14    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 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


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 27. Mai. 2014 17:17    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 Muckenbatscher 10 Unities + Antwort hilfreich

Servus
Schau mal hier.

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


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

Beiträge: 44
Registriert: 18.03.2013

CATIA V5 R19
Windows 7 64 Bit
Core i7

erstellt am: 28. Mai. 2014 01:20    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 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


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 28. Mai. 2014 07:55    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 Muckenbatscher 10 Unities + Antwort hilfreich

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



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

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 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 Muckenbatscher 10 Unities + Antwort hilfreich

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


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

Beiträge: 44
Registriert: 18.03.2013

CATIA V5 R19
Windows 7 64 Bit
Core i7

erstellt am: 28. Mai. 2014 09:58    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

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


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 28. Mai. 2014 10:25    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 Muckenbatscher 10 Unities + Antwort hilfreich

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


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

Beiträge: 44
Registriert: 18.03.2013

CATIA V5 R19
Windows 7 64 Bit
Core i7

erstellt am: 28. Mai. 2014 11:26    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


punktewolke.PNG

 
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


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 28. Mai. 2014 11:35    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 Muckenbatscher 10 Unities + Antwort hilfreich

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


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

Beiträge: 44
Registriert: 18.03.2013

CATIA V5 R19
Windows 7 64 Bit
Core i7

erstellt am: 28. Mai. 2014 15: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 Bernd,

beide Methoden gehen  Habe mich für die kürzere zweite Lösung entschieden.

Vielen Dank!!!

------------------

Grüße
Muckenbatscher

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