TuttoCAD Forum

TuttoCAD Forum
[ Home | Registrati | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Album Fotografico | Download | | Cerca | FAQ ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 1 - TuttoCAD Software
 AutoLISP
 problema con estrazione dati da quote

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Faccine
Felice [:)] Davvero Felice [:D] Caldo [8D] Imbarazzato [:I]
Goloso [:P] Diavoletto [):] Occhiolino [;)] Clown [:o)]
Occhio Nero [B)] Palla Otto [8] Infelice [:(] Compiaciuto [8)]
Scioccato [:0] Arrabbiato [:(!] Morto [xx(] Assonnato [|)]
Bacio [:X] Approvazione [^] Disapprovazione [V] Domanda [?]
Seleziona altre faccine

    
 
   

V I S U A L I Z Z A    D I S C U S S I O N E
Marsetti Alex Inserito il - 19 marzo 2014 : 18:19:08
Buonasera,
scrivevo sul forum per chiedere aiuto circa un problema con un file Lisp di mia creazione.
Sono abbastanza capace di programmare in Lisp, ma ogni tanto trovo delle difficoltà.

Essenzialmente, io vorrei estrapolare il valore di una quota e inserirlo in una variabile, da poter poi utilizzare nel programma.

Non trovo difficoltà quando estrapolo il valore contenuto in un oggetto testo, che converto poi in numero reale.

Quando tuttavia estrapolo il valore di una quota qualsiasi, sia con il codice gruppo 1 che con il codice gruppo 42, ottengo esclusivamente la parte intera del valore. Necessito invece del numero reale.

Riporto nel messaggio la parte problematica del programma.

(setq altezza (cdr (assoc 42 ID_altezza))))

la variabile "ID_altezza" contiene già l'identificativo dell'oggetto selezionato dall'utente.
La nuova variabile altezza contiene invece solo la parte intera del valore della quota.

Sperando in un aiuto, cordiali saluti.
14   U L T I M E    R I S P O S T E    (in alto le più recenti)
aforza Inserito il - 08 aprile 2014 : 13:15:08
Ciao,

capisco!!!! chiamiamo quelli di Mistero.....

Ciao
Terminator Inserito il - 08 aprile 2014 : 12:25:59
... e nel frattempo 8 giorni dall'ultima risposta, GP gli ha scritto il 1° di aprile. Categoria: SPARITI
arri Inserito il - 08 aprile 2014 : 11:20:56
Messaggio inserito da Giuseppe Mauro

Il bello è che Alex dopo aver fatto la domanda e (quindi) messo in moto le menti di chi si è voluto impegnare, è sparito, senza un cenno e senza un ringraziamento.
E sono passati 20gg dalla domanda.




non è sparito e ha ringraziato GP il giorno dopo,

e una seconda volta il 30 marzo.

Sono ben altri i casi di sparizione




Messaggio inserito da Marsetti Alex

Buonasera,
scrivevo perchè mi sono accorto di aver mal formulato la domanda.
Le vostre risposte sono innanzitutto corrette e vi ringrazio.

Utilizzando la funzione "nentsel" per selezionare un'entità che possa essere racchiusa in un blocco, anche nella selezione di una quota vengono considerate le singole entità che la compongono, ossia linee e testo.

In questo modo, se si seleziona il testo della quota con la misura, si ricava un elemento MTEXT, e se la quota ha separatore decimale virgola, effettuando la conversione della stringa di testo con la funzione "atof", si ricava solo la parte intera, perchè la funzione si interrompe quanto trova un carattere diverso dal punto.

Sono curioso di sapere se qualcuno conosce un modo per superare il problema.
Scusandomi e ringraziandovi ancora, cordiali saluti.

Marsetti Alex
Giuseppe Mauro Inserito il - 08 aprile 2014 : 09:18:59
Il bello è che Alex dopo aver fatto la domanda e (quindi) messo in moto le menti di chi si è voluto impegnare, è sparito, senza un cenno e senza un ringraziamento.
E sono passati 20gg dalla domanda.
aforza Inserito il - 08 aprile 2014 : 08:41:30
Ciao,

Terminator non mi sembra il tipo che si offende!!!!

Ciao
arri Inserito il - 04 aprile 2014 : 07:31:03
grazie GP,

ma rimane sempre il mistero delle due risposte di Terminator cancellate


Speriamo non si sia offeso per qualche sgarbo
GP Inserito il - 01 aprile 2014 : 20:05:08

(setq a "37,99")
"37,99" 
_$ 


(if (member 44 (setq b (vl-string->list a)))
    (setq a (vl-list->string (subst 46 44 b)))
    a
) 
"37.99" 
_$ 


(if (vl-string-search "," a)
    (setq a (vl-string-subst "." "," a))
    a
)
"37.99" 
_$ 

Giuseppe Mauro Inserito il - 01 aprile 2014 : 18:42:46
L'avevo vista anche io... mistero
arri Inserito il - 01 aprile 2014 : 18:01:29
Messaggio inserito da Marsetti Alex

Buonasera,
scrivevo perchè mi sono accorto di aver mal formulato la domanda.
Le vostre risposte sono innanzitutto corrette e vi ringrazio.

Utilizzando la funzione "nentsel" per selezionare un'entità che possa essere racchiusa in un blocco, anche nella selezione di una quota vengono considerate le singole entità che la compongono, ossia linee e testo.

In questo modo, se si seleziona il testo della quota con la misura, si ricava un elemento MTEXT, e se la quota ha separatore decimale virgola, effettuando la conversione della stringa di testo con la funzione "atof", si ricava solo la parte intera, perchè la funzione si interrompe quanto trova un carattere diverso dal punto.

Sono curioso di sapere se qualcuno conosce un modo per superare il problema.
Scusandomi e ringraziandovi ancora, cordiali saluti.

Marsetti Alex


ti aveva postato la soluzione Terminator,
ma è sparita
Marsetti Alex Inserito il - 30 marzo 2014 : 21:45:47
Buonasera,
scrivevo perchè mi sono accorto di aver mal formulato la domanda.
Le vostre risposte sono innanzitutto corrette e vi ringrazio.

Utilizzando la funzione "nentsel" per selezionare un'entità che possa essere racchiusa in un blocco, anche nella selezione di una quota vengono considerate le singole entità che la compongono, ossia linee e testo.

In questo modo, se si seleziona il testo della quota con la misura, si ricava un elemento MTEXT, e se la quota ha separatore decimale virgola, effettuando la conversione della stringa di testo con la funzione "atof", si ricava solo la parte intera, perchè la funzione si interrompe quanto trova un carattere diverso dal punto.

Sono curioso di sapere se qualcuno conosce un modo per superare il problema.
Scusandomi e ringraziandovi ancora, cordiali saluti.

Marsetti Alex
arri Inserito il - 21 marzo 2014 : 10:04:38
Messaggio inserito da Terminator

Idem con patate anche per le istruzioni in VLisp:

(setq altezza(vla-get-Measurement (vlax-ename->vla-object (car(entsel)))))
Selezionare oggetto: 110.379

La quota in questione aveva pure il testo con la virgola...



arri Inserito il - 21 marzo 2014 : 07:56:34
Messaggio inserito da Marsetti Alex

Buonasera,
ho risolto il problema in quanto in fase di lettura, l'unico separatore decimale accettato da Lisp è il punto ".".
Nelle quote invece è presente il separatore virgola ",", che interrompe la lettura dei decimali da parte della funzione.
Grazie per la risposta, cordiali saluti

non mi pare proprio,
c'è il punto anche nelle quote,
come puoi vedere dall'esempio

Comando: (SETQ altezza(cdr(assoc 42 (cdr(entget(car(ENTSEL)))))))

Selezionare oggetto: 10375.7
Marsetti Alex Inserito il - 20 marzo 2014 : 17:18:03
Buonasera,
ho risolto il problema in quanto in fase di lettura, l'unico separatore decimale accettato da Lisp è il punto ".".
Nelle quote invece è presente il separatore virgola ",", che interrompe la lettura dei decimali da parte della funzione.
Grazie per la risposta, cordiali saluti
GP Inserito il - 20 marzo 2014 : 14:53:34
"....i numeri reali sono memorizzati in formato a virgola mobile a doppia precisione, fornendo almeno 14 cifre significative di precisione, nonostante ne compaiano solo 6 nell'area della linea di comando di Autocad."

Se vuoi la prova del 9 (rtos altezza 2 14)



TuttoCAD Forum © 2001-2010 CADLandia Torna all'inizio della Pagina
Pagina generata in 0,3 secondi.