Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Gleiche Punkte oder doch nicht!?

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:  Gleiche Punkte oder doch nicht!? (554 mal gelesen)
CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 13. Feb. 2003 11:32    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

Hai

Ich hab 'ne Frage zu einer Gleicheitsprüfung.

Diese Liste LI =>
((-41.1235 -34.1954) (-41.1235 -34.1954) (-41.1235 -34.1954))

Alle Prüfungen mit =, eq, equal geben mir aber nil zurück:
(= (car LI) (cadr LI))
(eq (car LI) (cadr LI))
(equal (car LI) (cadr LI))

wiso?????
wie kann ich als Ergebniss T bekommen????

HÜLFE

------------------
Gruß
CADwiesel

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

cad-lisp
Mitglied
Holztechniker


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

Beiträge: 12
Registriert: 13.02.2003

erstellt am: 13. Feb. 2003 13:00    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 CADwiesel 10 Unities + Antwort hilfreich

Hallo CADwiesel,

hab es gerade einmal ausprobiert,
bei mir klapp es mit equal.
Kann es sein, das mit der Punktliste etwas nicht stimmt?

(setq li '((-41.1235 -34.1954) (-41.1235 -34.1954) (-41.1235 -34.1954)))

(= (car LI) (cadr LI))    ;=> ergibt 'nil
(eq (car LI) (cadr LI))    ;=> ergibt 'nil
(equal (car LI) (cadr LI)) ;=> ergibt 'T

Gruß
cad-lisp

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 13. Feb. 2003 13: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

Îch hab's jetzt schon so versucht:
(equal (list (nth 0(car LI))(nth 1(car LI)))(list (nth 0(cadr LI))(nth 1(cadr LI))) )

aber das Ergebniss ist immernoch nil!
Ich werde jetzt noch mal einen Versuch machen die Geschichte pro Zahlenwert zu überprüfen.
Aber das kann's doch nicht sein!!!

------------------
Gruß
CADwiesel

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 13. Feb. 2003 16:16    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 CADwiesel 10 Unities + Antwort hilfreich

Hi CADwiesel,

das ist ein Problem der 16 internen Stellen. Irgendwo scheint da eine noch so kleine Abweichung zu sein. Entweder bei equal eine Abweichung zulassen oder (was zwar funktioniert aber mit Vorsicht zu handhaben ist) mit (rtos..) einen String und mit (atof...) wieder eine Zahl draus machen.
Bin darüber auch schon oft gestolpert, gerade wenn man z.B. errechnete Schnittpunkte von Linien mit z.B Einfügepunkten von Blöcken vergleicht. Da nützt es nichts, dass man genau weiß dass man den Block auf dem Schnittpunkt eingefügt hat.
Aber was Besseres mir ist auch nicht eingefallen.

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
Wieder 2 neue Tool's im FreeDownload
Wissen wie es gemacht wird? Jetzt Quellcode für die Hälfte

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 13. Feb. 2003 16: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

Gibt's eine VL- vergleich die eine Liste mit der anderen- Funktion, Die genauer oder Zuverlässige als equal ist?

Die Punkte sind deffinitiv deckungsgleich auch in der 120 Stelle nach'm Komma.

------------------
Gruß
CADwiesel

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 14. Feb. 2003 10:33    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 CADwiesel 10 Unities + Antwort hilfreich

Hi Mr. CADWiesel,

muss auch mal wieder meinen Senf dazugeben:

(= ...) testet nur numerische Werte oder Zeichenketten, scheidet also aus.

(eq ...) testet auf Speicher-Identität, also ob die zwei Symbole auf den selben Node zeigen. Das ist hier sicherlich nicht gegeben, deswegen scheidet auch eq für solche Zwecke aus.

Bleibt also (equal ...) als einzig anwendbare Möglichkeit. Bei mir kommt da übrigens auch T, wenn ich deine Liste kopiere und es damit ausprobiere. Es ist mit Sicherheit das, was Holger sagt.

>>Die Punkte sind deffinitiv deckungsgleich auch in der 120 Stelle >>nach'm Komma.

Genau da liegt dein Problem: Woher willst du das denn wissen, wenn du immer nur nil kriegst? Das hängt doch sogar vom Hauptprofessor ab (bei den ersten Pentiums waren Abweichungen noch ein Skandal, heute ist's eher normal). Taste dich mit (equal ... ... fuzz) an die Abweichung ran.

Gruss, Axel

------------------
http://www.tutorial.autolisp.info

http://www.advanced.autolisp.info


http://www.activex.autolisp.info

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 17. Feb. 2003 08: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

Ich kann deffinitiv sagen, dass die Punkte deckungsgleich sind. Was ich auch nicht verstehe ist, dass die Punkte, die als Werte in der Liste stehen ja doch eigentlich bezugslose Zahlenkolonnen sind und somit doch auch 'nur den dargestellten Wert haben.

Ich habe mir jetzt tatsächlich so beholfen, wie Holger beschrieben hat (rtos/atof) und so klappt's. Eigentlich blöd.

------------------
Gruß
CADwiesel

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

HBo
Ehrenmitglied
Maschinenbaukonstrukteur


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

Beiträge: 1563
Registriert: 31.12.2001

erstellt am: 02. Mrz. 2003 18: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 Nur für CADwiesel 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von CADwiesel:
Ich kann deffinitiv sagen, dass die Punkte deckungsgleich sind. Was ich auch nicht verstehe ist, dass die Punkte, die als Werte in der Liste stehen ja doch eigentlich bezugslose Zahlenkolonnen sind und somit doch auch 'nur den dargestellten Wert haben.

Ich habe mir jetzt tatsächlich so beholfen, wie Holger beschrieben hat (rtos/atof) und so klappt's. Eigentlich blöd.


dann gebe doch EQUAL den "Genauigkeitswert" mit
(equal wert1 wert2 0.0000001)
Dann kannst Du den Umweg sparen
Gruß
Hans

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