Espressione DIESEL Campo dati

luca.rgn

Utente poco attivo
Professione: proggettista
Software: Autocad
Regione: Friuli Venezia Giulia
Buongiorno,
sto cercando di capire come funzionano le espressioni DIESEL in autocad e sto facendo alcune prove.
Il problema principale è con substr.
esempio: nome file: XXXXXX
-XXXX-XXXX-XXXXXX nome layout: YYYY
l'obbiettivo è di sostituire i caratteri del nome file dal numero 18 al 21 con il nome del layout quindi ho scritto questo
$(substr,$(getvar,"DWGNAME"),1,17)$(getvar,"CTAB")$(substr,$(getvar,"DWGNAME"),22).
questa espressione è funzionante e va bene, ma dal momento che voglio prendere solo i caratteri dal 18 al 21 del nome file non funziona.
scrivendo questo:
$(substr,$(getvar,"DWGNAME"),18,21)
mi prende tutti i caratteri dal18esimo in poi.
mi potete spiegare perché?
 

x11start

Utente Standard
Professione: Disegnatore prefabbricati
Software: Autocad
Regione: Piemonte
Dove lavoro mettiamo come nome del file NOMECLIENTE-21-570.DWG in cui 21 è l'anno e 570 è il codice della commessa. Ho creato nei miei disegni un campo dati con il formato:

$(substr,$(getvar,dwgname),$(-,$(strlen,$(getvar,dwgname)),9),6)

questo mi consente, partire dagli ultimi 9 caratteri del file (21-570.dwg) e da essi prenderne solo 6: cioè escludere l'estensione DWG.

Il risultato a video pertanto è:

21-570

In base a questo ragionamento, credo che tu possa risolvere il tuo problema....

la variabile STRLEN mi consente di avere un NOMECLIENTE di qualunque lunghezza.
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, CadWorx, Lisp, VBA. YouTube: roberto portuese
Regione: Sicilia
$(substr,$(getvar,"DWGNAME"),18,4)
Dal 18 e per 4 caratteri
 

Cristallo

Utente Standard
Professione: Leggo e confronto
Software: Lettura critica
Regione: Fuori dalla cerchia
Buongiorno,
...
$(substr,$(getvar,"DWGNAME"),18,21)
mi prende tutti i caratteri dal18esimo in poi.
mi potete spiegare perché?
Perchè gli dici di partire dal 18° carattere e prenderne 21
Dovresti dirgli $(substr,$(getvar,"DWGNAME"),18,4)

oops, stessa risposta di rpor