Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Direct Modeling
  Brauche mal kurz Hilfe für Lisp (if then oder cond?)

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 Creo
Autor Thema:  Brauche mal kurz Hilfe für Lisp (if then oder cond?) (1359 mal gelesen)
MC
Moderator
Dipl.Ing. Maschinenbau, Konstrukteur


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

Beiträge: 644
Registriert: 20.10.2000

erstellt am: 14. Sep. 2004 11:51    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


kuehlbohrung-frage.lsp.txt

 
Hallo Lispler,
ich stehe gerade im Wald und bräuchte mal einen Tipp (Programm anbei) :
Ich habe vor, eine Kontur zeichnen zu lassen, die abhängig von einer Abfrage in der Dialogbox (mit ohne ohne Fase in diesem Fall) unterschiedlich aussehen muss.

Jetzt habe ich eine Boolean-Variable "Fase" definiert, die ich abfragen möchte, ob sie gesetzt ist oder nicht (true oder false bzw. nil müßte das dann ja wohl sein).

Als Ergebnis der Abfrage soll entweder die eine, oder eben die andere Kontur gezeichnet und dann gedreht werden.
Mit welchem Befehl/welcher Abfrage bekomme ich sowas hin? Ich dachte an "If/else" oder mit "Cond", aber es klappt nicht wirklich.

Vielleicht könnte ja mal jemand schauen, wo der Wurm drin ist?

Danke Euch im Voraus,

Michael

p.s.: Bitte keine Klagen über mein schlechtes Lisp, ich übe mal wieder etwas.... 


------------------
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt. (A. Einstein)

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

clausb
Ehrenmitglied V.I.P. h.c.



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

Beiträge: 2914
Registriert: 20.12.2000

Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.

erstellt am: 14. Sep. 2004 12:15    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 MC 10 Unities + Antwort hilfreich

Deine Abfrage sieht so aus:
Code:

  ((if Fase t

Das geht so nicht. Richtig schreibt man ein if in LISP so:

Code:

  (if Fase
    (some-lisp-form-for-if)
    (some-lisp-form-for-else)
  )

Wenn Du keinen else-Zweig brauchst, kannst Du stattdessen auch "when" nehmen:

Code:

  (when Fase
    (do-something)
  )

  Claus

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

MC
Moderator
Dipl.Ing. Maschinenbau, Konstrukteur


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

Beiträge: 644
Registriert: 20.10.2000

erstellt am: 14. Sep. 2004 13: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


versuch-1.lsp.txt


fehler-lisp.jpg

 
Hallo Claus,
danke schonmal für Deine Antwort (UI's sind unterwegs). Allerdings klappt da irgendwas nicht so recht, aber ich bin mir nicht sicher, ob es mit der "if"-Bedingung zusammenhängt. Ich bekomme dann die angehängte Fehlermeldung.

Kannst Du oder jemand anders damit was anfangen?

Gruß, Michael

------------------
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt. (A. Einstein)

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

Dorothea
Mitglied



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

Beiträge: 242
Registriert: 22.11.2001

erstellt am: 14. Sep. 2004 13:57    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 MC 10 Unities + Antwort hilfreich

Hallo Michael,

Wenn nach eine if -Anweisung mehr als ein Aufruf erfolgen soll, dann muss man diese Aufrufe zusammenfassen, z.B. mit progn. Bei dir steht im Moment:

(if Fase
  (
      (sd-call-cmds

Diese zweite Klammer nach 'Fase' sagt nichts aus, ist falsch dort. Ersetze sie durch
(if Fase
  (progn
      (sd-call-cmds

Dann sollte dieses Problem geloest sein. progn wird auch ganz normal durch eine schliessende Klammer wieder beendet. Diese Klammer ist glaube ich in deinem Programm schon drinne.

Gruss Dorothea

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

MC
Moderator
Dipl.Ing. Maschinenbau, Konstrukteur


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

Beiträge: 644
Registriert: 20.10.2000

System:
HP Z400, 32GB RAM
nVidia Quadro 4000
Win10 Enterprise 64bit
SOLIDWORKS 2020 Premium SP5.0
Creo Elements/Direct Modeling (x64) 19.0 M030
Modelmanager 19

erstellt am: 15. Sep. 2004 07:14    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 Dorothea und Claus!
Klasse Tipps! Damit klappt es jetzt endlich, danke.

Dank Eurer Hilfe gibt es für die Kühlbohrungsbohrer hier im Forum bald was zum Ausprobieren.

Grüße aus Braunschweig,
Michael

------------------
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt. (A. Einstein)

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