Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Autolisp Programmierung

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:  Autolisp Programmierung (2356 mal gelesen)
zelle11
Mitglied
Student

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

Beiträge: 1
Registriert: 27.06.2014

erstellt am: 27. Jun. 2014 16:11    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 

Ich habe die Aufgabe eine Funktion im Autocad zu programmieren , die als Taschenrechner für Multiplikationen dient, wenn zwei Dezimalzahlen (getreal) eingegeben wurden. Wenn keiner der beiden Zahlen den Wert Null hat, wird soll das Ergebnis mit einem Anzeigefenster (alert) präsentiert werden,

Ich habe mir folgenden Code überlegt, allerdings funktioniert das noch nicht wirklich, vllt könnt ihr mir ja helfen:

(defun rechner()
(setq a (getreal "Eingabe Zahl 1"))
(setq b (getreal "Eingabe Zahl 2"))
(setq produkt(*ab)
(if(<0 produkt) and (>0 produkt)
(alert produkt)


Danke! 

------------------
ze

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: 27. Jun. 2014 17:24    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 zelle11 10 Unities + Antwort hilfreich

Es fehlen insgesamt 3 Klammern. So kann da gar nicht laufen.
Der Ausdruck (*ab) sollte mindest mit Leerzeichen zwischen a und b sowie dem Operator * geschrieben werden. Zudem kann man auf 0-Werte gut mit zerop vergleichen.
Benutzt du denn nicht die integrierte Visual Lisp Entwicklungsumgebung (Befehl: VLIDE) zur Programmierung?
Zum Umgang mit der IDE hat Jörn Bosse (inkl. Debugging) einiges aufgeschrieben.
Sehr empfehlenswert sind auch diese Seiten
Änfänger
Unnachahmlich gut
http://www.tutorial.autolisp.info/

http://www.afralisp.net/index.php
Fortgeschrittene
http://www.lee-mac.com/

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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: 28. Jun. 2014 12: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 zelle11 10 Unities + Antwort hilfreich

Hallo ze,
vielleicht noch ein Gedankenansatz zur Abfrage der Werte: mit dem logischen AND kannst Du die Abfragen gleich prüfen, wenn eine Ungültig ist passiert nichts, wenn alles korrekt ist wird der multiplizierte Wert A*B in der Alert-Box ausgegeben (RTOS macht aus einer REAL-Zahl einen STRING)

Code:

(defun c:rechner( / A B)
  (if (and
        (setq a (getreal "\nEingabe Zahl 1"))
        (/= a 0.0)
        (setq b (getreal "\nEingabe Zahl 2"))
        (/= b 0.0))
    (alert (rtos (* a b)2 3))
    )
  )


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

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

Orthogonalvermassung Youtube

[Diese Nachricht wurde von joern bosse am 28. Jun. 2014 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: 28. Jun. 2014 17:48    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 zelle11 10 Unities + Antwort hilfreich

Genau,
man könnte auch als sinnig ansehen die Abfrage nach a oder b zu wiederholen falls eine Null angegeben wurde.
Dies wäre mit etwas Schreibarbeit schnell erledigt, oder man nutzt initget.

(initget 1); hoffe die 1 stimmt, kann man aber ja schnell in der Hilfe nachschlagen.
(setq a (getreal "\nZahl1: "))

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

Meldin
Mitglied



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

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 29. Jun. 2014 11:36    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 zelle11 10 Unities + Antwort hilfreich

Hallo,
@cadffm fast ist 2 

Aber das ganze kommt auch ohne Variablen aus.

Code:
(defun rechner ()
  (alert (strcat "Das Ergebnis ist: "
(rtos (* (progn(initget 2)(getreal "\n Eingabe Zahl 1: "))
  (progn(initget 2)(getreal "\n Eingabe Zahl 2: "))
      )
)
)
  )
)

------------------
Gruß Wolfgang

Alias: Rabbit007 und Wolli1 die aus unerklärlichen Gründen aus dem System hier gelöscht wurden. 

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



Senior Auditmanager ? Schwerpunkt Sicherheitstechnik (m/w/d)

Gestalten Sie mit uns die digitale Zukunft! Wir suchen Persönlichkeiten mit Teamgeist, die unsere Leidenschaft für den Schutz von Identitäten und Daten teilen, vorausschauend denken und gemeinsam mit uns an sicheren Digitalisierungslösungen arbeiten wollen. Wir sind überzeugt, dass Veränderungen neue Chancen für Entwicklung und Innovation mit sich bringen. Wir bieten Ihnen ein attraktives Arbeitsumfeld mit vielfältigen Karrieremöglichkeiten und eine sichere berufliche Zukunft....

Anzeige ansehenQualitätsmanagement
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: 29. Jun. 2014 11:55    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 zelle11 10 Unities + Antwort hilfreich

Hallo Wolfgang,
und wenn Du 3 nimmst, dann werden auch ENTER's ohne Eingabe abgefangen.

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

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

Orthogonalvermassung Youtube

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