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
(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...
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...
"Emiliano - EmiCAD" <ligh...@tin.it> ha scritto nel messaggio
news:aWWU8.106649$j65.2...@twister1.libero.it...
> 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.
--
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...