Selezionare oggetti in sequenza mediante una polilinea

x11start

Utente Standard
Professione: Disegnatore prefabbricati
Software: Autocad
Regione: Piemonte
#1
Capita talvolta nei lisp, di dover selezionare degli oggetti in sequenza: ad es. avevo fatto un comando "Numera" che consentiva di selezionare dei testi e trasformarli in numeri progressivi; ovviamente i testi andavano selezionati con ordine e non con una semplice finestra, altrimenti non si sarebbe potuti esser certi dell'ordine con cui il programma li avrebbe elaborati.
Da questo si evince la necessità di trovare un modo "veloce" per selezionare la sequenza. Io ho pensato di disegnare una polilinea che vada a toccare tutti i testi... un pò come nel gioco della "Settimana enigmistica" in cui si devono unire i puntini. Il programma si occuperà (e devo capire come.... magari scorrendo fra le coordinate della plinea a step di 1 unità disegno) di trovare uno ad uno gli elementi, e metterli nel set di selezione.
Altra soluzione credo che sia con GRDRAW.... ma questo avrebbe lo svantaggio di cancellare la linea a video, se durante la selezione facessi un PAN o uno ZOOM, quindi forse è meglio la polilinea.
C'è qualcuno che sa come aiutarmi?
 

dieva

Utente Standard
Professione: CAD Manager - AutoCAD sw developer
Software: AutoCAD | BricsCAD | 3DSMax | Revit
Regione: puglia
#2
ma il modo di selezione _FENCE (Intercetta) non ti va bene ??
 

x11start

Utente Standard
Professione: Disegnatore prefabbricati
Software: Autocad
Regione: Piemonte
#3
Ti sembrerà una cosa stupida... ma non ci avevo pensato! Chissà perché mi sembrava riguardasse una selezione poligonale (quindi assimilabile ad una finestra) e non ad una.polilinea che va ad "intercettare" gli oggetti che trova!
Quando ho un attimo di tempo, provo a modificare il mio lisp (numera.lsp) per fargli accettare "_fence".... e poi ovviamente condivideró con voi il risultato!
Grazie Dieva
 

x11start

Utente Standard
Professione: Disegnatore prefabbricati
Software: Autocad
Regione: Piemonte
#4
Ecco il "Numera.lsp" non più a selezione singola (entsel) ma a selezione totale (ssget): occorre dare NT o _FENCE prima di selezionare gli oggetti, se vogliamo tracciare una "polilinea di selezione".

In questa versione c'è anche un altro miglioramento: anzichè solo una sequenza di numeri progressivi, possiamo usare le lettere (sia maiuscole che minuscole). Quindi se partiamo con A ... proseguiremo fino a Z e poi ci sarà AA AB AC ecc. se partiamo con 'a' avremo z aa ab ac ecc.
Ovviamente rimane la possibilità di mettere un Prefisso o un Suffisso, ma questi rimangono immutati, mentre lo scopo delle lettere sopracitate, è quello di consentire di superare il n. delle lettere disponibili e fare come per le celle di Excel (per intenderci).

I testi multilinea vengono trattati come singolo testo: quando avrò tempo li "spezzero" come ho già fatto in un altro listato...
 

Allegati

Cristallo

Utente Standard
Professione: Leggo e confronto
Software: Lettura critica
Regione: Fuori dalla cerchia
#5
Ottimo per la parte "letterale" (a-b-c etc.)
Ma per la parte numerica, non era sufficiente il TCOUNT degli express?
Perdonami se ti ho dato una brutta notizia, credo tu abbia faticato tanto con questo listato :(
 

x11start

Utente Standard
Professione: Disegnatore prefabbricati
Software: Autocad
Regione: Piemonte
#6
Questo é un listato che ho fatto "millemila" anni fa.. e poi di tanto in tanto ci metto mano!