|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung 
 | 
| Autor | Thema:  Wiederholung der ehemaligen Texteingabe (586 mal gelesen) | 
 | Mario Scht Mitglied
 
 
   
 
      Beiträge: 156Registriert: 14.11.2002
 Win XPACAD 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: 4201Registriert: 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: 156Registriert: 14.11.2002
 Win XPACAD 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: 4201Registriert: 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: 156Registriert: 14.11.2002
 Win XPACAD 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: 375Registriert: 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: 107Registriert: 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 |