| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Systemvariabeln Speichern (585 mal gelesen)
|
MonikaB Mitglied Metallbauzeichnerin
Beiträge: 198 Registriert: 28.04.2006 Windows XP (Englisch) AutoCAD 2006/2007 (Englisch)
|
erstellt am: 23. Jun. 2006 16:49 <-- editieren / zitieren --> Unities abgeben:
Hi Habe versucht meine wichtigsten Systemvariablen zu speichern so das ich sie in einer Zeichnung wieder aktualisieren kann Aber irgend wie ist der wurm drin den einige gehen einige nicht Weiss jemand den grund?? (defun C:SYSVAR () (COMMAND "_PICKFIRST" "1" "" "") (COMMAND "_PSLTSCALE" "1" "" "") (COMMAND "_LTSCALE" "4" "" "") (COMMAND "_PICKADD" "1" "" "" ) (COMMAND "_ZOOMFACTOR" "70" "" "") (COMMAND "_PLINETYPE" "0" "" "") (COMMAND "_WMFBKGND" "0" "" "" ) (COMMAND "_INPUTHISTORYMODE" "4" "" "") (COMMAND "_MBUTTONPAN" "1" "" "") (COMMAND "_BLIPMODE" "0" "" "") (COMMAND "_MEASUREMENT" "0" "" "") (COMMAND "_MIRRTEXT" "0" "" "") (COMMAND "_Blockeditlock" "0" "" "") (COMMAND "_REGENMODE" "1" "" "") (COMMAND "_PICKBOX" "6" "" "" ) (COMMAND "_AUTOSNAP "63" "" "") (COMMAND "_POLARANG "45" "" "") (COMMAND "_OSNAPCOORD "2" "" "") (COMMAND "_LWDISPLAY "0" "" "") (COMMAND "_FILLMODE "1" "" "") (COMMAND "_SAVETIME "10" "" "") (COMMAND "_ATTDIA "1" "" "") (COMMAND "_TEXTFILL "1" "" "") (COMMAND "_FILLDIA "1" "" "") (COMMAND "_SDI "0" "" "") (COMMAND "_DIMZIN "8" "" "") (COMMAND "_DIMASSOC "2" "" "") (COMMAND "_SHORTCUTMENU "2" "" "") (COMMAND "_HIGHLIGHT "1" "" "") (COMMAND "_PICKAUTO "1" "" "") (COMMAND "_CMDDIA "1" "" "") (COMMAND "_GRIPS "1" "" "") (COMMAND "_GRIPSIZE "6" "" "") (COMMAND "_PLINEWID "0" "" "") ) Gruss
------------------ Moni Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 23. Jun. 2006 17:05 <-- editieren / zitieren --> Unities abgeben: Nur für MonikaB
|
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
Beiträge: 1629 Registriert: 13.11.2003 Tastaturen, Mäuse, Pladden, ..., AutoCADs 200X, SWX 2kX
|
erstellt am: 23. Jun. 2006 20:23 <-- editieren / zitieren --> Unities abgeben: Nur für MonikaB
Warum mit command ? das ist imho auch kein richtiges Lisp. Im Forum gibts genug Beispiele dass es selten Revisionunabhänig geschweige denn 'produktiv' und 'modular' ist was damit erreicht werden kann. schreib dir zwei Funktionen die, die erste Funktion schreibt dir eine ASCII-Datei in der als 'Lisp-Liste' die Variablen ausgeschrieben und mit der zweiten diese auch in der anderen Datei gesetzt werden können. Ebenfalls kannst da in der zweiten Funktion mit (vl-registry-write, vl-registry-delete auch Windows Registry-Einstellungen in Abhänigkeit des AutoCAD-Profiles (oder gleich alle) mitverwalten. Würde ungefähr so gehen (Denkanstoss): Code:
(defun c:exportacadvars (/ f) (setq f (open "X:\\ORDNER1\\ORDNER2\\ACVARS.TXT" "w")) (write-line "'(" f) (mapcar '(lambda (VAR) (write-line (strcat "(\"" VAR "\" . " (itoa (getvar VAR)) ")") f ) ) '( "ATTDIA" "ATTREQ" "CMDDIA" ;| usw usw |; ) ) (write-line ")" f)
zweite Funktion:
Code:
(defun c:importacadvars (/ f) (setvar "cmdecho" 0) (mapcar '(lambda (VAR) (setvar (car VAR) (cdr VAR)) ) (load "X:\\ORDNER1\\ORDNER2\\ACVARS.TXT") )
naja Denkanstoss ... Funktion schon zu 99% fertig. P.S. Gib command keine Chance ------------------ MfG Proxy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 24. Jun. 2006 11:55 <-- editieren / zitieren --> Unities abgeben: Nur für MonikaB
Zitat: Original erstellt von MonikaB:
Weiss jemand den grund??
Yo, Schlampigkeit ;-) Ab:
Code:
(COMMAND "_AUTOSNAP "63" "" "")
fehlen die "Gänsefüßchen" hinter den Sysvars. Als Alternative zu dem Code von Proxy:
Code:
;| Funktion zum Exportieren der in der Funktion gelisteten Sysvars mit Ihren aktuellen Werten in einer externen Datei. |; (defun SAVE-SYSVARS-EXTERNAL (/ EXPORT-FILENAME EXPORTEDSYSVARS FH LIST-OF-SYSVARS) (setq LIST-OF-SYSVARS '("ATTDIA" "AUTOSNAP" "BLIPMODE" "Blockeditlock" "CMDDIA" "CMDECHO" "DIMASSOC" "DIMZIN" "FILEDIA" "FILLDIA" "FILLMODE" "GRIPS" "GRIPSIZE" "HIGHLIGHT" "INPUTHISTORYMODE" "LTSCALE" "LWDISPLAY" "MBUTTONPAN" "MEASUREMENT" "MIRRTEXT" "OSNAPCOORD" "PICKADD" "PICKAUTO" "PICKBOX" "PICKFIRST" "PLINETYPE" "PLINEWID" "POLARANG" "PSLTSCALE" "REGENMODE" "SAVETIME" "SDI" "SHORTCUTMENU" "TEXTFILL" "WMFBKGND" "ZOOMFACTOR" ) EXPORT-FILENAME "c:\\temp\\mysysvar-backup.cad" ) (setq EXPORTEDSYSVARS ;; vl-remove-if entfernt Sysvars die in einer Acad-Version evtl. nicht bekannt sind (vl-remove-if 'null (mapcar '(lambda (X) (if (setq Y (getvar X)) (list 'setvar X Y) ) ) LIST-OF-SYSVARS ) ) ) (setq FH (open EXPORT-FILENAME "w")) (foreach ELEM EXPORTEDSYSVARS (prin1 ELEM FH) ) (close FH) EXPORTEDSYSVARS ) ;| Wiederherstellen von Sysvars ganz einfach mit einem load: (load "c:\\temp\\mysysvar-backup.cad") Hier in einer Sub-Routine mit Erfolgskontrolle Beispielaufruf: Wenn Sysvardatei im Acad Suchpfad: (RESTORE-SYSVARS-EXTERNAL "mysysvar-backup.cad") Wenn Datei nicht im Suchpfad: (RESTORE-SYSVARS-EXTERNAL "c:\\temp\\mysysvar-backup.cad") |; (defun RESTORE-SYSVARS-EXTERNAL (FULLPATHFILENAME / FILENAME RETVAL) (if (not (setq FILENAME (findfile FULLPATHFILENAME))) (princ (strcat "\nDatei >" FULLPATHFILENAME "< nicht gefunden! Nix geladen." ) ) (if (= (setq RETVAL (load FILENAME "err")) "err") (princ (strcat "\nFehler beim Laden der Datei >" FILENAME "< ! Nix geladen." ) ) (princ (strcat "\nSysvars aus der Datei >" FILENAME "< wiederhergestellt!" ) ) ) ) (princ) )
Die Funktion "SAVE-SYSVARS-EXTERNAL" erzeugt eine Datei mit solchem Inhalt:
Code:
(setvar "ATTDIA" 0) (setvar "AUTOSNAP" 39) (setvar "BLIPMODE" 0) (setvar "CMDDIA" 1) (setvar "CMDECHO" 1) (setvar "DIMASSOC" 1) (setvar "DIMZIN" 8) (setvar "FILEDIA" 1) (setvar "FILLMODE" 1) (setvar "GRIPS" 1) (setvar "GRIPSIZE" 5) (setvar "HIGHLIGHT" 1) (setvar "LTSCALE" 1.0) (setvar "LWDISPLAY" 0) (setvar "MBUTTONPAN" 1) (setvar "MEASUREMENT" 1) (setvar "MIRRTEXT" 0) (setvar "OSNAPCOORD" 2) (setvar "PICKADD" 1) (setvar "PICKAUTO" 1) (setvar "PICKBOX" 6) (setvar "PICKFIRST" 1) (setvar "PLINETYPE" 0) (setvar "PLINEWID" 0.0) (setvar "POLARANG" 1.5708) (setvar "PSLTSCALE" 1) (setvar "REGENMODE" 1) (setvar "SAVETIME" 0) (setvar "SDI" 0) (setvar "SHORTCUTMENU" 11) (setvar "TEXTFILL" 1) (setvar "WMFBKGND" 0) (setvar "ZOOMFACTOR" 60)
Im Prinzip könntest Du solch eine Kette von Anweisungen auch in Deine Funktion "C:SYSVAR" anstatt der commands einbauen. Eleganter finde ich aber das Wiederherstellen aus externer Datei ;-) ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004
|
erstellt am: 24. Jun. 2006 16:44 <-- editieren / zitieren --> Unities abgeben: Nur für MonikaB
|
MonikaB Mitglied Metallbauzeichnerin
Beiträge: 198 Registriert: 28.04.2006 Windows XP (Englisch) AutoCAD 2006/2007 (Englisch)
|
erstellt am: 27. Jun. 2006 22:08 <-- editieren / zitieren --> Unities abgeben:
Danke für die Hilfe Ich weiss ich mache es nicht sehr profesionel da ich aber so viel wie gar nichts verstehe von Programieren, bin ich doch froh wenn ich ab und zu was hin bekomme (mit eurer hilfe) Nun ja es klappt nun wunderbar. Gruss ------------------ Moni Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 28. Jun. 2006 10:13 <-- editieren / zitieren --> Unities abgeben: Nur für MonikaB
|