Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Auslesen der Koordinaten von Extrempunkten

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:  Auslesen der Koordinaten von Extrempunkten (3005 mal gelesen)
Starbirth
Mitglied
Konstrukteur


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

Beiträge: 119
Registriert: 22.10.2009

Catia V5-6 R24
Windows 7 64bit
Intel Xeon (4x3,5GHz)
32B Ram
Nvidia Quatro K4200

erstellt am: 27. Nov. 2009 09:30    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


unknownElement.jpg

 
Hallo Forum.
Im Anschluss an diesen Thread ergaben sich neue Probleme.

Ich versuche nun die Koordinaten der (zur Erstellung der Annotation verwendeten) Punkte auszulesen.

Da auf Extrema aber sowohl GetCoordinates (HybridShape) als auch GetPoint (SPA Workbench) fehlschlägt wollte ich nun den Punkt kopieren und als Datum wieder einfügen um dieses dann auszumessen.

Der entsprechende Code sieht folgendermaßen aus:

Code:
Dim Coords(2)

Dim iSel As Selection
Set iSel = CATIA.ActiveDocument.Selection
iSel.Clear

iSel.Add iPoint     'Der zu messende Punkt
iSel.Copy
iSel.Clear
iSel.Add iHybBody     'Das Set in dem der Punkt liegen soll
iSel.PasteSpecial "CATPrtResultWithOutLink"
iSel.Clear

Dim Messpunkt As Object
Set Messpunkt = iHybBody.HybridShapes.Item(iHybBody.HybridShapes.Count)

Dim MeasureRef As Reference
Set MeasureRef = iPart.CreateReferenceFromObject(Messpunkt)
Set SPA = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
Set myMeasure = SPA.GetMeasurable(MeasureRef)
Call myMeasure.GetPoint(Coords)

MsgBox "X=" & Coords(0) & ", Y=" & Coords(1) & ", Z=" & Coords(2)


Dieser Code läuft durch, jedoch verstehe ich das Ergebnis nicht (siehe Bild).
Was ist das für ein Element? Das Icon ist mir noch nie untergekommen.
Auch ist das Ergebnis im Space nicht sichtbar (weder im normalen View, noch im NoShow).

Wie erhalte ich ein Ergebnis, dass ich auch Ausmessen kann? Hat jemand eine Idee?

EDIT: Eigentlich hab ich das Problem gerade gelöst.
Mit dem obigen Code (neu eingefügt) funktioniert das Auslesen.

Wäre trotzdem noch interessant zu wissen was die PasteSpecial Operation da eigentlich für ein Element erzeugt hat. Also, wer was weiß, bitte melden.

EDIT2: Kommando zurück. Beim ersten Extrempunkt funktioniert alles wie es soll. Die Koordinaten sind richtig. Beim 2. Extrempunkt schlägt die Messung schon wieder fehl (Method GetPoint failed). Ich versteh nicht weshalb. Hilfe wäre nett.

EDIT3: Problem erkannt. Statt eines Extrempunktes wird hier eine Extremlinie erzeugt. Für die gibt es natürlich keine Punktkoordinaten. Werde somit die Erstellnug des Extrempunktes verfeinern müssen.

[Diese Nachricht wurde von Starbirth am 27. Nov. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 30. Nov. 2009 17:41    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 Starbirth 10 Unities + Antwort hilfreich

Ich weiß nicht ob's die richtige Antwort auf deine Frage zu dem Typ ist, aber:

Die Annotation kommt, wie auch die Drawingelemente aus den Sketcher-Librarys. Von daher vermute ich, dass deine "dumme" Geometrie aus dieser Richtung abgeleitet wurde, also so ne Art "dummer" Point on Surface. Das würde auch dei orangene Fläche im Icon erklären.

Ansonsten würde mir auch nicht einfallen, warum man extrempunkte nicht messen können sollte, aber dein Code sieht so aus, als hättest Du's auch gesehen.  

Edit: Es sieht auch danach aus, dass dieses Icon Vertexe anzeigt. Nicht jedes Element besitzt eine Visualisierungseigenschaft, was ich mir auch oft zunutze mache. 

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

[Diese Nachricht wurde von HoBLila am 30. Nov. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Starbirth
Mitglied
Konstrukteur


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

Beiträge: 119
Registriert: 22.10.2009

erstellt am: 01. Dez. 2009 09:47    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 Lila,
hab mir das Icon mittlerweile versucht selbst zu erklären. Mein Versuch bestand darin es als eine Art Sammel... äh... dingens für dumme geometrische Elemente zu sehen.

Also ein dummes Element, dass je nachdem woraus es erzeugt wurde sowohl eine Fläche, Linie, Kurve oder Punkt sein kann (was ja bei einem dumm kopierten Extremum alles durchaus im Bereich des Möglichen ist).

Die Position der Extrema zu messen ist mir mittlerweile (indirekt, also über den Umweg des dummen Elements) gelungen. Direkt ging es allerdings immer noch nicht.

Was mich in diesem Zusammenhang wundert ist, dass die automatisierte Erzeugung solcher Geometrien teilweise komplett andere Ergebnisse ausspuckt als der händische Ablauf.

Beispiele:
Erzeugt man per Hand einen Extrempunkt auf einer Kurve und kopiert ihn dumm noch mal drunter ist es ein dummer Punkt, auch vom Icon her.
Das selbe bei Linien.
Über die Automatisierungsschnittstelle gibt es dann aber diese "Sammelicons".
Auch kann ich händisch ohne Probleme direkt den Extrempunkt ausmessen, die Automatisierung will nicht. Das sind noch so ein paar Sachen die man erstmal kapieren muss.

Interessant fand ich auch deinen letzten Satz ("Nicht jedes Element besitzt eine Visualisierungseigenschaft..."). Könntest du darauf noch kurz ein wenig näher eingehen? Wie machst du dir dies gezielt zunutze?

Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Starbirth
Mitglied
Konstrukteur


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

Beiträge: 119
Registriert: 22.10.2009

Catia V5-6 R24
Windows 7 64bit
Intel Xeon (4x3,5GHz)
32B Ram
Nvidia Quatro K4200

erstellt am: 07. Dez. 2009 09:34    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


DUMMY.CATPart.txt

 
Hallo, ich mal wieder.
Meine unbekannten Elemente bereiten mir immer noch Kopfzerbrechen.

Ich versuche nun diese, nach dem Auslesen der Punktkoordinaten, wieder zu löschen.
Ohne Erfolg, die verhalten sich nämlich ein wenig komisch.

Zeichne ich das Löschen (was händisch mal wieder perfekt funktioniert) mit dem Makroeditor auf erhalte ich folgendes:

Code:
Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim selection1 As Selection
Set selection1 = partDocument1.Selection

selection1.Search "Name='Result of Ankerpunkt_Annotation',all"

Set partDocument1 = CATIA.ActiveDocument

Dim selection2 As Selection
Set selection2 = partDocument1.Selection

selection2.Clear

Dim item1 As Item
' No resolution found for the object item1...

selection2.Add item1

selection2.Delete



Der Code lässt sich natürlich so nicht umsetzen.

Frage ich im VB Editor die Objektauflösung ab, kann diese nicht erstellt werden. Alles bleibt leer.

Baue ich mir den Pfad zum Element selber zusammen (explizit, über die Namen der Sets und Elemente) gibt das Makro einen Fehler aus der darauf schließen lässt, dass das Element eigentlich garnicht da ist    .

Wenn Interesse besteht bastel ich gleich mal noch ein Beispiel zusammen und stelle den Code ein den ich zum Löschen verwenden möchte.

EDIT: Das Interesse hab ich jetzt mal vorausgesetzt  
Part hängt an. Wer schafft es "Result of Ankerpunkt_Annotation" per Makro anzusprechen und zu löschen?
Mein aktuellster Versuch:

Code:
Dim iSel As Selection
Set iSel = CATIA.ActiveDocument.Selection
iSel.Clear
iSel.Add CATIA.ActiveDocument.Part.HybridBodies.Item("Bemassung").HybridShapes.Item("Result of Ankerpunkt_Annotation")
iSel.Delete

[Diese Nachricht wurde von Starbirth am 07. Dez. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

V5Playaz
Mitglied
Dipl.-Ing (BA)


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

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. Dez. 2009 11:10    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 Starbirth 10 Unities + Antwort hilfreich

Hallo,

also ich seh da momentan kein Problem darin.

Bei mir hat es so funktioniert:

Code:
Dim partDocument1 As PartDocument
            partDocument1 = CATIA.ActiveDocument
            Dim selection1 As Selection
            selection1 = partDocument1.Selection

            selection1.Search("Name='Result of Ankerpunkt_Annotation',all")
            selection1.Delete()


grüße Dominik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Starbirth
Mitglied
Konstrukteur


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

Beiträge: 119
Registriert: 22.10.2009

erstellt am: 07. Dez. 2009 12:19    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

Seltsam.
Bekommst du ein ordentliches Ergebnis wenn du im Editor die Objektauflösung für das oben genannte Element einfügst?
Sollte es so sein liegt das Problem wohl bei mir lokal vor.

Mit deinem Code funktioniert es bei mir auch. Nur würde ich aus performancegründen gerne die Suche vermeiden.

Hast du eine Idee wo das Problem in meiner Zeile
"iSel.Add CATIA.ActiveDocument.Part.HybridBodies.Item("Bemassung").HybridShapes.Item("Result of Ankerpunkt_Annotation")"
steckt? Die Fehlermeldung gibt an, dass die Methode "Item" fehlschlägt. Heißt ja AFAIKAs far as i know (So viel ich weiss) so viel wie "Was du suchst ist nicht da."
Das Set heißt jedoch immer gleich und befindet sich in der Hauptebene des Dokumentes. Selbes gilt für den Punkt, Ort und Name sind bekannt. IMHOIn my humble oppinion (Meiner Meinung nach) ist alles da um den Punkt in die Auswahl zu kegeln.
Ich sehe meinen Fehler nicht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

V5Playaz
Mitglied
Dipl.-Ing (BA)


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

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. Dez. 2009 12:41    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 Starbirth 10 Unities + Antwort hilfreich

Die Objektauflösung hat bei mir auch nicht funktioniert.

Aber die Suche hat funktioniert. Auch wenn die Performance bei weitreichenden Suchen schlecht ist, hauptsache es funktioniert.

Zu deinem Code, versuche es mal mit:

Code:
iSel.Add CATIA.ActiveDocument.Part.HybridBodies.Item("Bemassung").HybridShapes.Item("Ankerpunkt_Annotation")

Auf das Element/Item 'Result of Ankerpunkt_Annotation' lässt sich nicht zugreifen.
Das siehst du aber auch live, wenn du die Watchlist benutzt.
Dort ist unter HybridShapes nur ein Element vorhanden -> Ankerpunkt_Annotation

grüße Dominik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Starbirth
Mitglied
Konstrukteur


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

Beiträge: 119
Registriert: 22.10.2009

erstellt am: 07. Dez. 2009 12:46    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

Also wie vermutet, es geht einfach nicht. Warum auch immer.
Dann halt doch mittels Suche. Werd versuchen diese dann zumindest auf das Set zu beschränken. Dann sollte sie auch nicht all zu viele Ressourcen in Anspruch nehmen.
Danke dir. So hab ich zumindest die Gewissheit dass es am Punkt liegt und nicht nur lokal an meinem Catia oder meiner Programmierung.

EDIT: Rechtschreibung

[Diese Nachricht wurde von Starbirth am 07. Dez. 2009 editiert.]

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