
Finalmente qualcosa di davvero utile nella nuova release di AutoCAD 2027.
Autodesk Assistant, il Chatbot basato su IA ora può operare con gli oggetti del disegno...
| L'icona evidenziata è quella per avviare Autodesk Assistant |
Selezione oggetti
prompt :
"Seleziona tutti gli oggetti di colore magenta"
![]() |
| la risposta di Autodesk Assistant nell'aposito pannello. |
Selezione oggetti con esclusione
"seleziona tutti gli oggetti di colore magenta tranne i cerchi"
Selezione in base a regole geometriche
"seleziona le linee orizzontali presenti nel disegno"
Calcoli con dati degli oggetti
"calcola la lunghezza di ogni linea presente sul layer 0 e poi calcola il valore medio delle lunghezze"
![]() |
Estrazione dati da blocchi e ordinamento
"crea una tabella che contiene l'elenco dei punti di inserimento di tutti i blocchi RMNUM presenti nel disegno inserendo la coordinata X e Y del punto di inserimento del blocco"Questa è la risposta dell'IA:
Perfetto! Creerò una tabella con l'elenco dei punti di inserimento di tutti i blocchi RMNUM presenti nel disegno. Ho già i dati dai risultati precedenti, quindi posso creare immediatamente la tabella.## Tabella Punti di Inserimento Blocchi RMNUM| N° | Handle | Coordinata X | Coordinata Y ||----|--------|--------------|--------------|| 1 | A06F | 1230.42 | 3176.29 || 2 | A072 | 1437.97 | 3043.32 || 3 | A075 | 1256.44 | 2816.30 || 4 | A078 | 1230.39 | 2996.30 || 5 | A07B | 1437.97 | 2944.32 |...| 97 | A19E | 3181.01 | 2928.64 || 98 | A1A4 | 2900.28 | 3210.97 || 99 | AFC4 | 1437.97 | 3363.33 |## Riepilogo✅ **Totale blocchi RMNUM trovati**: 99✅ **Coordinate estratte**: Tutte le coordinate X e Y dei punti di inserimento✅ **Range coordinate X**: da 1230.33 a 3267.33✅ **Range coordinate Y**: da 1336.85 a 3364.33La tabella mostra tutti i blocchi RMNUM presenti nel disegno `Floor Plan Sample.dwg` con le rispettive coordinate di inserimento arrotondate a due decimali per una migliore leggibilità.
Un primo mesaggio riepiloga quello che farà e quello che ha capito in base al prompt.
Tentativo di creazione di oggetti
"puoi creare oggetti grafici nel disegno ?"
No, non posso creare oggetti grafici nel disegno corrente. Gli strumenti a mia disposizione mi permettono solo di:## ✅ Operazioni supportate:- **Interrogare** oggetti esistenti nel disegno (linee, blocchi, testi, ecc.)- **Visualizzare e selezionare** oggetti esistenti- **Analizzare** proprietà e caratteristiche degli oggetti- **Confrontare** disegni con template per verifiche di standard- **Navigare** nel disegno (zoom, selezione)## ❌ Operazioni NON supportate:- **Creare** nuovi oggetti grafici (linee, cerchi, blocchi, tabelle, ecc.)- **Modificare** oggetti esistenti (spostare, ruotare, scalare)- **Eliminare** oggetti- **Inserire** blocchi o altri elementi- **Creare tabelle** AutoCAD## Per creare la tabella che hai richiesto:Dovrai utilizzare direttamente i comandi di AutoCAD:- Comando `TABLE` per creare una tabella manualmente- Comando `DATAEXTRACTION` per estrarre automaticamente i dati dei blocchi- Oppure utilizzare AutoLISP o altri strumenti di automazione di AutoCADPosso però continuare ad aiutarti con l'analisi dei dati esistenti o fornirti le informazioni necessarie per creare manualmente la tabella. Hai bisogno di altri dettagli sui blocchi RMNUM?
Rinomina layers
"rinomina tutti i layer il cui nome inizia con la lettera E sostituendo alla lettera E iniziale la stringa ELET"
questa la risposta
I understand you want to rename all layers whose names start with the letter "E" by replacing the initial "E" with "ELET". However, I cannot perform this action because the current system doesn't support modifying layer properties.Let me show you which layers would be affected by this change:## Layers che iniziano con "E" (da rinominare):| Layer Attuale | Nuovo Nome Proposto | Handle ||---------------|---------------------|--------|| **E-B-SHEL** | **ELET-B-SHEL** | AB10 || **E-B-GLAZ** | **ELET-B-GLAZ** | AB11 || **E-F-DOOR** | **ELET-F-DOOR** | AB14 || **E-B-CORE** | **ELET-B-CORE** | AB15 || **E-F-STAIR** | **ELET-F-STAIR** | AB16 || **E-B-ELEV** | **ELET-B-ELEV** | AB17 || **E-F-TERR** | **ELET-F-TERR** | AB18 || **E-F-CASE** | **ELET-F-CASE** | AB19 || **E-F-SILL** | **ELET-F-SILL** | AB1A || **E-B-MULL** | **ELET-B-MULL** | AB1B || **E-C-HEAD** | **ELET-C-HEAD** | AB1C || **E-B-FURR** | **ELET-B-FURR** | AB1D || **E-F-PLMB** | **ELET-F-PLMB** | AB1F || **E-S-COLM** | **ELET-S-COLM** | AB23 || **EMPLOYEE** | **ELETMPLOYEE** | AC89 |**Totale layer da rinominare**: 15 su 29## ❌ **Limitazione del sistema**Non posso eseguire questa operazione perché il sistema attuale non supporta la modifica delle proprietà dei layer (i `writableFields` sono vuoti nello schema).## 🔧 **Come eseguire questa operazione manualmente:**### 1. **Metodo Layer Properties Manager**```1. Digita LA o LAYER2. Per ogni layer che inizia con "E":- Doppio clic sul nome- Sostituisci "E" con "ELET"- Premi Invio```### 2. **Metodo RENAME Command**```1. Digita RENAME2. Seleziona "Layer"3. Per ogni layer:- Old name: E-B-SHEL- New name: ELET-B-SHEL- Ripeti per tutti```### 3. **Script AutoLISP automatizzato**```lisp(defun c:RenameELayers ()(setq layerList '("E-B-SHEL" "E-B-GLAZ" "E-F-DOOR" "E-B-CORE""E-F-STAIR" "E-B-ELEV" "E-F-TERR" "E-F-CASE""E-F-SILL" "E-B-MULL" "E-C-HEAD" "E-B-FURR""E-F-PLMB" "E-S-COLM" "EMPLOYEE"))(foreach layer layerList(if (tblsearch "LAYER" layer)(progn(setq newName (strcat "ELET" (substr layer 2)))(command "RENAME" "LA" layer newName)(princ (strcat "Renamed: " layer " -> " newName)))))(princ "Layer renaming completed!"))```### 4. **Usando Layer Translator (LAYTRANS)**Se hai un template con i nomi corretti, puoi usare LAYTRANS per mappare i layer.**Raccomandazione**: Il metodo AutoLISP è il più efficiente per rinominare molti layer contemporaneamente. Vuoi che ti spieghi come utilizzare lo script AutoLISP?
usando il comando Gestione Layer, il comando Rinomina, il comando Layertrans e addiruttura un programma AutoLISP creato ad hoc. Il programma è corretto e rinomina i layer.
Riconoscimento di pattern testuali
"seleziona i testi che indicano una data"
Ho selezionato con successo tutti i testi che indicano date nel disegno AutoCAD. Ho trovato e selezionato **6 oggetti di testo** che contengono date:## **Testi con date selezionati:**- **01JUL06** - Data in formato giorno/mese/anno- **(08:49 29/04/04)** - Data e ora in formato completo- **25JUL06** - Data revisione- **16APR06** - Data revisione- **21APR06** - Data revisione- **29APR06** - Data revisioneQuesti testi sembrano essere parte di un cartiglio tecnico o di una tabella delle revisioni del disegno, contenenti date importanti per la documentazione del progetto. Tutti gli oggetti sono ora **selezionati e visualizzati** nella finestra di AutoCAD.Le date sono in diversi formati:- **DDMMMYY** (es. 01JUL06, 25JUL06)- **DD/MM/YY con orario** (es. 08:49 29/04/04)
Selezione in base a valori attributi
"seleziona i blocchi RMNUM che hanno come valore dell'attributo NUMBER un numero pari"
Questa è la risposta:
Ho selezionato e visualizzato tutti i 99 blocchi RMNUM nel disegno, ma non posso filtrarli in base ai valori degli attributi.
## 🔧 **Alternative per la selezione basata su attributi:**
### 1. **Comando ATTEXT (Attribute Extraction)**
```
1. Digita ATTEXT
2. Estrai i dati degli attributi in un file
3. Identifica manualmente i numeri pari
. Seleziona i blocchi corrispondenti
```
### 2. **Comando FIND con filtri attributi**
```
1. Digita FIND (Ctrl+F)
2. Cerca nell'attributo NUMBER
3. Usa espressioni regolari per numeri pari
```
### 3. **Script AutoLISP personalizzato**
```lisp
(defun c:SelectEvenRMNUM ()
(setq ss (ssget "X" '((0 . "INSERT")(2 . "RMNUM"))))
(setq evenBlocks (ssadd))
(if ss
(progn
(setq i 0)
(repeat (sslength ss)
(setq ent (ssname ss i))
(setq entData (entget ent))
(setq attList (mapcar 'entget (vlax-invoke (vlax-ename->vla-object ent) 'GetAttributes)))
; Controlla attributo NUMBER per valori pari
(foreach att attList
(if (and (= (cdr (assoc 2 att)) "NUMBER")
(= (rem (atoi (cdr (assoc 1 att))) 2) 0))
(ssadd ent evenBlocks)
)
)
(setq i (1+ i))
)
(sssetfirst nil evenBlocks)
(princ (strcat "
Selected " (itoa (sslength evenBlocks)) " blocks with even NUMBER values."))
)
)
)
```
### 4. **Data Extraction (DATAEXTRACTION)**
```
1. Comando DATAEXTRACTION
2. Seleziona blocchi RMNUM
3. Estrai attributo NUMBER
4. Filtra i valori pari in Excel
5. Identifica gli handle dei blocchi
6. Seleziona manualmente
```
### 5. **Quick Select con filtri avanzati**
```
1. Comando QSELECT
2. Object type: Block Reference
3. Name: RMNUM
4. Usa filtri avanzati per attributi (se disponibili)
```
**Raccomandazione**: Lo script AutoLISP è la soluzione più efficace per questo tipo di selezione basata su valori di attributi. Vuoi che ti spieghi come implementare e utilizzare lo script AutoLISP?
Come si vede Autodesk Assistant da subito ammette che non riesce a fare una selezione come richiesto ma suggerisce ben 5 metodi alternativi.
In realtà nessuno dei 5 metodi seleziona i blocchi aventi come attributo un numero pari. Il programma AutoLISP non funziona perchè contiene un errore: si passa alla funzione entget (che lavora con <ename> cioè identificativi di entità) un dato di tipo VLA- object, evidentemente incompatibile
(mapcar 'entget (vlax-invoke (vlax-ename->vla-object ent) 'GetAttributes)))
Sono questi i rischi degli LLM, strumneti basati su 'meccanismi' probabilistici e statistici che propinano risposte fortemente attinenti all'ambito della richiesta ma che, in alcune occasioni, sono errate o almeno noi le consideriamo errate, inutilizzabili per i nostri fini.
Verifica degli Standard di disegno
Come mostrato all'interno del pannello di Autodesk Assistant, appena lo si apre , è possibile eseguire una verifica degli Standard di disegno confrontando il disegno corrente con un file DWG, DWT o DWS di cui bisogna specificare il percorso.
In un disegno molto semplice ho alterato il font di uno stile di testo in uso.
prompt:
"confronta gli standar di questo disegno con gli standard del disegno C:\Users\frame\Desktop\disegno base.dwg"
Questa l arisposta:
Perfetto! Ho completato l'analisi degli standard. Ecco il risultato:
## Standards Issues
| Issue | Standard |
|-------|----------|
| ❌ Font mismatch in text style 'TITOLI': current uses `arial.ttf` | `calibri.ttf` |
| ❌ [Text entity uses non-standard text style 'TITOLI'](mcp://autocad-in-process-mcp/manipulateDrawingCanvas?params=%7B%22operationsJson%22%3A%5B%7B%22operation%22%3A%22showme%22%2C%22handles%22%3A%5B%2226A%22%5D%7D%5D%7D) | Font should be `calibri.ttf` |
### Riepilogo dell'analisi
**Problemi trovati**: 2 problemi di conformità agli standard
**Dettagli**:
- **Stili di testo**: Lo stile "TITOLI" nel disegno corrente utilizza il font `arial.ttf` invece del font standard `calibri.ttf`
- **Entità di testo**: 1 entità di testo utilizza lo stile "TITOLI" non conforme
**Elementi conformi**:
- ✅ **Layer**: Tutti i layer sono conformi agli standard
- ✅ **Stili di quota**: Tutti gli stili di quota sono conformi agli standard
- ✅ **Tipi di linea**: Tutti i tipi di linea sono conformi agli standard
**Raccomandazioni**:
1. Modificare il font dello stile di testo "TITOLI" da `arial.ttf` a `calibri.ttf`
2. Verificare che il testo mostrato utilizzi il font corretto dopo la modifica dello stile
Assistant ha individuato la difformità e suggerisce come correggerla.
Simulare un Overkill
Ho chiesto alla IA di selezionare i cerchi che si intersecano e sono quindi superfli per l'individuazione di una posizione. Non è raro questo tipo di evento magari in disegni con oggetti che materializzano elementi di rilievi topografici.
Nell'esempio che ho creato (vedi nell'immagine seguente) c'è il caso in cui ben 4 cerchi si intersecano in una singola posizione. Dnque 3 sono di troppo.
Il prompt che ho creato è molto discorsivo ma forse sarebbe dovuto essere più dettagliato e strutturato come un algoritmo, per aiutare LLM a comprendere meglio. Manca ad esempio la misura oltre la quale si può considerare una sovrapposzione.
Come si vede dall'immagine la selezione dei cerchi è fallita nella posizone in cui ci sono 4 cerchi.
Ho riscontrato che il risultato finale di questo tipo di selezione è influenzato dall'ordine di creazione degli oggetti. Se i cerchi sovrapposti fossero stati creati tutti consecutivamente il risultato sarebbe stato corretto. Ma questo raramente avviene nella realtà.
Scrivere un prompt efficace potrebbe richiedere tempo. Questo è giustificato quando si è in presenza di un alto numero di elementi da modificare ed una modifica a mano richiederebbe più tempo che scrivere un prompt.
Resta il fatto che - in situazioni mediamente complesse - non si sa mai quando la risposta dell'LLM (o la selezione) è corretta. Bisogna pertanto trovare metodi per fare vrifiche veloci.
prompt:
"nel disegno ci sono dei cerchi che rappresentano delle posizioni.
In alcuni casi per errore ci sono più cerchi vicini tra loro che rappresentano una posizione.
Vorrei eliminare i cerchi superflui in maniera da individuare ogni posizione con un solo cerchio.
Seleziona i cerchi che si sovrappongono in maniera che possa cancellarli"
questa la risposta con la selezione, come si vede nell'immagine precedente
✅ **Completato!** Ho selezionato **3 cerchi sovrapposti** che puoi eliminare:
### **Cerchi selezionati per l'eliminazione:**
| Cerchio | Posizione | Motivo |
|---------|-----------|--------|
| `271` | (23.65, 15.64) | Sovrapposto al cerchio `26C` |
| `273` | (26.82, 10.62) | Molto vicino al cerchio `272` |
| `275` | (45.87, 13.22) | Sovrapposto al cerchio `26E` |
### **Prossimi passi:**
1. I cerchi sono ora **selezionati** (evidenziati)
2. Puoi **eliminarli** premendo `Canc` o usando il comando `ERASE`
3. Questo lascerà **un solo cerchio per ogni posizione**
### **Risultato finale:**
- **Prima:** 14 cerchi (alcuni sovrapposti)
- **Dopo l'eliminazione:** 11 cerchi (uno per posizione)
Funzionalità del pannello
Tramite delle icone del pannello di Autodesk Assistant si offre anche la possibilità di salvare i prompt in una libreria per poi poterli riutilizzare successivamente.
Nell'animazione seguente si vedono nell'ordine: la sezione della chat, la libreria di prompt, i prompt immessi nelle varie sessioni e la sezione delle impostazioni con la possibilità di disabilitare la IA che, come si vede, è in fase di "Tech Preview".
Conclusione
Uno strumento davvero utile che non potrà che migliorare con il tempo, e in breve tempo.
Sebbene adesso sia limitato alla selezione è facile richiedere la scrittura di una procedura AutoLISP o uno script che possa servire ad eseguire modifiche e creazioni di oggetti.
Per i disegnatori che in passato hanno speso ore e ore a compiere operazioni ripetitive e che nei momenti di delirio cominciavano a chiedersi come mai lo stramaledetto CAD non comprendesse che doveva eseguire in automatico la sequenza di stesse operazioni ormai reiterate da ore, la chat diventa un nuovo elemento di sfogo (prime c'erano solo le bestemmie) che può dare comunque risposte costruttive.
Speriamo che nella prossima release si arrivi a creare e modificare oggetti e, poi in futuro, a generare geometrie basate su rappresentazioni tipologiche standard ,da rifinire in base al prompt, e che si adeguino al contesto del disegno corrente.
Non bisogna dimenticare che questo strumento è in fase di "Tech preview" pertanto nessuno garantisce i rrisultati.







Nessun commento:
Posta un commento