Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Gleicher Wert in einer Liste finden

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:  Gleicher Wert in einer Liste finden (1695 mal gelesen)
Manuel Sauter
Mitglied



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

Beiträge: 28
Registriert: 29.10.2003

erstellt am: 10. Mai. 2004 17:09    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 Zusammen,

ich habe eine Liste mit zugelassenen Wandstärken

(setq zulWst (list 50.0 100.0 150.0 200.0 250.0 300.0 350.0))

Aus einer Berechnung erhalte ich die tatsächliche Wandstärke

nWst1

Nun würde ich gern überprüfen ob die errechnete Wandstärke in der zulässigen Liste vorhanden ist.
Aus den Beiträgen des Forums habe ich erkannt das ich mit member nicht weit komme. Ich denke ich muß mit dem Befehl equal arbeiten, da ich hier ja kleine Abweichungen von der errechneten zur zugelassenen Wandstärke habe.

Kann mir hier jemand bitte einen Lösungsansatz bieten?

Mit freundlichen Grüßen

Manuel

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 10. Mai. 2004 17: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 Nur für Manuel Sauter 10 Unities + Antwort hilfreich

So zum Beispiel.
Ist die Wandstärkenliste sehr lang, sollte man den Code optimieren und bei der passenden Wandstärke aufhören zu suchen.
mit foreach wird jede Wandstärke der Liste geprüft, auch wenn die Erste schon die Passende ist.
Code:

(setq zulWst (list 50.0 100.0 150.0 200.0 250.0 300.0 350.0))

(setq zulAbw 0.1
      gesuchteWs Nil
)
(Foreach ws zulWst
  (IF ( < (abs (- nwst1 ws)) zulAbw)
    (SETQ gesuchteWs ws)
  )
)
(IF (NOT gesuchteWs)
  (PROMPT "leider nichts gefunden!")
)


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

tmoehlenhoff
Ehrenmitglied V.I.P. h.c.
Gutzum, CAD-Therapeut und BIM-Priester ;-)



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

Beiträge: 2996
Registriert: 14.10.2002

ATD 2 bis 2007

erstellt am: 10. Mai. 2004 18:01    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 Manuel Sauter 10 Unities + Antwort hilfreich

Aber dann könnte man doch auch

  ( < (abs (- nwst1 ws)) zulAbw)

durch

  (equal ws nwst1 zulAbw)

ersetzen, oder?

sayonara
Torsten Möhlenhoff
ACAD-Systemhaus Bremen

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

Dabrunz
Mitglied



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

Beiträge: 127
Registriert: 28.05.2003

erstellt am: 10. Mai. 2004 18:52    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 Manuel Sauter 10 Unities + Antwort hilfreich

Ja, könnte man. Allerdings scheint mir hier die Verwendung von vl-some angeraten, gesetzt den Fall, die Lösung darf VLISP verwenden:

Code:

(vl-some
'(lambda(x)(equal x errechneteWandStaerke maxAbweichung))
  zulaessigeWandStaerken
)

Achim Dabrunz

[Diese Nachricht wurde von Dabrunz am 10. Mai. 2004 editiert.]

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


Ex-Mitglied

erstellt am: 10. Mai. 2004 21:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von Manuel Sauter:
Hallo Zusammen,

ich habe eine Liste mit zugelassenen Wandstärken

(setq zulWst (list 50.0 100.0 150.0 200.0 250.0 300.0 350.0))

Aus einer Berechnung erhalte ich die tatsächliche Wandstärke

nWst1

Nun würde ich gern überprüfen ob die errechnete Wandstärke in der zulässigen Liste vorhanden ist.
Aus den Beiträgen des Forums habe ich erkannt das ich mit member nicht weit komme. Ich denke ich muß mit dem Befehl equal arbeiten, da ich hier ja kleine Abweichungen von der errechneten zur zugelassenen Wandstärke habe.

Kann mir hier jemand bitte einen Lösungsansatz bieten?

Mit freundlichen Grüßen

Manuel


Schon mal die Lisp Funktion MEMBER angesehen?

(seqt checkliste '(10.0 20. 50.0 100.0))
(setq test 50.0)
(member test checkliste)
(member 55 checkliste)

Falls in der Checkliste auch Integerzahlen sind, muß man eventuell so prüfen:

(member (float test) (mapcar 'float checkliste))

Gruß
Tom Berger

------------------
Architekturwerkzeuge für AutoCAD: http://www.archtools.de

tmoehlenhoff
Ehrenmitglied V.I.P. h.c.
Gutzum, CAD-Therapeut und BIM-Priester ;-)



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

Beiträge: 2996
Registriert: 14.10.2002

ATD 2 bis 2007

erstellt am: 10. Mai. 2004 21:59    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 Manuel Sauter 10 Unities + Antwort hilfreich

Wobei doch die Fragestellung eigentlich die Anforderung enthielt, dass mit einer gewissen Ungenauigkeit geprüft werden soll und eben dies bietet member nicht, oder?

sayonara
Torsten Möhlenhoff
ACAD-Systemhaus Bremen

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


Ex-Mitglied

erstellt am: 11. Mai. 2004 00:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von tmoehlenhoff:
Wobei doch die Fragestellung eigentlich die Anforderung enthielt, dass mit einer gewissen Ungenauigkeit geprüft werden soll und eben dies bietet member nicht, oder?

Stimmt, hatte ich überlesen. Eventuell kommt er damit hin, den zu prüfenden Wert vorher zu runden, aber sonst geht MEMBER dann natürlich nicht.

Tom Berger

------------------
Architekturwerkzeuge für AutoCAD: http://www.archtools.de

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: 11. Mai. 2004 02:42    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 Manuel Sauter 10 Unities + Antwort hilfreich

@achim:

> gesetzt den Fall, die Lösung darf VLISP verwenden

Machen wir das jetzt mit? "Jede Lösung ist willkommen, Hauptsache, es kommt kein V im Funktionsnamen vor?" --- vl-some ist ein 'stinknormale' Lisp-Funktion, hat ja mit dem ganzen vla-...-Kram absolut nichts zu tun. Der Namenszusatz 'vl-' resultiert aus kaufmännischen Gegebenheiten, aber nicht aus inhaltlichen.

Egal, da kommt es sowieso auf das lambda an, das Drumherum ist nicht so wichtig.

Gruß, Axel

> gesetzt den Fall, die Lösung darf VLISP verwenden

... Könnte auch heissen: Soll unter R12 oder 2.6 laufen - oder was?

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

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

Manuel Sauter
Mitglied



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

Beiträge: 28
Registriert: 29.10.2003

erstellt am: 11. Mai. 2004 07: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

Vielen Dank für Eure Unterstützung.

Gruss Manuel

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

Dabrunz
Mitglied



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

Beiträge: 127
Registriert: 28.05.2003

erstellt am: 11. Mai. 2004 10: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 Nur für Manuel Sauter 10 Unities + Antwort hilfreich

Zitat:

[..] vl-some ist ein 'stinknormale' Lisp-Funktion, hat ja mit dem ganzen vla-...-Kram absolut nichts zu tun.


Hat es schon, die gehört nämlich erst ab A2K zum Standard-Funktionsumfang und damit seit der Einführung von VLisp. AutoLisp kannte sie jedenfalls noch nicht.

Zitat:

[..]

> gesetzt den Fall, die Lösung darf VLISP verwenden

... Könnte auch heissen: Soll unter R12 oder 2.6 laufen - oder was?


genau - oder unter R14 oder IntelliCAD oder ...

Achim

[Diese Nachricht wurde von Dabrunz am 11. Mai. 2004 editiert.]

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: 11. Mai. 2004 12: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 Nur für Manuel Sauter 10 Unities + Antwort hilfreich

Achim schrub: Hat es schon, die gehört nämlich erst ab A2K zum Standard-Funktionsumfang

Achim, das weiss ich;-) Ich meine aber: Hat mit dem ganzen VLA-Kram nix zu tun! Abwärtskompatibilität und ICAD in allen Ehren - aber das ist trotzdem stinknormales AutoLisp. TBLOBJNAME gabs auch nicht immer, aber trotzdem hat Autodesk diese Funktion nicht 12-tblobjname oder sonstwas genannt. Eine Funktion VL-SOME kann man sich, wenn sie in ICAD oder R14 fehlt, ganz schnell selber schreiben, und der Code läuft unbeeindruckt auch dort.

Mir geht's doch um das 'Püschologische': Hier sagen offensichtlich viele User 'ich will mit ActiveX nix zu tun haben, also verwende ich keine Funktionen, die mit VL... anfangen. Wenn einer sagt 'das soll auch da und da laufen', dann ist das respektabel. Aber das hier ist einfach Quatsch! Die meisten Funktionen, die mit VL- anfangen, sind 'normale' Funktionen, das Präfix erinnert nur daran, dass sie nicht bei AutoDesk entwickelt wurden, sondern bei den Russen (ein paar sind aber speziell, z.B. auf den Compiler bezogen). Das Problem(?) ist nur, dass manche dieser eingekauften Funktionen mit Präfix daherkommen, andere nicht: Es heisst ja z.B. auch nicht VL-FUNCTION. Man kann Trennlinien sehen, wo man mag, aber die Frage 'VL oder nicht' bildet keine!

Gruß, Axel

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

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

Dabrunz
Mitglied



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

Beiträge: 127
Registriert: 28.05.2003

erstellt am: 11. Mai. 2004 12:59    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 Manuel Sauter 10 Unities + Antwort hilfreich

hast ja recht

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