|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | CIDEON Whitepaper: Elektronik und Mechanik redundanzfrei vereinen: Der Weg zur mechatronischen Stückliste, ein Whitepaper 
 | 
| Autor | Thema:  Tage addieren mit VBScript (2187 mal gelesen) | 
 | Niggemann Mitglied
 
 
   
 
      Beiträge: 170Registriert: 31.10.2003
 XP Home ACAD 2004, ACAD 2007, Office 2003, RAM 1 GB, Prozessor AMD Athlon 64 x 2 Dual Core 3800+ |    erstellt am: 22. Jun. 2013 22:35  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Forum, ich hab mir was zusammengebastelt aus anderen Beiträgen und möchte ein Datum herausbekommen bei dem 20 Tage hinzugerechnet wurden. (setq datum "22.06.2013") (defun Tageaddieren ( datum / VBS ret )   (vl-load-com)   (setq VBS (vlax-get-or-create-object "ScriptControl"))   (vlax-put VBS "Language" "VBScript")   (if (= -1 (vlax-invoke VBS "EVAL" (strcat "IsDate(\"" datum "\")")))       (setq ret (vlax-invoke VBS "EVAL" (strcat "DateAdd(\"d\", 20, \"" datum "\")" )))         (setq ret nil)   )   (vlax-release-object VBS)   ret ) als Rückgabe bekomme ich aber nur eine Zahl "41467.0" und kein Datum. Da meine Kenntnisse was vlax-XXX angeht nahezu gleich 0 sind komme ich einfach nicht weiter. Kann mir vieleicht einer auf die Sprünge helfen? Dank im Voraus. Gruß Niggemann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | alterHausmeister Mitglied
 Hausmeister
 
   
 
      Beiträge: 470Registriert: 02.02.2009
 |    erstellt am: 24. Jun. 2013 08:40  <-- editieren / zitieren -->    Unities abgeben:           Nur für Niggemann   | 
                        | Bernd10 Mitglied
 
 
    
 
      Beiträge: 763Registriert: 20.11.2003
 Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz16 GB RAM
 Windows 10 Pro 64-bit
 AutoCAD Mechnical 2020 Deu
 |    erstellt am: 24. Jun. 2013 08:41  <-- editieren / zitieren -->    Unities abgeben:           Nur für Niggemann   
  Hallo Niggemann, ich habe Deinen Programmcode nicht kontrolliert, da ich auch immer mit den bsagten Funktionen kämpfe. In der Anlage ist aber meine Funktion zu Ermittlung des Datums. Edit: Aufruf zum Beispiel: (datum_ermitteln 20 "" "" "dd.mo.yyyy") Viele GrüßeBernd
 
 [Diese Nachricht wurde von Bernd10 am 24. Jun. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | CADwiesel Moderator
 CAD4FM UG
 
      
 
  
 
      Beiträge: 1999Registriert: 05.09.2000
 AutoCAD, BricscadWir machen das Mögliche unmöglich
 |    erstellt am: 24. Jun. 2013 11:47  <-- editieren / zitieren -->    Unities abgeben:           Nur für Niggemann   
  das Datum, sowie die Uhrzeit steckt in der Systemvariablen 'CDATE' hier mal ein codeschnipsel um diese auszulesen und zu verarbeiten: Code:(defun EARX:AUX:DATUM
 (/
 ;;;Deklaration von lokalen Variablen
 EARX_DATUM     ;Wert der Systemvariablen CDATE[String]
 )
 (setq EARX_DATUM (rtos (getvar "CDATE") 2 10))
 ;;;Rückgabe des Datumstextes
 (strcat
 (substr EARX_DATUM 7 2)           ;Tag
 "."
 (substr EARX_DATUM 5 2)           ;Monat
 "."
 (substr EARX_DATUM 3 2)           ;Jahr
 " "
 (substr EARX_DATUM 10 2)          ;Stunden
 ":"
 (substr EARX_DATUM 12 2)          ;Minuten
 " UHR"
 ) ;_ Ende von strcat
 ) ;_ Ende von defun EARX:AUX:DATUM
 
 Rein theoretisch könntest du jetzt die Zeile:
 Code:(substr EARX_DATUM 7 2)
 
 durch
 
 Code:(rtos(+ 20(atoi(substr EARX_DATUM 7 2)))2 0)
 
 ersetzen.
 Aber wenn du zum 25. 20 Tage hinzuzählst, kommt der 45. raus - und den kannsde auf dem Kalender ewig suchen
   ------------------Gruß
 
  CADwiesel Besucht uns im CHAT
 
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | xem Mitglied
 Zeichner
 
    
 
      Beiträge: 859Registriert: 07.08.2008
 Software:AutoCAD 2022 - 64bit
 Windows 10 Pro - 64bit
 PDFCreator 1.0.2 - 32bit
 Ghostscript 9.0 - 64bit
 PDF-XChange Viewer - 64bit
 GIMP 2.6.8 - 64bit
 MS Office 2013 - 32bit
 Opera 12 - 32bit
 MacroX - 32bit
 7-zip - 64bit
 -----------------------
 Hardware:
 Intel i5 680 3,6GHz @ 4GHz
 8GB RAM 1333MHz
 nVidia GTX 460 1024MB
 Intel SSD 2.5 80GB X25-M
 Samsung SyncMaster 245B+
 Iiyama ProLite E1900s
 Logitech mx518
 Logitech G11
 Roccat Sense Glacier Blue
 |    erstellt am: 24. Jun. 2013 13:49  <-- editieren / zitieren -->    Unities abgeben:           Nur für Niggemann   | 
                        | Niggemann Mitglied
 
 
   
 
      Beiträge: 170Registriert: 31.10.2003
 XP Home ACAD 2004, ACAD 2007, Office 2003, RAM 1 GB, Prozessor AMD Athlon 64 x 2 Dual Core 3800+ |    erstellt am: 24. Jun. 2013 20:37  <-- editieren / zitieren -->    Unities abgeben:            
  @ Hausmeister, die Idee ist nicht schlecht werde meinen Beitrag dort nochmal reintellen weil ich mir denke das irgetetwas mit VL... davor  oder dahinter stehen muß. @Bernt, mit deinem Vorschlag kann ich schon mal super weiter machen, mein Problem ist nur das ich ein Datum vorgegeben bekomme und eben X Tage drauf rechnen muß. Danke. @Cadwiesel, bei den 45 war ich auch schon und habe gemerkt das es nicht klappt. Grüße Niggemann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                       
 | Niggemann Mitglied
 
 
   
 
      Beiträge: 170Registriert: 31.10.2003
 XP Home ACAD 2004, ACAD 2007, Office 2003, RAM 1 GB, Prozessor AMD Athlon 64 x 2 Dual Core 3800+ |    erstellt am: 01. Jul. 2013 22:51  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo Bernd, geht doch: (defun Tageaddieren (DATUM  TAGE / VBS RET XX )   (vl-load-com)   (setq VBS (vlax-get-or-create-object "ScriptControl"))   (vlax-put VBS "Language" "VBScript")   (if (= -1 (vlax-invoke VBS "EVAL" (strcat "IsDate(\"" DATUM "\")")))    (progn       (setq XX (fix (vlax-invoke VBS "EVAL" (strcat "DateAdd(\"d\",\"" TAGE "\", \"" DATUM "\")")))             RET (vlax-invoke VBS "EVAL" (strcat "FormatDateTime(\""(itoa XX)"\", vbShortDate)"))));FormatDa    (setq RET nil);sonst   );ende if   (vlax-release-object VBS)   RET ) Damit kannst du auf jede belibige Datum X Tage auf oder abrechnen. Schaltjahre und der 29.Feb. werden auch berücksichtigt. Vieleicht hilft es dir. Gruß Niggemann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |