Vytisknout stránku | Zavřít okno

přerušení lispu

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=5308
Datum vytištění: 28.čer.2026 v 04:12


Téma: přerušení lispu
Odeslal: Ferdinand
Předmět: přerušení lispu
Datum odeslání: 18.říj.2007 v 16:30
Dá se nějak zakomponovat do lispu, aby v případě přerušení běhu programu se přenastavené sys. prom. vrátily na původní hodnoty? Mám na mysli např. takový případ:
(defun FUNKCE (/ 1VY CLA OSM CDE ORM VWC ... )
  (setq 1VY (getvar "sdi"))
  (setq CLA (getvar "clayer"))
  (setq OSM (getvar "osmode"))
  (setq CDE (getvar "cmdecho"))
  (setq ORM (getvar "orthomode"))
  (setq VWC (getvar "viewctr"))
...atd
začátek procedur...
...
...zde se to zasekne a odporoučí se...
 
Tj. chtěl bych, aby 1VY CLA OSM CDE OSM VWC ... se než CAD spadne, nastavily na
  (setvar "sdi" 1VY)
  (setvar "clayer" CLA)
  (setvar "osmode" OSM)
...atd


-------------
-FerTh-



Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 18.říj.2007 v 16:41
Většina řízených přerušení se dá odchytit přes errorhandler - viz funkce *error*.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: svarc.vl
Datum odeslání: 18.říj.2007 v 17:49
příklad
;zacatek prg
(defun *error* (msg)
(if (/= uchst nill)(progn
                         (setvar "osmode" uchst)
                         (setvar "clayer" hl)
                         );konec progn
);konec if
(princ "error: ")
 (princ msg)
  (princ)

);konec defun

;zacatek prg
;uchovani uchopu
(setq uchst (getvar "osmode"))
(setq hl (GETVAR "CLAYER"))
(setvar "cmdecho" 0)

.
.
.
.
.
.
;nastaveni uchopu na konci prg
(setvar "osmode" uchst)
(setvar "clayer" hl)
 
doufan ze tam nejsou chyby, dopisoval jsem to bez cadu



Vytisknout stránku | Zavřít okno