| |  | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 | | |  | KISTERS 3DViewStation: Schutz sensibler 3D CAD Daten, egal von wo Sie arbeiten, eine Pressemitteilung
|
Autor
|
Thema: Reihenfolge auslesen (790 mal gelesen)
|
Timberwolve Mitglied
 
 Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 18. Feb. 2010 08:20 <-- editieren / zitieren --> Unities abgeben:         
Hallo Leute, ich suche wieder mal einen Spezialisten ;-) Ich habe folgendes Problem. Im Anhang findet ihr ein Bild von Punkten in einer Zeichnung. Diesen Punkten möchte ich eine gewisse reihenfolge geben. und zwar genau die, die ihr auf dem Bild seht. Die Punkte sind vom 3D-abgeleitet und werden auch von dort aus gesteuert. Das soll jedoch nicht der Punkt sein. Der Nullpunkt der Ansicht liegt wie ihr auf dem Bild sehen könnt, auf der Blauen Achse. Nun möchte ich quasi die Reihenfolge so von meinem Makro ermittelt haben, wie ihr es auf dem Bild seht (A,B,C). Ich habe die Punkte bereits in einem Array gesammelt, und nach Y Absteigend sortiert (also grösstes Y als erstes). Allerdings ist nicht gewährleistet das der rechte Punkt (B,D,F) in der Y-Koordinate immer kleiner ist. also kann es in meinem Array passieren, das die Reihenfolge z.B. A,B,D,C,F,E ist, was ja für meinen Bedarf falsch wäre. Das beispiel ist nun einfach gehalten mit 6 Punkten und jeweils 2 Punkte pro Reihe. können aber auch mehr Punkte werden. z.B. 30 und 3 pro Reihe mit 10 Reihen. Hat jemand eine Idee wie ich das Lösen könnte, das dieses ungefähre Raster per Makro berechnet oder eher sortiert wird? Gruss Timber ------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zoltan.bekesi Mitglied
 
 Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 18. Feb. 2010 20:05 <-- editieren / zitieren --> Unities abgeben:          Nur für Timberwolve
Hallo Timber, um den Algorithmus zu testen habe ich die Datein ins Excel eingetippt. Die Aufgabe kann man als "Sortieren nach 2 Schlüssel" definieren. 1) Nach Y absteigend (hast bereits gemacht) 2) Nach X aufsteigend. Zeit und Lust es umzusetzen habe ich momentan keine, ich würde aber wie folgt vorgehen: 1) Array mit irgendein Sortieralgorithmus absteigend sortieren (bereits erledigt) 2) Aus diesen Array den ersten Eintrag nehmen, merken 3) Prüfen, ob Y Wert der nächsten Eintrag=gemerkter Eintrag Ja: neues Array zum Sortieren aufmachen Nein: Wert im neuen Array sortieren und Inhalt in die Ausgabearray verschieben Schritt 3) wiederholen, bis alle Daten verarbeitet wurden. Wenn du etwas mehr Zeit für die Suche im Internet verwendest, willst du vielleicht auch fertige Lösungen finden. Gruß, Zoltan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 18. Feb. 2010 22:33 <-- editieren / zitieren --> Unities abgeben:          Nur für Timberwolve
|
tobul Mitglied Physiker
 
 Beiträge: 192 Registriert: 06.05.2003
|
erstellt am: 19. Feb. 2010 11:24 <-- editieren / zitieren --> Unities abgeben:          Nur für Timberwolve
Hallo! Wenn ich das Problem richtig verstehe, dann ist der "Knackpunkt", dass die strenge Sortierung nach Y ja NICHT hilfreich ist, da die Punkte auch "leicht verschoben" sein können. Deshalb würde ich es so machen: Erst "unscharf" nach Y sortieren, dann innerhalb der Zeilen nach X sortieren. Für das "unscharf" muss halt erst mal eine Bandbreite definiert werden, innerhalb der es als "gleiche Zeile" und was darüber hinaus geht als "neue Zeile". Ich habe das schon mal realisiert, aber das ist länger her und ich weiß nicht, ob es die "eleganteste" Methode ist - aber es hat funktioniert. Konkret ca. so: Liste aller y-Werte bauen Für jeden Eintrag aus dieser Liste: _Falls nicht schon wegen "Unschärfe" vorher bearbeitet: __Alle Punkte suchen, die innerhalb der "unscharf-Breite" __liegen einsammeln, nach X sortieren und ausgeben Ob "hemdsärmlig" oder "schön" (Bubblesort) sortiert wird, hängt von der Anzahl der Punkte und den Ansrüchen an die Laufzeit ab. Bei 100 Punkten sag ich mal, dass das völlig egal ist salu' tobul
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |