problem repeat + getkword


Rekomendowane odpowiedzi

Witam,

Poniżej fragment kodu. Próbuję wykonać pętlę repeat do momentu wskazania przez użytkownika przerwanie przez N lub Esc, chciałbym aby enter było traktowane jako domyślnie T. Niestety w każdym przypadku przerywa wykonywanie programu. Proszę o pomoc.

(defun

 ......

(setq aaa "T")


(repeat

(if (= aaa "T")

(progn
...
);end progn
);end if

(progn
(initget "T N")
(setq aaa (getkword "Kontynuowac? [T/N] <T>:") )
(if (not aaa) (setq aaa "T"))
)

);end repeat

 

) ;end program

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Proponuję tak:
 

(defun ZWCAD:GetKWord (init Prompt DefVal / ans OutVal  *error*) 
	(defun *error* ( msg / ) 
		(if (not (null msg ) )	(progn (princ "\n ZWCAD:GetKWord   : *error*: " ) (princ msg ) (princ "\n")	) )
	)               
  (initget 2 init)
  (setq ans(vl-catch-all-apply 'getkword (list Prompt)))
  (if (not(vl-catch-all-error-p ans))
	  (if ans 
	    (progn
		  (if (equal ans "") 
		    (setq OutVal DefVal)
			(setq OutVal ans)
		  )
		)
		(setq OutVal DefVal)
	  )
  )
	OutVal
)
(setq wybrane (ZWCAD:GetKWord "T N" "Kontynuowac? [T/N] <T>" "T" ) )

 

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie