FastFiber

Instelling veranderen na (command "pline") [Opgelost!!!]

Gestart door EddyBeerke, di 11 06 2013, 08:32:54

Vorige topic - Volgende topic

EddyBeerke

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?
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

roy_043

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.

HofCAD

#2
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 in het bestand MyLayCom2.lsp met het programma MyLayRev. :pintje:
ACADcadabra

EddyBeerke

Alvast bedankt ga het straks even bekijken.   :vreegoe:
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

EddyBeerke

Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/