_

Lisp - zapamiętanie zmiennej

Forum poświęcone flagowemu produktowi oraz aplikacjom pochodnym Autodesku. To jedyne forum mające w tytule nazwę programu, a to ze względu na jego olbrzymią popularność w Polsce. Można tutaj umieszczać również posty z ogólnie pojętej tematyki "Kreślarskie 2D".

Lisp - zapamiętanie zmiennej

Postprzez Ed10_1212 » maja 29, 2017 15:37

Pewnie okaże sie banalne. Potrzebuje zapamiętać zmienną nazwijmy ją skala którą używam w lispie tak żeby przy kolejnym użyciu nie wklepywać od nowa.
Fragment lipsa:

(setq skala (getreal "\nSkala <25>: "))
(if (= skala nil )(setq skala 25))
(setq H (* 2.0 SKALA))

Przy pierwszym użyciu skoro nie ma wartości to wstawiam 25 ale przy kolejnym uruchomieniu lispa chciałbym żeby zapamiętywał na czym skończyłem (np 50, 100 itd)
Dzięki z góry z pomoc.
Ed10_1212
 
Posty: 2
Dołączył(a): maja 29, 2017 15:29

Re: Lisp - zapamiętanie zmiennej

Postprzez agregu » maja 29, 2017 20:57

1) Zapisz zmienną do pliku tekstowego który będzie odczytywany przy uruchamianiu funkcji i zapisywany np po każdej zmianie wartości zmiennej.
Poczytaj/poszukaj o funkcjach write-line i read-line i plikach tekstowych
2) jeżeli rzecz dotyczy jednego pliku dwg pomyśl o przypisywaniu wartości w zmiennej userr1, userr2, userr3, userr4 i userr5 które są przcchowywane w pliku dwg
_____________________________________________________________________________________
agregu
agregu
 
Posty: 44
Dołączył(a): kwi 22, 2011 08:35

Re: Lisp - zapamiętanie zmiennej

Postprzez kojacek » maja 30, 2017 07:17

agregu napisał(a):1) Zapisz zmienną do pliku tekstowego który będzie odczytywany przy uruchamianiu funkcji i zapisywany np po każdej zmianie wartości zmiennej.
Poczytaj/poszukaj o funkcjach write-line i read-line i plikach tekstowych
2) jeżeli rzecz dotyczy jednego pliku dwg pomyśl o przypisywaniu wartości w zmiennej userr1, userr2, userr3, userr4 i userr5 które są przcchowywane w pliku dwg



Ad 1) Pomyśl o pliku *.ini --> https://kojacek.wordpress.com/2017/04/21/autolisp-i-pliki-ini/
Avatar użytkownika
kojacek
 
Posty: 5232
Dołączył(a): paź 03, 2005 20:17

Re: Lisp - zapamiętanie zmiennej

Postprzez ziele_o2k » maja 30, 2017 08:23

Ja sobie radzę za pomocą słownika dla każdego dwga
Ziele
Avatar użytkownika
ziele_o2k
 
Posty: 421
Dołączył(a): mar 18, 2014 11:33
Lokalizacja: Poznań

Re: Lisp - zapamiętanie zmiennej

Postprzez Kizior » maja 30, 2017 08:46

Ed10_1212 napisał(a):Pewnie okaże sie banalne. Potrzebuje zapamiętać zmienną nazwijmy ją skala którą używam w lispie tak żeby przy kolejnym użyciu nie wklepywać od nowa.
Fragment lipsa:

(setq skala (getreal "\nSkala <25>: "))
(if (= skala nil )(setq skala 25))
(setq H (* 2.0 SKALA))

Przy pierwszym użyciu skoro nie ma wartości to wstawiam 25 ale przy kolejnym uruchomieniu lispa chciałbym żeby zapamiętywał na czym skończyłem (np 50, 100 itd)
Dzięki z góry z pomoc.


Jeśli problemem jest częsta potrzeba wprowadzania tej samej zmiennej to możesz skorzystać z pętli while. Mało ekonomiczne jest potwierdzanie tej samej zmiennej przy każdym cyklu programu. Wybierasz skalę i działasz w pętli jeśli wymagana jest ponowna zmian skali to uruchamiasz program ponownie.
Avatar użytkownika
Kizior
 
Posty: 175
Dołączył(a): paź 12, 2011 22:01
Lokalizacja: Lublin

Re: Lisp - zapamiętanie zmiennej

Postprzez daniel5 » maja 30, 2017 10:06

Są też w AC zmienne użytkownika np.: USERR1-5.
daniel5
 
Posty: 251
Dołączył(a): sty 31, 2008 15:39
Lokalizacja: Sochaczew

Re: Lisp - zapamiętanie zmiennej

Postprzez Ed10_1212 » cze 13, 2017 14:06

Dzięki za pomoc. Zrobiłem tak

(setq a (getvar "USERR1"))
(setq skala (getreal (strcat "\nSkala <" (rtos a) ">: ") ))
(if (= skala nil )(setq skala a))
(setq H (* 2.0 SKALA))
Ed10_1212
 
Posty: 2
Dołączył(a): maja 29, 2017 15:29


Powrót do AutoCAD

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników