AutoCAD 2009 - MoveBAK: Ein Express-Tool selber programmiert -
Mit dem Express-Tool “MOVEBAK” kann ein separater Ordner für die Backup-Dateien (*.BAK) der Zeichnungen angegeben werden. Im Normalfall werden diese Dateien im Zeichnungsordner - im selben Ordner wie die DWG’s - gespeichert. die Optionen lassen ein Ändern des Backup-Ordners nicht zu.
Hier ein Beispiel, das diese Funktion in Visual-Lisp vorstellt.
(defun c:MoveBak ( / )
(vl-load-com)
;Der AutoCAD - Produktkey wird ermittelt
(setq currentacad (vlax-product-key))
;Der Gerneral-Schlüssel wird ermittelt
(setq hGeneralKey
(strcat
"HKEY_CURRENT_USER\\"
currentacad
"//fixedprofile//General\\FixedProfile\\General"))
;Der aktuelle Ordner der BAK-dateien wird ermittelt
(setq hCurrentBAKPath
(vl-registry-read hGeneralKey "AcetMoveBak" ))
(if (/= hCurrentBAKPath nil)
;Eingabe des neuen BAK-Ordners
(if (/= hCurrentBAKPath "")
(setq hAnfrageText
(strcat "\nNeuer BAK-Ordner eingeben <"
hCurrentBAKPath
">: "))
(setq hAnfrageText "\nNeuer BAK-Ordner eingeben: ")
);end if
(setq hAnfrageText "\nNeuer BAK-Ordner eingeben: ")
);end if
(setq hKeyValue (getstring hAnfrageText))
;ist eine Eingabe erfolgt und
;wird der alte Wert überschrieben,
;wird der neue BAK-Ordner in
;die Registry geschrieben
(if (/= hKeyValue "")
(progn
(if (not
(setq hError
(vl-registry-write
hGeneralKey
"AcetMoveBak"
hKeyValue)))
(alert "Funktion ist fehlgeschlagen")
);end if
);end progn
);end if
(princ)
)
(vl-load-com)
;Der AutoCAD - Produktkey wird ermittelt
(setq currentacad (vlax-product-key))
;Der Gerneral-Schlüssel wird ermittelt
(setq hGeneralKey
(strcat
"HKEY_CURRENT_USER\\"
currentacad
"//fixedprofile//General\\FixedProfile\\General"))
;Der aktuelle Ordner der BAK-dateien wird ermittelt
(setq hCurrentBAKPath
(vl-registry-read hGeneralKey "AcetMoveBak" ))
(if (/= hCurrentBAKPath nil)
;Eingabe des neuen BAK-Ordners
(if (/= hCurrentBAKPath "")
(setq hAnfrageText
(strcat "\nNeuer BAK-Ordner eingeben <"
hCurrentBAKPath
">: "))
(setq hAnfrageText "\nNeuer BAK-Ordner eingeben: ")
);end if
(setq hAnfrageText "\nNeuer BAK-Ordner eingeben: ")
);end if
(setq hKeyValue (getstring hAnfrageText))
;ist eine Eingabe erfolgt und
;wird der alte Wert überschrieben,
;wird der neue BAK-Ordner in
;die Registry geschrieben
(if (/= hKeyValue "")
(progn
(if (not
(setq hError
(vl-registry-write
hGeneralKey
"AcetMoveBak"
hKeyValue)))
(alert "Funktion ist fehlgeschlagen")
);end if
);end progn
);end if
(princ)
)
Viel Spaß beim Ausprobieren.
Autor: Dipl.-Ing. Jürgen A. Becker
Kontakt: Juergen.Becker@CAD-Becker.de oder Juergen.Becker@AUGI.COM
- Langjährige Schulungserfahrung
- Autorisierter AutoCAD Trainer (AutoCAD, Mechanical Desktop etc.)
- Software- und Datenbankentwicklung
4. März 2009 um 12:15 Uhr
[...] anderen Ordner wie die DWG-Dateien liegen können. Im Blog “YourOwnCode” wird eine Lisp-Routine beschrieben, die dieses ebenfalls [...]
12. März 2009 um 14:23 Uhr
[...] anderen Ordner wie die DWG-Dateien liegen können. Im Blog “YourOwnCode” wird eine Lisp-Routine beschrieben, die dieses ebenfalls [...]