Incrementare tutti i testi di una quantità N

Rand89

Utente poco attivo
Professione: Disegnatore
Software: AutoCAD
Regione: Veneto
#1
Ciao ragazzi
è possibile incrementare tutti i testi contenenti un numero, di una quantità N uguale per tutti? ES: ho dei testi contenenti 45.23, 63.17, 12.02 ecc incrementarli tutti di N = 2.5 quindi diventeranno 47.73, 65.67, 14.52 ecc

Grazie in anticipo :wink:
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#2
Visto che non risponde nessuno, ti posto un lisp per effettuare quanto da te chiesto.

Il comando è AddNum, selezioni le scritte, devi scrivere l'operatore e a seguire la quantità, tipo +5.25 o *2.2, etc.

Il numero di decimali impostalo da UNITS.

bye
 

Allegati

Rand89

Utente poco attivo
Professione: Disegnatore
Software: AutoCAD
Regione: Veneto
#3
Grazie rpor66, davvero quello che fa al caso mio!
Sai se è possibile modificarlo facendo riconoscere anche la virgola come separatore decimale? Ho molti testi appunto con la virgola e non con il punto...
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#4
Fatto.
Ho fatto in modo che se trova la virgola, esegue l'operazione senza modificare il separatore decimale.

Bye
 

Allegati

Shape

Utente Senior
Professione: Disegnatore Carpenteria
Software: Autocad, VBA-AutoLisp, Tecnometal4D, GIMP
Regione: Friuli
#6
Fatto.
Ho fatto in modo che se trova la virgola, esegue l'operazione senza modificare il separatore decimale.

Bye
(if (= Flag 1) (setq NewTxt (vl-string-subst "," "." NewTxt)))

mitica questa... ci fosse anche nel vba :frown: invece per farla devi fare il classico boubbleshort o come cavolo si dice... passare carattere per carattere... ed aventualmente modificarlo con , o . o sbaglio ?
 

Joseph

Utente Standard
Professione: studio e sperimento
Software: autocad 2012
Regione: lombardia
#7
E perchè, allora, non metterla sempre all'inizio, fuori dal ciclo, così risolviamo il problema alla radice e si alleggerisce il codice?
(mapcar '(lambda (x) (atof (vl-string-subst "." "," x))) NewTxT)
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#8
perchè se nel dwg è scritto 5,16 ti ritroveresti 5.16, che non va bene.

x Shape: in vba il comando è replace

bye
 

Shape

Utente Senior
Professione: Disegnatore Carpenteria
Software: Autocad, VBA-AutoLisp, Tecnometal4D, GIMP
Regione: Friuli
#9
perchè se nel dwg è scritto 5,16 ti ritroveresti 5.16, che non va bene.

x Shape: in vba il comando è replace

bye
ehh non non puoi mica dirmelo così.. è da anni che divento pazzo con gli input utente in base alle impostazioni internazionali.. e tu mi dici che con un replace risolvo... :eek::eek::eek:
 

Joseph

Utente Standard
Professione: studio e sperimento
Software: autocad 2012
Regione: lombardia
#10
Mi scuso, ma per evitare errori riscrivo, corretta, la riga di codice precedente
(mapcar '(lambda (x) (atof (vl-string-subst "." "," x))) Gruppo)

perchè se nel dwg è scritto 5,16 ti ritroveresti 5.16, che non va bene.
...
bye
Rand89 potrebbe anche gradire che tutti i numeri rimangano scritti con la stessa notazione
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#11
x Joseph: e ci mancherebbe.....

x Shape: mai smettere di cercare.....
 

x11start

Utente Standard
Professione: Disegnatore prefabbricati
Software: Autocad
Regione: Piemonte
#12
Fra i miei lisp c'è VARTXT che permette di effettuare le 4 operazioni (+ - * /) su una serie di testi, scegliere il n. di decimali ed eventualmente inserire il segno + o - prima del numero.
 

Allegati

ingcozz

Utente poco attivo
Professione: Ingegnere
Software: Autocad
Regione: Emilia Romagna
#13
Buongiorno Signori,

io avrei delle chilometriche da modificare sommando sempre la stessa quantità; es. 120+000 deve diventare 190+340, praticamente devo aggiungere sempre 70+340.

Come posso modificare il lisp ADDNUM o VARTXT?

Grazie mille in anticipo

Saluti
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#14
per avviare il comando scrivi:
(AddNum 70 340)
selezioni i testi da modificare.

Bye

p.s.: ovviamente 70 e 340 sono per esempio, puoi sommare anche numeri con decimali.
 

Allegati

ingcozz

Utente poco attivo
Professione: Ingegnere
Software: Autocad
Regione: Emilia Romagna
#16
per avviare il comando scrivi:
(AddNum 70 340)
selezioni i testi da modificare.

Bye

p.s.: ovviamente 70 e 340 sono per esempio, puoi sommare anche numeri con decimali.
Ti ringrazio molto, ma ho un problema;

quando ho una chilometrica del tipo 20+700 e sommo la mia quantità 70 e 340 il risultato che viene fuori è 90,00+1040,00.
Dovrebbe essere invece 91+400.
Ci sarebbero inoltre i due zeri da eliminare.

E se ingannassimo il lisp facendogli credere che il "+" non è altro che una ",".
Io volevo procedere a modificare il lisp iniziale sotto questo senso, secondo te è fattibile?

Grazie mille ancora.

Ciao
 

confutatis

Guest
#17
Addnum così come è scritto è sbagliato.
Se eseguo ad esempio (addnum 10 400) alla chilometrica 120+800, ottengo 130+1200 invece del più logico 131+200. Arrivato a 1000 metri devo incrementare i chilometri.
 

Allegati

ingcozz

Utente poco attivo
Professione: Ingegnere
Software: Autocad
Regione: Emilia Romagna
#18
Addnum così come è scritto è sbagliato.
Se eseguo ad esempio (addnum 10 400) alla chilometrica 120+800, ottengo 130+1200 invece del più logico 131+200. Arrivato a 1000 metri devo incrementare i chilometri.
Grazie mille, ma il tuo lisp non riesco ad eseguirlo.
Quando lo eseguo senza argomenti mi dice da errore appunto segnalandomi che ci sono pochi argomenti, invece quando lo eseguo come (addnum 10 400) mi da un messaggio di errore "no fuction definition: ADDNUM".
Per caso sapresti come avviare a tutto ciò?

grazie mille ancora

Ciao
 

confutatis

Guest
#19
Devi digitare (load "addnum3") e poi (addnum arg1 arg2). Gli argomenti sono indispensabili, dove arg1=km e arg2=metri.
 

ingcozz

Utente poco attivo
Professione: Ingegnere
Software: Autocad
Regione: Emilia Romagna
#20
Devi digitare (load "addnum3") e poi (addnum arg1 arg2). Gli argomenti sono indispensabili, dove arg1=km e arg2=metri.
Grazie, ho risolto. Il problema nasce dal fatto che emulo architectural desktop su un mac.

Comunque, grazie mille

Ora il tutto va una meraviglia.....

Ciao