| |
| 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
Beiträge: 1 Registriert: 27.06.2014
|
erstellt am: 27. Jun. 2014 16:11 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 9732 Registriert: 01.12.2003 One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11
|
erstellt am: 27. Jun. 2014 17:24 <-- editieren / zitieren --> Unities abgeben: Nur für zelle11
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
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 / zitieren --> Unities abgeben: Nur für zelle11
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 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 28. Jun. 2014 17:48 <-- editieren / zitieren --> Unities abgeben: Nur für zelle11
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
Beiträge: 381 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 29. Jun. 2014 11:36 <-- editieren / zitieren --> Unities abgeben: Nur für zelle11
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 ansehen | Qualitätsmanagement |
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
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 / zitieren --> Unities abgeben: Nur für zelle11
|