| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Listenelemente vergleichen (415 mal gelesen)
|
t.leonhardt Mitglied
Beiträge: 6 Registriert: 16.01.2007
|
erstellt am: 16. Jan. 2007 21:05 <-- editieren / zitieren --> Unities abgeben:
Ich habe folgende Liste (60.0 200.0 60.0 200.0)aus der ich doppelte Elemente eliminieren will (sieht erstmal einfach aus). Mir ist klar wie das geht, entsprechende Forenbeiträge zu diesem Thema habe ich gelesen. Das Phänomen ist, das member oder der direkte Vergleich mittels nth die Listenelemente 0 und 2 sowie 1 und 3 als nicht gleich ansieht. Entstanden ist die Liste mittels distance aus einer Polylinienpunktliste wie dieser ->((1482.92 1907.74) (1679.88 1942.47) (1690.3 1883.38) (1493.34 1848.65)). so -> (distance (nth 0 ...) (nth 1 ...)) Kann mir das einer erklären ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 16. Jan. 2007 21:41 <-- editieren / zitieren --> Unities abgeben: Nur für t.leonhardt
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 16. Jan. 2007 21:44 <-- editieren / zitieren --> Unities abgeben: Nur für t.leonhardt
Also ich würde (erstmal Willkommen ) dir dennoch die Suchfunktion ans Herz legen, oder du müßtest mal mehr deiner Ergebnisse preisgeben - was schon getestet , mit welchem Ergebnis etc. oder ein konkretes Beispiel (DWG+Codeschnipsel) Aber um meinen Ansatz mit der Suchfunktion weiter auszuführen, was sagsdt du denn zu diesen Diskussionen wie HIER[/b] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
vlide Mitglied
Beiträge: 29 Registriert: 10.07.2006 AutoCAD 200x ObjectDCL 3.0
|
erstellt am: 16. Jan. 2007 22:25 <-- editieren / zitieren --> Unities abgeben: Nur für t.leonhardt
Versuche es doch mal hiermit (defun lst upDel ( lst / NeuList CheckNeulist) ;Entfernen von Dupplikate einer VLA-Liste, STR-Liste oder LIST-Liste (foreach n lst (cond ((= (type n) 'VLA-OBJECT) (if (not (member (strcat (vla-get-ObjectName n)(vla-get-Handle n)) CheckNeulist)) (setq CheckNeulist (cons (strcat (vla-get-ObjectName n)(vla-get-Handle n)) CheckNeulist) NeuList (cons n NeuList)) );if ) ((or (= (type n) 'STR) (= (type n) 'LIST)) (if (not (member n NeuList))(setq NeuList (cons n NeuList))) ) );cond );foreach (if(= (type n) 'STR) (setq NeuList (vl-sort (reverse NeuList) '< )) ) NeuList );defun vg Wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
t.leonhardt Mitglied
Beiträge: 6 Registriert: 16.01.2007
|
erstellt am: 16. Jan. 2007 23:37 <-- editieren / zitieren --> Unities abgeben:
Das Objekt aus dem die Punktliste stammt, ist ein gedrehtes Rechteck, es kann also nicht ungenau gezeichnet sein. Interessanterweise liefert ein Vergleich der parallelen Strecken mittels getdist auch kleine Gleichheit der Strecken. Wahrscheinlich liegt es tatsächlich an einer internen Unschärfe. Die Umwandlung der Werte ins Stringformat mit anschließender Umwandlung ins Floatformat liefert dann doch gleiche Ergebnisse. Generell ist es nicht so, das ich mit dem Problem nicht klarkomme. Ich fand nur den Effekt interessant und dachte einer von den Wissenden hier im Forum sagt "Alter Hut, liegt daran ...". Die Diskussion die cadffm anführt habe ich leider nicht selbst gefunden, bezieht sich aber auf das gleiche Problem. Vielen Dank für Eure Bemühungen. [Diese Nachricht wurde von t.leonhardt am 16. Jan. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 16. Jan. 2007 23:43 <-- editieren / zitieren --> Unities abgeben: Nur für t.leonhardt
|
t.leonhardt Mitglied
Beiträge: 6 Registriert: 16.01.2007
|
erstellt am: 16. Jan. 2007 23:58 <-- editieren / zitieren --> Unities abgeben:
|