Ik wil een bestaand programma aanpassen.
In het kort het volgende:
(defun c:PLW ()
(setq plwOld (getvar "PLINEWID")) ;vraag de plinewid op
(setvar "PLINEWID" 0.25) ; geef nieuwe plinewid op
(command "pline")
(princ)
)
De gebruiker moet een pline tekenen, of commando pline afbreken.
De pline wordt nu met de instelling "PLINEWID" op 0.25 getekend.
Nu werkt deze code goed maar ik wil de "PLINEWID" weer op de oude instelling terug zetten als de gebruiker klaar is met deze lisp.
Dit zou ik dan doen met:
(setvar "PLINEWID" plwOld)
Maar als ik deze regel zet na (command "pline")
dan wordt (setvar "PLINEWID" plwOld) eerst uitgevoerd.
Kan het en zo ja hoe moet ik dat aanpakken?
Als de Lisp niet wordt afgebroken dan werkt dit:
(command "_.pline")
(while (/= (getvar 'cmdactive) 0)
(command pause)
)
(setvar 'plinewid plwOld)
Als je wilt dat het ook goed gaat als de gebruiker de Lisp afbreekt dan zul je een *error* functie moeten inzetten of eventueel van reactors gebruik moeten maken.
Beste Eddy,
Probeer uit de bijlage: Plw.lsp
Met vriendelijke groet, HofCAD CSI
PS: Had maar naar reactie 14 gekeken in "Bepaalde comando's in een bepaalde layer ?"
http://www.cadsite.be/smf/index.php?topic=5708.0 (http://www.cadsite.be/smf/index.php?topic=5708.0) in het bestand MyLayCom2.lsp met het programma MyLayRev. :pintje:
Alvast bedankt ga het straks even bekijken. :vreegoe:
Bedankt roy_043 en HofCAD :ole: :pintje: