|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, eine Pressemitteilung 
 | 
| Autor | Thema:  Fehlermeldung (506 mal gelesen) | 
 | Waldemar Mitglied
 Applikationsingenieur
 
   
 
      Beiträge: 264Registriert: 06.09.2001
 Windows 7, Intel Core 2 Duo, P8600AutoCAD, AutoCAD MEP, Revit MEP
 Navisworks
 |    erstellt am: 04. Jun. 2003 11:07  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo zusammen, habe nachfolgenden Bereich in einem Lispprogramm vor einigen Jahren geschrieben (noch unter R14).  (Defun DKL ()(Setq KL (Getstring (Strcat "\nKanallänge <"VKL">: ")))
 (If (/= KL "") (Setq VKL KL))
 (Setq KL VKL)
 (Setq KL (Atof KL))
 (If (<= KL 0)
 (And (Princ "\nWert muss positiv und ungleich Null sein.") (DKL))
 );If
 )
 Seitdem habe ich mich mit Lisp nicht beschäftigt. Unter R2000 bekomme ich nachfolgende Fehlermeldung: ; Fehler: Fehlerhafter Argumenttyp: stringp nil Offensichtlich liegt es an der Zeile mit Getstring und Strcat. Wo ist hier der Fehler begraben. Kann mir jem helfen. Schöne Grüße
 Waldemar
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | axeld Mitglied
 Projektingenieur/CAD-Administrator
 
   
 
      Beiträge: 267Registriert: 18.11.2002
 |    erstellt am: 04. Jun. 2003 12:10  <-- editieren / zitieren -->    Unities abgeben:           Nur für Waldemar   | 
                        | Waldemar Mitglied
 Applikationsingenieur
 
   
 
      Beiträge: 264Registriert: 06.09.2001
 Windows 7, Intel Core 2 Duo, P8600AutoCAD, AutoCAD MEP, Revit MEP
 Navisworks
 |    erstellt am: 04. Jun. 2003 12:22  <-- editieren / zitieren -->    Unities abgeben:            | 
                       
 | Dabrunz Mitglied
 
 
   
 
      Beiträge: 127Registriert: 28.05.2003
 |    erstellt am: 04. Jun. 2003 12:39  <-- editieren / zitieren -->    Unities abgeben:           Nur für Waldemar   
  Tag Waldemar.  Dein Variable [b]VKL[b] ist nicht als STRING initialisert. Es ist auch nicht klar, wo denn ein Wert herkommen soll - ist ja 'ne globale Variable. Außerdem arbeit die Funktion ohne brauchbare Rückgabe. Meine Empfehlung: Code:
 ;
 ;***************************************************************************
 ;****                                                                   ****
 ;****   (get-positive-number <prefix> <default> <postfix> )              ****
 ;****                                                                   ****
 ;****   <prefix>    ::= STRING      - 1. Teil der User-Anfrage          ****
 ;****   <default>   ::= REAL/STRING - positiver Vorgabe-Wert            ****
 ;****   <postfix>   ::= STRING      - Abschluss der User-Anfrage        ****
 ;****                                                                   ****
 ;****   Rückgabe: REAL - Abstand oder Länge                             ****
 ;****                                                                   ****
 ;****   Aufforderung zu Eingabe einer positiven Zahl, auch abgreifbar   ****
 ;****                                                                   ****
 ;***************************************************************************
 ;****                                                                   ****
 ;****   BEISPIEL:                                                       ****
 ;****                                                                   ****
 ;****   (:get-positve-number "\nGrabStein-Länge? <" 12.5 "> ")          ****
 ;****                                                                   ****
 ;****   Befehl:                                                         ****
 ;****   GrabStein-Länge? <12.5> <ENTER>                                 ****
 ;****   -> 12.5                                                         ****
 ;****                                                                   ****
 ;****   Befehl:                                                         ****
 ;****   GrabStein-Länge? <12.5> 38.45678 <ENTER>                        ****
 ;****   -> 38.4568                                                      ****
 ;****                                                                   ****
 ;***************************************************************************
 ;
 (defun get-positive-number (#msg-prefix #default-value #msg-postfix)
 ;** no : ZERO, NEGATIVE, 3D
 (initget (+ 2 4 64))
 (cond
 ((getdist
 ;** zusammen gesetzte Eingabe-Aufforderung
 (strcat
 #msg-prefix
 (str-or-empty #default-value)
 (str-or-empty #msg-postfix)
 )
 )
 ); end Alternative0: Es wurde eine Brauchbare Zahl eingegeben
 ;**** ansonsten wird der <#default-value> wieder zurück gegeben,     ****
 ;**** allerdings zuerst definitiv in eine REAL-Zahl gewandelt.       ****
 ((atof(str-or-empty #default-value)))
 )
 )
 ;
 ;***************************************************************************
 ;****   (str-or-empty <Zahl> )                                           ****
 ;***************************************************************************
 ;****  - wandelt Zahl in STRING (m. fester Anz. Nachkommastellen) ODER  ****
 ;****  - gibt einen eigegebenen STRING unverändert zurück ODER          ****
 ;****  - erzeugt den Standard-Wert ""                                   ****
 ;***************************************************************************
 ;
 (defun str-or-empty (#zahl / )
 (cond
 ((numberp #zahl)      (rtos #zahl 2 4))
 ((='STR (type #zahl)) #zahl)
 ('T "")
 )
 ); end DEFUN <str-or-empty>
 
 Ich denke mal, damit kann eine ganz brauchbare Lösung gebaut werden. Achim Dabrunz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |