Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

LISP - Problemoni con comando RTOS

174 views
Skip to first unread message

Emiliano - EmiCAD

unread,
Jul 3, 2002, 8:43:03 AM7/3/02
to
Ciao a tutti,
ho dei problemi con il comando lisp RTOS.

Questo comando dovrebbe convertire un numero reale in una stringa con un
numero preciso di decimali.
Quindi:

se scrivo:
(setq x 30.2)
(setq x-txt (rtos x 2 3))

dovrebbe restituire "30,200" perchè gli ho detto che voglio tre cifre dopo i
decimali.

Purtroppo però a volte funziona e a volte no, nel senso che capita spesso
che togli glie "0" dei decimali; cosa che io non voglio assolutamente. Non
ho ancora capito se il problema si verifica solo su alcuni file o su alcuni
PC.
La versione di AutoCAD è la 2002.

Spero vivamente in un vostro aiuto.

Ciao a tutti da Emiliano - Webmaster di EmiCAD® - Tutto per AutoCAD
e-mail: webm...@emicad.it
web: www.emicad.it

Stefano Gaggioli

unread,
Jul 4, 2002, 3:31:05 AM7/4/02
to
Ciao,
Prova di applicare questa condizione e, tutto funzionerà benissimo:

(setq x 30.2)
(setq dopovirgola
(if (= (vl-string-position (ascii ".") (rtos x)) nil)
(+ (strlen (rtos x)) 1)
(+ (vl-string-position (ascii ".") (rtos x)) 1)
)
)
(setq lunghezzatotale (strlen (rtos x)))
(setq differenza (- lunghezzatotale dopovirgola))
(cond ((<= differenza -1)
(setq x-txt (strcat (rtos x 2 2) ".000"))
)
((= differenza 1) (setq x-txt (strcat (rtos x 2 2) "00")))
((= differenza 2) (setq x-txt (strcat (rtos x 2 2) "0")))
((>= differenza 3) (setq x-txt (rtos x 2 3)))
)

--
Saluti da Stefano Gaggioli - Bologna
---
Visita il mio sito:
http://space.tin.it/computer/stefanogaggioli

"Emiliano - EmiCAD" <ligh...@tin.it> ha scritto nel messaggio
news:rjCU8.101688$j65.2...@twister1.libero.it...

Emiliano - EmiCAD

unread,
Jul 4, 2002, 8:09:42 AM7/4/02
to
Ti ringrazio,
non ho ancora provato la tua soluzione, ma leggendola mi pare possa andare
bene.

Però mi sembra strano che RTOS non funzioni da solo, leggendo la guida
sembrerebbe fatta apposta per aggiungere gli zero automaticamente.
Inoltre con la tua soluzione nel caso voslio 7 cifre dopo la virgola dovrei
fare un COND pazzesco.
Possibile che RTOS non funzioni come dovrebbe??

--
Ciao da Emiliano - Webmaster di EmiCAD® - Tutto per AutoCAD
e-mail: webm...@emicad.it
web: www.emicad.it

"Stefano Gaggioli" <vap...@iperbole.bologna.it> ha scritto nel messaggio
news:ag0thp$s59$1...@panco.nettuno.it...

Stefano Gaggioli

unread,
Jul 5, 2002, 3:18:57 AM7/5/02
to
Ciao,
ho trovato anche:
impostare DIMZIN=O
--
Ciao da Stefano Gaggioli
---
(http://space.tin.it/computer/stefanogaggioli)


"Emiliano - EmiCAD" <ligh...@tin.it> ha scritto nel messaggio

news:aWWU8.106649$j65.2...@twister1.libero.it...

Giuppi

unread,
Jul 5, 2002, 3:07:07 PM7/5/02
to
Dal post di Emiliano - EmiCAD del Thu, 04 Jul 2002 12:09:42 GMT :

> ho dei problemi con il comando lisp RTOS.
> Questo comando dovrebbe convertire un numero reale in una stringa con un
> numero preciso di decimali.
> Quindi:
> se scrivo:
> (setq x 30.2)
> (setq x-txt (rtos x 2 3))
> dovrebbe restituire "30,200" perchè gli ho detto che voglio tre cifre dopo

> decimali.
> Purtroppo però a volte funziona e a volte no,

Nel caso di cifre finali uguali a zero
Rtos fa dipendere la loro visualizzazione dalla variabile DIMZIN

i valori che puo' assumere DIMZIN sono:

0 Suppresses zero feet and precisely zero inches
1 Includes zero feet and precisely zero inches
2 Includes zero feet and suppresses zero inches
3 Includes zero inches and suppresses zero feet
4 Suppresses leading zeros in decimal dimensions
8 Suppresses trailing zeros in decimal dimensions
12 Suppresses both leading and trailing zeros

impostando DIMZIN a 1
l'espressione (setq x-txt (rtos 12 2 3)) da sempre "12.000"

^^^^^^^

@bye .Blubi.

Emiliano - EmiCAD

unread,
Jul 8, 2002, 2:01:52 AM7/8/02
to
Vi ringrazio mi siete stati veramente utili, ringrazio anche chi ha
inventato i NG!!

--
Ciao da Emiliano - Webmaster di EmiCAD® - Tutto per AutoCAD
e-mail: webm...@emicad.it
web: www.emicad.it

"Giuppi" <New...@spamless.it> ha scritto nel messaggio
news:i1rbiuockaqc8npo4...@4ax.com...

0 new messages