| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY-Webinar am 24. April 2025: Explore NVIDIA RTX PRO Blackwell Professional GPU’s, ein Webinar am 24.04.2025
|
Autor
|
Thema: Wiederholung der ehemaligen Texteingabe (472 mal gelesen)
|
Mario Scht Mitglied
 
 Beiträge: 156 Registriert: 14.11.2002 Win XP ACAD 2007
|
erstellt am: 23. Apr. 2003 11:09 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ich komme hier nicht weiter. Ich möchte, dass wenn nichts eingegeben wird (Space oder Enter) entweder der Vorgabetextstring oder der letzte eingegebene Textstring übernommen wird. Wenn beide Zeichen auch bereits strings sind, dann kann das so nicht funktionieren, dashalb habe ich es auch schon mal mit (if (= "" (.... versucht, aber auch ohne Erfolg. Besten Dank für die Hilfe Mario (if (not (type FLtyp)) (setq FLtyp "HNF") ) (if (not (setq FLtyp_H (getstring (strcat "\nFlächetyp: " FLtyp " ? : ")))) (setq FLtyp_H FLtyp) (setq FLtyp FLtyp_H) )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4191 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 23. Apr. 2003 11:38 <-- editieren / zitieren --> Unities abgeben:          Nur für Mario Scht
Hallo Mario, ich habe mal etwas umgestellt. Aus dem Hauptprogramm wird die Eingabe-SUB-aufgerufen. In der MAIN habe ich den Befehlsaufruf 2mal hintereinander, dass du siehst, dass der vorherige Wert übernommen wird. Bei Fragen ... Grüße Holger
Code:
(defun c:MAIN (/ Flt) ;... (setq Flt (get_eingabe Flt) Flt (get_eingabe Flt) ) ;... ) (defun get_eingabe (Fltyp / antw) (setq antw (getstring (strcat "\nFlächetyp <" (if FLtyp Fltyp (setq Fltyp "HNF") ) ">:" ) );getstring ) (if (and antw (/= "" (VL-STRING-LEFT-TRIM " " antw)) ) (setq FLtyp antw) ) Fltyp )
------------------ Holger Brischke CADlon - Lisp over night! Neue Tool's im Free-&Download Zugang zum Download schon gesichert? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mario Scht Mitglied
 
 Beiträge: 156 Registriert: 14.11.2002 Win XP ACAD 2007
|
erstellt am: 23. Apr. 2003 13:21 <-- editieren / zitieren --> Unities abgeben:         
Hallo Holger, vielen Dank für die schnelle Hilfe. Es funktioniert. (VL-STRING-LEFT-TRIM " " ANTWORT) Was mach das genau (ich habe nur LT und entsprechende Fachliteratur ist noch in der Planung) Grüße Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
       

 Beiträge: 4191 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 23. Apr. 2003 13:50 <-- editieren / zitieren --> Unities abgeben:          Nur für Mario Scht
|
Mario Scht Mitglied
 
 Beiträge: 156 Registriert: 14.11.2002 Win XP ACAD 2007
|
erstellt am: 28. Apr. 2003 12:04 <-- editieren / zitieren --> Unities abgeben:         
Hallo, noch 'ne Frage: Wie habe ich die erste Zeile zu verstehen, ohne Operant, was bewirkt diese in Worten ausgedrückt? (if FLtyp Fltyp ; ? (setq Fltyp "HNF"); WennZweig ) Vielen Dank vorab. Grüße Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
benwisch Mitglied Bautechniker, CAD-Konstrukteur
 
 Beiträge: 375 Registriert: 01.02.2001
|
erstellt am: 28. Apr. 2003 13:20 <-- editieren / zitieren --> Unities abgeben:          Nur für Mario Scht
if var bedeutet, "hat die variable einen wert ?", also ungleich nil (nil=nix) if var var bedeutet, wenn var einen wert hat, dann schreibe var (beachte strcat !) wenn var keinen wert hat, also nil, dann die nächste zeile abarbeiten (setq ...) [Diese Nachricht wurde von benwisch am 28. April 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
andi2050 Mitglied
 
 Beiträge: 107 Registriert: 11.03.2003
|
erstellt am: 28. Apr. 2003 14:29 <-- editieren / zitieren --> Unities abgeben:          Nur für Mario Scht
Hi Mario Die IF-Funktion hat folgende Syntax: (IF <Bedingung> <THEN-Argument> [<ELSE-Argument>]) <Bedingung> und <THEN-Argument> MÜSSEN vorhanden sein. <ELSE-Argument> muß NICHT zwingend vorhanden sein. Wenn die Auswertung der <Bedingung> NICHT 'nil ergibt, wird das <THEN-Argument> ausgewertet. Wenn <Bedingung> 'nil ergibt, wird das <ELSE-Argument> (wenn vorhanden) ausgewertet. Die IF-Funktion gibt immer den zuletzt ausgewerteten Ausdruck zurück. In Deinem Fall sieht das dann folgendermaßen aus: (if ;;;<Bedingung >[Prüfen, ob dem Symbol "Fltyp" ein Wert zugewiesen ist] FLtyp ;;; <THEN> [Wenn in Fltyp was 'drin' ist, dann dessen Inhalt zurückgeben] Fltyp ;;; <ELSE> [Wenn 'nil 'drin' ist, dann dem Symbol "HNF" zuweisen und dies zurückgeben] (setq Fltyp "HNF") );if Der von IF zurückgegebene Wert wird in dem Programm dann durch STRCAT mit zwei weiteren Strings 'zusammengepappt'. Vielleicht ist es jetzt ein bisserl klarer... Grüße Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |