|  |  | 
|  | 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:  Sub/Function möglich ?? (724 mal gelesen) | 
 | Frank88 Mitglied
 
 
   
 
      Beiträge: 158Registriert: 11.10.2004
 AutoCAD 2019/C3D |    erstellt am: 21. Okt. 2004 08:48  <-- editieren / zitieren -->    Unities abgeben:            
  Guten Morgen, gibt es eigentlich in Lisp eine Möglichkeit, ähnlich wie in anderen Programmiersprachen, Subs oder Functions anzulegen, auf die von anderen Programmteilen aus zugegriffen wird? Gruß, Frank
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | CADmium Moderator
 Maschinenbaukonstrukteur
 
         
 
  
 
      Beiträge: 13533Registriert: 30.11.2003
 . |    erstellt am: 21. Okt. 2004 08:53  <-- editieren / zitieren -->    Unities abgeben:           Nur für Frank88   
  Ja , logo ...  (defun MEINESUB ( A B )   (+ A B) ) und dann im "Hauptprogramm" (defun c:addiere( / A B)(if(and(setq A (getreal "\nErster  Summand : "))
 (setq B (getreal "\nZweiter Summand : "))
 )
 (MEINESUB A B)
 )
 )
 guck dir mal Mapcars Seiten an! ------------------
  - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | fuchsi Mitglied
 Programmierer c#.net Datawarehouse
 
     
 
      Beiträge: 1201Registriert: 14.10.2003
 AutoCad Version 2012 deu/enu<P>Windows 7 64bit
 |    erstellt am: 21. Okt. 2004 08:56  <-- editieren / zitieren -->    Unities abgeben:           Nur für Frank88   
  natürlich geht das z.B.: du musst des öfteren 2 werte addieren (ok. sehr einfachjes Beispiel aber was solls) dann kannst du dir dazu eine eigene funktion schreiben, die das machtz.B.:
 (defun Addiere ( wert1 wert2 / ) (+ wert1 wert2 ))
 die funktion heisst nun addiere und hat 2 übergabepaarameter. zurückgegeben wird das ergebniis der letzten klammer (+ wert1 wert2) diese funktion kannst du nun in allen Lisp-Programmen verwenden. z.B.:(setq w1 (getreal "bitte wert1 eingeben"))
 (setq w1 (getreal "bitte wert2 eingeben"))
 (setq erg (Addiere w1 w2))
 (print erg)
 ------------------WWW.FFZELL.AT.TC
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | fuchsi Mitglied
 Programmierer c#.net Datawarehouse
 
     
 
      Beiträge: 1201Registriert: 14.10.2003
 AutoCad Version 2012 deu/enu<P>Windows 7 64bit
 |    erstellt am: 21. Okt. 2004 08:57  <-- editieren / zitieren -->    Unities abgeben:           Nur für Frank88   | 
                        | CADmium Moderator
 Maschinenbaukonstrukteur
 
         
 
  
 
      Beiträge: 13533Registriert: 30.11.2003
 . |    erstellt am: 21. Okt. 2004 09:05  <-- editieren / zitieren -->    Unities abgeben:           Nur für Frank88   
 Zitat:Original erstellt von fuchsi:
 @CADmium
 schon wieder fast zeitgleich, unddas auch noch mit dem selben Beispiel
 
 
 @Fuchsi :      sorry ------------------
  - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Frank88 Mitglied
 
 
   
 
      Beiträge: 158Registriert: 11.10.2004
 AutoCAD 2019/C3D |    erstellt am: 21. Okt. 2004 09:57  <-- editieren / zitieren -->    Unities abgeben:            | 
                       
| 
  
 |  | 
 | Frank88 Mitglied
 
 
   
 
      Beiträge: 158Registriert: 11.10.2004
 AutoCAD 2019/C3D |    erstellt am: 21. Okt. 2004 11:48  <-- editieren / zitieren -->    Unities abgeben:            
  Zu früh gefreut. In den Subs sollen Zeichenketten bearbeitet und dann wieder zurückgegeben werden. Das passiert in WHILE-Schleifen.  (defun Z_kürzen (VStr Zeile WW) ;Zeichen vom Zeilenanfang bis Vergleichs-String entfernen  (setq Z -1)  (setq TStr WW)  (while (= TStr WW)        (setq Z (+ Z 1))        (setq Zeile (substr Zeile 2))        (setq TStr (wcmatch Zeile VStr))  ) ) Wie bekomme ich nun die Variable Zeile, um die es mir geht, wieder ins Hauptprogramm? Gruß, Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | CADmium Moderator
 Maschinenbaukonstrukteur
 
         
 
  
 
      Beiträge: 13533Registriert: 30.11.2003
 . |    erstellt am: 21. Okt. 2004 11:55  <-- editieren / zitieren -->    Unities abgeben:           Nur für Frank88   
  so: (defun Z_kürzen (VStr Zeile WW)(setq Z -1)
 (setq TStr WW)
 (while (= TStr WW)
 (setq Z (+ Z 1))
 (setq Zeile (substr Zeile 2))
 (setq TStr (wcmatch Zeile VStr))
 )
 ZEILE
 )
 zurückgegeben wird immer das Ergebnis des zuletzt ausgeführten Befehls deshalb solltest du auch mal Mapcars Seite besuchen!!! ------------------
  - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |