Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Frage zu Aufgabe aus dem Kochbuch

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:  Frage zu Aufgabe aus dem Kochbuch (456 mal gelesen)
ManuelKuhn
Mitglied
Techniker und DvD :-)


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

Beiträge: 100
Registriert: 23.03.2005

Intel XEON W3503 @ 2.4GHz
8 GB DDR3
NVIDIA QUADRO FX3800
WinXP Prof SP3 x64
ACAD 2007 + ProSteel 17.2/ 18
ACAD 2010 + ProSteel V8i S3
Rhino 3D V4
Autodesk VIZ-2006
Max2011 Design
Visual Studio 2008

erstellt am: 13. Aug. 2008 08:30    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

Moin Moin zusammen,

ich habe nun endlich etwas Zeit gefunden mich mit der LISP-Programmierung etwas auseinander zu setzten und habe mir hierzu das allseits bekannte "AUTO LISP Kochbuch" besorgt. Ich stehe noch ziemlich am Anfang und bis jetzt ist mir soweit auch alles klar, aber die Lösung der Übungsaufgabe Nr. 50 verstehe ich nicht so ganz. Die Aufgabe ist:
 

Zitat:
49.Definieren Sie eine Funktion, die testet, ob ein 2D-Punkt im rechten oberen Quadranten des Koordinatensystems liegt. Machen Sie die Funktion so kurz wie möglich.


und die Lösung:
 
Zitat:
(defun rechtsoben? (pkt)
  (and
    (< 0 (car pkt))
    (< 0 (cadr pkt))
  )
)


könnte mir das bitte einer mal kurz erläutern oder steh ich aufm Schlauch!?? Mein Gedanke war eigentlich: Ok, rechter oberer Quadrant somit X>0 und Y>0 und ich hätte das ganze so formuliert:

(defun rechtsoben (pkt)
  (and
    (< x 0 (car pkt))  ;prüft ob X<0 wenn ja dann nil
    (< y 0 (car pkt))  ;prüft ob y<0 wenn ja dann nil
  )
)

Grüße aus Wü    

------------------
  Immer auf der Suche nach Wissen....wenn ichs doch nur finden würde....???kann mir jemand helfen???  

[Diese Nachricht wurde von ManuelKuhn am 13. Aug. 2008 editiert.]

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 13. Aug. 2008 09:02    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 ManuelKuhn 10 Unities + Antwort hilfreich

Hallo,
PKT ist eine Liste aus x y z, => (20.0 30.0 0.0)
mit CAR kannst Du das erste Element der Liste wählen (also x) und mit CADR das zweite Element (also Y)

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


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

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 13. Aug. 2008 09:02    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 ManuelKuhn 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von ManuelKuhn:

    (< x 0 (car pkt))  ;prüft ob X<0 wenn ja dann nil
    (< y 0 (car pkt))  ;prüft ob y<0 wenn ja dann nil


wozu das x und das y?

Du vergleichst (0<Koordinate) --> T für erfüllt, nil nicht erfüllt
oben rechts x und y -Koordinate sind grösser Null
Dein Punkt ist eine Liste also y mit cadr x mit car

mfg heiko

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 13. Aug. 2008 09: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 Nur für ManuelKuhn 10 Unities + Antwort hilfreich

pkt ist eine Variable an die eine Liste ( xwert ywert ) oder (xwert ywert zwert) gebunden ist.

(car pkt)  ermittelt den ersten Listeneintrag -> xwert
(cadr pkt) ermittelt den zweiten Listeneintrag -> ywert

(< 0 (car pkt))  überprüft, ob 0 kleiner als der Xwert ist
(< 0 (cadr pkt)) überprüft, ob 0 kleiner als der ywert ist


(and
  (< 0 (car pkt))
  (< 0 (cadr pkt))
)

fast beide Bedingungen zusammen und gibt "nicht nil" (also True, was es eigentlich nicht gibt  ) zurück, wenn beide Einzelbedingungen wahr sind.

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

ManuelKuhn
Mitglied
Techniker und DvD :-)


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

Beiträge: 100
Registriert: 23.03.2005

erstellt am: 13. Aug. 2008 09:10    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

Zitat:
Original erstellt von joern bosse:
Hallo,
PKT ist eine Liste aus x y z, => (20.0 30.0 0.0)
mit CAR kannst Du das erste Element der Liste wählen (also x) und mit CADR das zweite Element (also Y)


ahh klar, ich de** ich war echt irgendwie auf'm Schlauch.... ich hab's irgendwie nicht so ganz mitbekommen das pkt ja eine liste ist  , dann ist es logisch mit car und cadr (mit dem Ausdruck c?r hab ich gestern allein fast ne dreiviertel Stunde rumgespielt)

danke euch allen, Unitys sind unterwegs!! ich glaube ich werde in nächster Zeit ab und an mal eure Hilfe brauchen! 

Gruß aus Wü 

------------------
Immer auf der Suche nach Wissen....wenn ichs doch nur finden würde....???kann mir jemand helfen??? 

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