Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Listenelemente vergleichen

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Listenelemente vergleichen (412 mal gelesen)
t.leonhardt
Mitglied


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

Beiträge: 6
Registriert: 16.01.2007

erstellt am: 16. Jan. 2007 21: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

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


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

Beiträge: 667
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 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 t.leonhardt 10 Unities + Antwort hilfreich

ich würde mal auf die interne Rechenunschärfe tippen (real x real)
Vergleich doch mal mit equal, dann müsste es passen.

Ciao georg

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 16. Jan. 2007 21:44    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 t.leonhardt 10 Unities + Antwort hilfreich

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



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

Beiträge: 29
Registriert: 10.07.2006

AutoCAD 200x
ObjectDCL 3.0

erstellt am: 16. Jan. 2007 22: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 t.leonhardt 10 Unities + Antwort hilfreich

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


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

Beiträge: 6
Registriert: 16.01.2007

erstellt am: 16. Jan. 2007 23:37    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

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
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 16. Jan. 2007 23:43    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 t.leonhardt 10 Unities + Antwort hilfreich

wurde ja praktisch gesagt (von einem unwissendem  )
generell würde ich aber equal mit toleranz-wert dem String vorziehen !
[wenn es nur um den Vergleich geht zumindest]

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

t.leonhardt
Mitglied


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

Beiträge: 6
Registriert: 16.01.2007

erstellt am: 16. Jan. 2007 23: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

@cadffm
gescheitert bin ich ursprünglich mit member -> equal, getdist usw. habe ich dann nur zu Testzwecken angewendet.

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