Hi Yeti,
zu: "wie sieht dein RESET-Knopf (für acad2002?) denn aus"
Na er ist blau/grau und es steht "reset" drauf...
Nein mal im Ernst, es ist 'n Knopf in der Toolbar der folgenden Code ausführt:
Code:
(defun C:RE_SET (/ AKT-ANGBASE AKT-ANGDIR
AKT-AUNITS AKT-AUPREC AKT-INSUNITS
AKT-LUNITS AKT-LUPREC AKT-OSMODE
OLD_CLWEIGHT OLD_LTSCALE OLD_LWDISPLAY
OLD_BLIP OLD_CECHO OLD_CLAY
OLD_CMD OLD_COL OLD_FILE
OLD_LTY OLD_PGEN OLD_PWID
OLD_REG OLD_SCL DEF-OSMODE
FOUNDINI AKT-AUTOSNAP ALT-UCSICON
DEF-AUTOSNAP DEF-LWDISPLAY OLD_HL
)
(XLOAD-DOSLIB) ;_ Doslib laden, falls noch nicht da
(setq OLD_COL (strcase (getvar "cecolor")) ;_ aktuelle Farbe
OLD_LTY (strcase (getvar "celtype")) ;_ aktueller Linientyp
OLD_CLWEIGHT (itoa (getvar "CELWEIGHT")) ;_ aktuelle Linienstärke
OLD_SCL (rtos (getvar "celtscale") 2 3) ;_ aktuelle Linienskalierung
OLD_LTSCALE (rtos (getvar "ltscale") 2 3) ;_ globaler Skalierfaktor
OLD_LWDISPLAY (itoa (getvar "lwdisplay")) ;_ Linienstärke anzeigen
OLD_PGEN (itoa (getvar "plinegen")) ;_ Polylinientyp generieren
OLD_PWID (rtos (getvar "plinewid") 2 3) ;_ PlineBreite
OLD_CMD (itoa (getvar "cmddia")) ;_ Befehlsdialogfelder?
OLD_FILE (itoa (getvar "filedia")) ;_ Dateidialogfelder?
OLD_BLIP (itoa (getvar "blipmode")) ;_ Blips?
OLD_REG (itoa (getvar "regenmode")) ;_ RegenAuto?
OLD_CECHO (itoa (getvar "cmdecho")) ;_ Befehlsecho?
OLD_HL (itoa (getvar "highlight")) ;_ Highlight?
OLD_CLAY (getvar "clayer") ;_ aktueller Layer?
AKT-LUNITS (itoa (getvar "LUNITS")) ;_ Units Format Strecken?
AKT-LUPREC (itoa (getvar "LUPREC")) ;_ Anzahl Dezimalstellen?
AKT-AUNITS (itoa (getvar "AUNITS")) ;_ Winkel Format
AKT-AUPREC (itoa (getvar "AUPREC")) ;_ Dezimalstellen Winkel
AKT-ANGDIR (itoa (getvar "ANGDIR")) ;_ Winkel Mess Richtung?
AKT-INSUNITS (itoa (getvar "INSUNITS")) ;_ Vorgabe Einheiten beim Einfügen?
AKT-ANGBASE (rtos (getvar "ANGBASE") 2 3) ;_ 0-Richtung Winkel
AKT-OSMODE (itoa (getvar "OSMODE")) ;_ OfangMode?
AKT-AUTOSNAP (itoa (getvar "AUTOSNAP")) ;_ Polarfang usw....
ALT-UCSICON (itoa (getvar "UCSICON"))
) ;_ end setq
(if (not (setq FOUNDINI (findfile "zvo.ini")))
(alert
"Sorry, konnte \"ZVO.INI\" nicht finden. Programmabbruch.\nÜberprüfen Sie die Acad-Suchpfadeinstellungen."
) ;_ end of alert
(progn (setq DEF-OSMODE (atoi
(dos_getini "schalter" "defosmode" FOUNDINI)
) ;_ end atoi
DEF-AUTOSNAP (atoi (dos_getini
"schalter"
"defautosnap"
FOUNDINI
) ;_ end dos_getini
) ;_ end atoi
DEF-LWDISPLAY (atoi (dos_getini
"schalter"
"deflwdisplay"
FOUNDINI
) ;_ end dos_getini
) ;_ end atoi
) ;_ end setq
(setvar "cecolor" "bylayer")
(setvar "celtype" "bylayer")
(setvar "CELWEIGHT" -1)
(setvar "celtscale" 1.0)
(setvar "ltscale" 10.0)
(if (= (vl-bb-ref 'ENDACTIVE) t) ;_ RE_SET wurde aus END_WORK aufgerufen...
(progn
(setvar "LWDISPLAY" 0) ;_ also setz auf null
(vl-bb-set 'ENDACTIVE NIL) ;_ und setz die Variable wieder nil
) ;_ end progn
(setvar "LWDISPLAY" DEF-LWDISPLAY) ;_ ansonsten setz auf Wert aus ZVO.INI
) ;_ end if
(setvar "plinegen" 0)
(setvar "plinewid" 0.0)
(setvar "cmddia" 1)
(setvar "filedia" 1)
(setvar "blipmode" 1)
(setvar "regenmode" 1)
(if (or (= (type SETZLAYER) 'USUBR) ;_ vlisp 14
(= (type SETZLAYER) 'list) ;_ lisp
(= (type SETZLAYER) 'SUBR) ;_ vlisp 15
) ;_ end of or
(SETZLAYER "0")
) ;_ end if
(setvar "LUNITS" 2) ;_ Längeneinheiten "Dezimal"
(setvar "LUPREC" 3) ;_ Längennachkommastellen 3
(setvar "AUNITS" 2) ;_ Winkeleinheiten "Grad"
(setvar "AUPREC" 3) ;_ Winkelnachkommastellen 3
(setvar "ANGDIR" 1) ;_ Winkelrichtung "Im Uhrzeigersinn"
(setvar "INSUNITS" 0) ;_ Units DesignCenter "Keine"
(setvar "ANGBASE"
(* 2 pi (/ 90.0 360)) ;_0-Richtung Norden
) ;_ end of setvar
(setvar "OSMODE" DEF-OSMODE)
(setvar "AUTOSNAP" DEF-AUTOSNAP)
(setvar "UCSICON" 1)
(command "_.ucs" "_w")
(setvar "cmdecho" 1)
(setvar "highlight" 1)
(princ "\nFolgende Systemvariable wurden gesetzt: ")
(princ "\nAktuelle Farbe: \"CECOLOR\"")
(princ (strcat "\n\tvon:\t"
OLD_COL
"\n\tauf:\t"
(strcase (getvar "cecolor"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nAktueller Linientyp: \"CELTYPE\"")
(princ (strcat "\n\tvon:\t"
OLD_LTY
"\n\tauf:\t"
(strcase (getvar "celtype"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nAktuelle Linienstärke: \"CELWEIGHT\"")
(princ (strcat "\n\tvon:\t"
OLD_CLWEIGHT
"\n\tauf:\t"
(itoa (getvar "CELWEIGHT"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nAktuelle Linienskalierung: \"CELTSCALE\"")
(princ (strcat "\n\tvon:\t"
OLD_SCL
"\n\tauf:\t"
(rtos (getvar "celtscale") 2 3)
) ;_ end of strcat
) ;_ end of princ
(princ "\nGlobaler Linienskalierfaktor: \"LTSCALE\"")
(princ (strcat "\n\tvon:\t"
OLD_LTSCALE
"\n\tauf:\t"
(rtos (getvar "ltscale") 2 3)
) ;_ end of strcat
) ;_ end of princ
(princ "\nAnzeige von Linienstärken: \"LWDISPLAY\"")
(princ (strcat "\n\tvon:\t"
OLD_LWDISPLAY
"\n\tauf:\t"
(itoa (getvar "lwdisplay"))
) ;_ end of strcat
) ;_ end of princ
(princ
"\nLinientyp für gesamte PLinie generieren: \"PLINEGEN\""
) ;_ end of princ
(princ (strcat "\n\tvon:\t"
OLD_PGEN
"\n\tauf:\t"
(itoa (getvar "plinegen"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nAktuelle Poly Linienbreite: \"PLINEWID\"")
(princ (strcat "\n\tvon:\t"
OLD_PWID
"\n\tauf:\t"
(rtos (getvar "plinewid") 2 3)
) ;_ end of strcat
) ;_ end of princ
(princ "\nDialogfelder für Befehle: \"CMDDIA\"")
(princ (strcat "\n\tvon:\t"
OLD_CMD
"\n\tauf:\t"
(itoa (getvar "cmddia"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nDialogfelder für Dateioperationen: \"FILEDIA\"")
(princ (strcat "\n\tvon:\t"
OLD_FILE
"\n\tauf:\t"
(itoa (getvar "filedia"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nModus für Markierungspunkte: \"BLIPMODE\"")
(princ (strcat "\n\tvon:\t"
OLD_BLIP
"\n\tauf:\t"
(itoa (getvar "blipmode"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nModus für Regenerierung: \"REGENMODE\"")
(princ (strcat "\n\tvon:\t"
OLD_REG
"\n\tauf:\t"
(itoa (getvar "regenmode"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nModus für Befehls-Echo: \"CMDECHO\"")
(princ (strcat "\n\tvon:\t"
OLD_CECHO
"\n\tauf:\t"
(itoa (getvar "cmdecho"))
) ;_ end of strcat
) ;_ end of princ
(princ
"\nModus für Hervorhebung von Objekten: \"HIGHLIGHT\""
) ;_ end of princ
(princ (strcat "\n\tvon:\t"
OLD_HL
"\n\tauf:\t"
(itoa (getvar "highlight"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nAktueller Layer: \"CLAYER\"")
(princ (strcat "\n\tvon:\t"
OLD_CLAY
"\n\tauf:\t"
(getvar "clayer")
) ;_ end of strcat
) ;_ end of princ
(princ "\nEinheitenformat für Strecken: \"LUNITS\"")
(princ (strcat "\n\tvon:\t"
AKT-LUNITS
"\n\tauf:\t"
(itoa (getvar "LUNITS"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nDezimalstellen für Strecken: \"LUPREC\"")
(princ (strcat "\n\tvon:\t"
AKT-LUPREC
"\n\tauf:\t"
(itoa (getvar "LUPREC"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nEinheitenformat für Winkel: \"AUNITS\"")
(princ (strcat "\n\tvon:\t"
AKT-AUNITS
"\n\tauf:\t"
(itoa (getvar "AUNITS"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nDezimalstellen für Winkel: \"AUPREC\"")
(princ (strcat "\n\tvon:\t"
AKT-AUPREC
"\n\tauf:\t"
(itoa (getvar "AUPREC"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nUhrzeigersinn für Winkelmessung: \"ANGDIR\"")
(princ (strcat "\n\tvon:\t"
AKT-ANGDIR
"\n\tauf:\t"
(itoa (getvar "ANGDIR"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nNullrichtung für Winkelmessung: \"ANGBASE\"")
(princ (strcat "\n\tvon:\t"
AKT-ANGBASE
"\n\tauf:\t"
(rtos (getvar "ANGBASE") 2 3)
) ;_ end of strcat
) ;_ end of princ
(princ
"\nVorgabe-Einheitenformat für DesignCenter: \"INSUNITS\""
) ;_ end of princ
(princ (strcat "\n\tvon:\t"
AKT-INSUNITS
"\n\tauf:\t"
(itoa (getvar "INSUNITS"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nModus BKS-Symbol: \"UCSICON\"")
(princ (strcat "\n\tvon:\t"
ALT-UCSICON
"\n\tauf:\t"
(itoa (getvar "UCSICON"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nObjektfangmodus: \"OSMODE\"")
(princ (strcat "\n\tvon:\t"
AKT-OSMODE
"\n\tauf:\t"
(itoa (getvar "OSMODE"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nAutosnap-Modus: \"AUTOSNAP\"")
(princ (strcat "\n\tvon:\t"
AKT-AUTOSNAP
"\n\tauf:\t"
(itoa (getvar "AUTOSNAP"))
) ;_ end of strcat
) ;_ end of princ
(princ "\nKoordinatensystem:")
(princ "\nWeltkoordinaten")
(princ "\nOK, Systemvariablen auf ZVO-Vorgabe geändert!")
) ;_ end of progn
) ;_ end of if
(princ)
) ;_ end defun(defun C:RE_SET+ (/)
(C:RE_SET)
(setq IDLISTE NIL)
(setq SUCHLISTE NIL)
(princ
"\nACHTUNG! Kontroll-Listen für Raster und 5000er Pläne gelöscht!"
) ;_ end princ
(princ)
) ;_ end defun
(defun XLOAD-DOSLIB (/ CHK FND LOADED PGM)
(setq PGM "doslib2k.arx"
CHK "doslib2k.arx"
) ;_ end setq
(if (wcmatch (strcase PGM) "*.ARX")
(progn (if (not (member CHK (arx)))
(progn (setq FND (findfile PGM))
(if FND
(setq LOADED (arxload FND "err"))
(setq FND NIL)
) ;_ end if
) ;_ end progn
(setq LOADED t
FND t
) ;_ end of setq
) ;_ end of if
) ;_ end of progn
) ;_ end of if
(cond
((= FND NIL)
(alert
(strcat
"\nFehler! Kann Datei \""
PGM
"\" nicht finden.\nSuchpfadeinstellungen prüfen!\(Plotten.lsp\)"
) ;_ end strcat
) ;_ end alert
(exit)
)
((eq LOADED "err")
(alert
(strcat "\nFehler! Kann Datei \""
PGM
"\" nicht LADEN.\nProgrammende!\(Plotten.lsp\)"
) ;_ end strcat
) ;_ end alert
(exit)
)
) ;_ end of cond
) ;_ end of defun
(defun C:SETOS (/ FOUNDINI GOTIT GOTITTXT GOT-AUTOSNAP GOT-OSMODE)
(XLOAD-DOSLIB)
(if (not (setq FOUNDINI (findfile "zvo.ini")))
(alert
"Sorry, konnte \"ZVO.INI\" nicht finden. Programmabbruch.\nÜberprüfen Sie die Acad-Suchpfadeinstellungen."
) ;_ end of alert
(progn
(initget 1 "Ein Aus Derzeitig")
(setq GOTIT
(getkword
"\nÄndern der Vorgabe-Werte für OFANG und AUTOSNAP in der \"ZVO.INI\" [Ein/Aus/Derzeitig]:"
) ;_ end of getint
) ;_ end of setq
(if GOTIT
(progn
(cond ((eq GOTIT "Derzeitig")
(setq GOT-OSMODE (itoa (getvar "osmode")) ;_ end of itoa
GOT-AUTOSNAP (itoa (getvar "autosnap"))
) ;_ end of setq
)
((eq GOTIT "Ein")
(setq GOT-OSMODE (itoa 4133)
GOT-AUTOSNAP (getvar "autosnap")
) ;_ end of setq
(if (/= (logand 8 GOT-AUTOSNAP) 8)
(setq GOT-AUTOSNAP (+ GOT-AUTOSNAP 8))
) ;_ end of if
(if (/= (logand 16 GOT-AUTOSNAP) 16)
(setq GOT-AUTOSNAP (+ GOT-AUTOSNAP 16))
) ;_ end of if
(setvar "osmode" 4133)
(setvar "autosnap" GOT-AUTOSNAP)
(setq GOT-AUTOSNAP (itoa GOT-AUTOSNAP))
)
((eq GOTIT "Aus")
(setq GOT-OSMODE (itoa 20517)
GOT-AUTOSNAP (getvar "autosnap")
) ;_ end of setq
(if (= (logand 8 GOT-AUTOSNAP) 8)
(setq GOT-AUTOSNAP (- GOT-AUTOSNAP 8))
) ;_ end of if
(if (= (logand 16 GOT-AUTOSNAP) 16)
(setq GOT-AUTOSNAP (- GOT-AUTOSNAP 16))
) ;_ end of if
(setvar "osmode" 20517)
(setvar "autosnap" GOT-AUTOSNAP)
(setq GOT-AUTOSNAP (itoa GOT-AUTOSNAP))
)
(t (princ "\nNix verändert...."))
) ;_ end of cond
(dos_setini "schalter" "defosmode" GOT-OSMODE FOUNDINI)
(dos_setini "schalter" "defautosnap" GOT-AUTOSNAP FOUNDINI)
) ;_ end of progn
) ;_ end of if
) ;_ end of progn
) ;_ end of if
(princ)
) ;_ end of defun
(princ
"\nZVO-Vorgaben für Systemvariablen setzen! Befehle:\"RE_SET\",\"RE_SET+\",\"SETOS\""
) ;_ end princ
(princ)
Wie Du sicherlich siehst, ist das recht spezifisch für meine Benutzerumgebung. Ein Teil der Einstellungen wird in einer ini Datei gespeichert, die ich dann entsprechend auslese (so kann dann jeder User seine eigenen Einstellungen auf'm Ini-Knopf haben):
Inhalt "ZVO.INI":
[schalter]
defosmode=20517
defautosnap=39
deflwdisplay=1
Die Funktion SETOS ermöglicht zweierlei:
Der "normale" User kann den Wert für "defosmode" und "defautosnap") (darauf greift re_set ja zurück) in der ZVO.INI auf seine Wunscheinstellungen setzen ("DERZEITIG").
Der User kann zwei Defaulteinstellungen wählen "EIN" oder "AUS", wobei sich die Einstellungen immer auf "OSMODE" und "AUTOSNAP" auswirken. Einfach gesagt, die Schalter für "Polar", "OFANG" und "QTRACK" sind gedrückt ("EIN") oder nicht ("AUS").
Damit das ganze funzt, braucht man aber das doslib von Robert McNeel ab Version 5.
PS:
Ach ja hier der Button-Code:
^C^C^P(if (null c:re_set)(load "re_set.lsp"))(princ);re_set;
Anmerkung:
Ich vergaß folgendes noch... RE_SET ruft noch 'n Programm auf: (setzlayer "0"). Das ist hier nicht enthalten. Damit wird der Layer 0 bei RE_SET auf Null gesetzt. Ginge auch mit (setvar "clayer" "0") aber setzlayer prüft vorher noch den Lock/Freeze usw. Status bzw. setzt auch für diesen Layer Defaultwerte die wiederum in 'ner anderen ini gespeichert sind... Aber das könnt Ihr Euch ja umstricken...
Ciao,
Marc
[Diese Nachricht wurde von marc.scherer am 11. Juli 2002 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP