Zitat:
osmode;6327
Hallo,
welche Kombination an Objektfängen wird durch diesen Bitcode aktiviert?
Objektfang-Kombination: Hilfslinie + angenommener Schnittpunkt + Lot + Schnittpunkt + Quadrant + Zentrum + Mittelpunkt + Endpunkt.
Um die Gefahr zu reduzieren, ungewollte Elemente auszuwählen, wäre schon zu empfehlen, das Programm derart zur gestalten, dass immer genau diejenige Kombination an Objektfängen gewählt wird, die den größten Erfolg verspricht. Im konkreten Fall sollte die Kombination Endpunkt + Schnittpunkt aktiviert werden. Dies entspricht dem Bitcode 33.
Darüber hinaus wäre es ideal, vor der Umstellung den aktuellen Wert abzufragen, zu speichern und nach Ausführung des Programms wieder herzustellen.
Beispiel:
Speichern:
(setq *OSMODE* getvar "osmode"))
Wieder herstellen:
(setvar "osmode" *OSMODE*)
*OSMODE* sollte dabei eine globale Variable sein. Dies hat den Vorteil, dass sie in einer error-Funktion wirksam werden kann, die es idealerweise in der Applikation gibt.
Beispiel:
(defun *error* (MSG)
(princ (strcat "\nFehler: " MSG))
(setvar "osmode" *OSMODE*)
...weitere Werte, die zurückgestellt werden sollen
(princ)
)
Die *error*-Funktion ist natürlich nicht nur für die Schraffurfunktion da, sondern für alle Funktionen der Applikation. Deshalb soll sie alle Systemvariablen zurückstellen, die von Funktionen während ihrer Ausführung verändert werden konnten. Dies hat den Vorteil, dass im Falle eines Fehlers die Ausgangswerte wieder hergestellt werden, weshalb ein "eigenartiges Verhalten", wie es sonst AutoCAD gerne nach Programmabstürzen zeigt, vermieden wird.
Gruß, Mailüfterl
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP