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
 AutoLisp per eliminare attributi automaticamente
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Pagina Successiva
Autore Discussione Precedente Discussione Discussione Successiva
Pagina: di 2

giua
Utente Medio



24 Messaggi

Inserito il - 06 aprile 2014 : 22:06:37  Mostra Profilo Invia a giua un Messaggio Privato  Rispondi Quotando
Buongiorno,
avrei cortesemente bisogno di un aiuto.
Ho la necessità, purtroppo urgente, di eliminare da una serie di DWG tutti gli attributi che hanno una certa etichetta da tutti i blocchi presenti nel disegno.
Faccio un esempio, devo eliminare l'attributo con etichetta DATA da tutti i blocchi (con nomi diversi) presenti nel disegno.
Esiste un file AutoLisp che realizza in un solo colpo questa funzione?

Se lo faccio manualmente con il GESTATTBL su tutti i blocchi del disegno per una serie infinita di disegni ci metto una vita intera....

Grazie per chi potrà aiutarmi.
Giua

giua
Utente Medio



24 Messaggi

Inserito il - 06 aprile 2014 : 22:20:10  Mostra Profilo Invia a giua un Messaggio Privato  Rispondi Quotando
Scusate, dimenticavo di dire che utilizzo l'Autocad 2004 e che gli attributi da eliminare sono invisibili quindi non c'è alcun problema di aggiornare la "visualizzazione" degli attributi del blocco (il mio problema è dato solo dal fatto che gli attributi da eliminare danno fastidio ad un'elaborazione dei dati del disegno).
Grazie ancora.
Giua
Torna all'inizio della Pagina

GP
Utente Master


Regione: Piemonte
Prov.: Vercelli


2776 Messaggi

Inserito il - 07 aprile 2014 : 11:08:05  Mostra Profilo Invia a GP un Messaggio Privato  Rispondi Quotando
Vedi questo se può risolvere:
http://www.lee-mac.com/batte.html
Torna all'inizio della Pagina

giua
Utente Medio



24 Messaggi

Inserito il - 07 aprile 2014 : 11:26:43  Mostra Profilo Invia a giua un Messaggio Privato  Rispondi Quotando
Grazie molte,
purtroppo il programma che mi hai indicato serve per modificare su più DWG un valore di un certo attributo in modo automatico (se ho capito bene), ma non c'è la possibilità di eliminare gli attributi.
Avete qualche altra idea?

Grazie davvero.
Giua
Torna all'inizio della Pagina

arri
Utente Master


Regione: Lombardia


14951 Messaggi

Inserito il - 07 aprile 2014 : 14:06:51  Mostra Profilo Invia a arri un Messaggio Privato  Rispondi Quotando
http://www.cadlandia.com/topic.asp?TOPIC_ID=12317

non fa quello che chiedi,
ma potrebbe tornare utile
Torna all'inizio della Pagina

giua
Utente Medio



24 Messaggi

Inserito il - 07 aprile 2014 : 17:31:19  Mostra Profilo Invia a giua un Messaggio Privato  Rispondi Quotando
Proverò a modificare il programma inserendo il controllo per eliminare soltanto gli attributi invisibili con una determinata etichetta. Ma le mie ridottissime doti da programmatore si faranno sentire!!!
Sarà dura.

Grazieeeeee
Giua
Torna all'inizio della Pagina

arri
Utente Master


Regione: Lombardia


14951 Messaggi

Inserito il - 07 aprile 2014 : 18:58:50  Mostra Profilo Invia a arri un Messaggio Privato  Rispondi Quotando
Messaggio inserito da giua

Proverò a modificare il programma inserendo il controllo per eliminare soltanto gli attributi invisibili con una determinata etichetta. Ma le mie ridottissime doti da programmatore si faranno sentire!!!
Sarà dura.

Grazieeeeee
Giua


ho solo indicato la discussione,
i ringraziamenti spettano a Terminator,
l'autore dei lisp
Torna all'inizio della Pagina

giua
Utente Medio



24 Messaggi

Inserito il - 08 aprile 2014 : 07:02:14  Mostra Profilo Invia a giua un Messaggio Privato  Rispondi Quotando
.... e allora non mi resta che ringraziare Terminator.
E sperare che passi di qui, si metta la mano sul cuore e modifichi il Lisp che ha fatto, perchè io non riesco.
Anche perchè ho scoperto che gli attributi da eliminare non sono invisibili come avevo postato, sono vuoti ma visibili ....
Buona giornata.
Giua
Torna all'inizio della Pagina

aforza
Utente Master


Regione: Italia
Prov.: Padova
Città: Cavarzere(VE)-Monselice(PD)


1798 Messaggi

Inserito il - 08 aprile 2014 : 08:38:14  Mostra Profilo  Rispondi Quotando
Ciao,

curiosità ma che tipo di elaborazione dati fai?
ma i blk da aggiornare (nomi diversi) quanti sono? perché se sono 10 basta ridefinirli eliminando il campo diverso se sono 100 o 1000 (anche se io non lo farei ma non so che problemi ti da questo attributo in più)

Ciao


Andrea Forza

CadWorx 2014 & Plant3D AutoCAD 2014 su Seven 64bit - Dell Vostro i7 ram 8gb - doppio monitor Hanns-g 22"
Torna all'inizio della Pagina

giua
Utente Medio



24 Messaggi

Inserito il - 08 aprile 2014 : 08:52:03  Mostra Profilo Invia a giua un Messaggio Privato  Rispondi Quotando
Grazie aforza,
il problema è questo.
Utilizzo un applicativo, elettrico, che lavora su Autocad. In questo applicativo ci sono dei blocchi che rappresentavo i "fili" e possono avere un qualunque nome, perchè legato alla pagina del disegno, al nome del DWG ed a altro.
Da una certa versione del software in poi al blocco "filo" sono stati aggiunti quattro attributi (le quattro etichette sono sempre quelle), questi quattro attributi mandano in crisi alcuni automatismi di chi, come noi, elabora il DWG con una versione precedente del software.
Ora, ho verificato che eliminando manualmente questi quattro attributi con il comando GESTATTBL tutto ritorna magicamente a funzionare ma i fili sono innumerevoli e l'operazione diventa lunghissima con il rischio di dimenticare alcuni fili e quindi di falsare le elaborazioni.
E' per questo motivo che mi serviva un lisp che eliminasse automaticamente questi 4 attributi (di etichetta determinata) in qualsiasi blocco presente nel disegno.
Certo, aggiornando il software alla versione ultima il problema si risolverebbe: ma in questo momento non ce lo possiamo permettere.
Il lisp di Terminator che mi ha consigliato arri fa qualcosa di simile ma non riesco ad adattarlo....
Ciao e grazie.
Giua
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 08 aprile 2014 : 12:22:37  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando


Scarica allegato:

elimatt.rar
1,25 KB
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 08 aprile 2014 : 13:05:28  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Passami un pezzo di disegno, dal momento che è un tipo di errore che non mi era mai capitato.
Torna all'inizio della Pagina

aforza
Utente Master


Regione: Italia
Prov.: Padova
Città: Cavarzere(VE)-Monselice(PD)


1798 Messaggi

Inserito il - 08 aprile 2014 : 13:13:48  Mostra Profilo  Rispondi Quotando
Ciao,

@giua si sempre casini con versioni precedenti, il grande terminator... arriva sempre ...

Ciao

Andrea Forza

CadWorx 2014 & Plant3D AutoCAD 2014 su Seven 64bit - Dell Vostro i7 ram 8gb - doppio monitor Hanns-g 22"
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 08 aprile 2014 : 13:26:03  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Uhm...le funzioni lisp sono rimaste le stesse dalla versione 2000, proprio per evitare problemi di compatibilità, ma evidentemente non è così...
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 08 aprile 2014 : 14:08:43  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Aspetta, che etichette bisogna eliminare?
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 08 aprile 2014 : 14:12:35  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Ho provato con etichette a caso, nessun tipo di problema, il lisp cancella regolarmente tutto ciò che gli dico.
Torna all'inizio della Pagina

giua
Utente Medio



24 Messaggi

Inserito il - 08 aprile 2014 : 14:34:54  Mostra Profilo Invia a giua un Messaggio Privato  Rispondi Quotando
Devo eliminare le etichette USERF1 USERF2 USERF3 USERF4, ma mi sa che il problema è legato alla versione di Autocad.....
Sono troppo arcaico. Tu che versione di Autocad hai usato?
Grazie comunque! Sei troppo gentile!
Giua
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 08 aprile 2014 : 14:55:20  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
AutoCAD 2012, tu non hai modo di usare una versione un po' più recente? Ho riprovato con le etichette USERF*, cancellazione normale.
Torna all'inizio della Pagina

giua
Utente Medio



24 Messaggi

Inserito il - 08 aprile 2014 : 15:12:24  Mostra Profilo Invia a giua un Messaggio Privato  Rispondi Quotando
EUREKA

Mi sono appoggiato su un collega che ha l'AUTOCAD 2008 (non sia mai di essere all'ultima moda ....) e FUNZIONA!

GRAZIE ANCORA DELLA GENTILEZZA
Giua
Torna all'inizio della Pagina

GP
Utente Master


Regione: Piemonte
Prov.: Vercelli


2776 Messaggi

Inserito il - 09 aprile 2014 : 09:15:00  Mostra Profilo Invia a GP un Messaggio Privato  Rispondi Quotando
"ERRORE IRREVERSIBILE: I comandi non possono essere nidificati più di 4"

L'errore si manifesta quando in un lisp si lancia da comando un'istruzione che non è un comando, mi spiego:

se nel codice scriviamo
(command "align" oggetto "" "0,0" "1,1" "3,3" "4,4" "" "_y")
il programma darà errore al quarto lancio in quanto ALIGN non è un comando, ma una funzione di GEOM3D.arx, bisogna quindi usare questa sintassi:
(align oggetto '(0 0) '(1 1) '(3 3) '(4 4))

Venendo al problema specifico di questo thread, è lecito pensare che ATTSYNC nella 2004 fosse una funzione, mentre nella 2008 sia diventato un "vero" comando.
Torna all'inizio della Pagina

Terminator
Utente Master



725 Messaggi

Inserito il - 09 aprile 2014 : 09:58:17  Mostra Profilo Invia a Terminator un Messaggio Privato  Rispondi Quotando
Si potrebbe risolvere con un'istruzione del tipo:

(if (< (atoi (getvar "ACADVER")) 17)
(align oggetto '(0 0) '(1 1) '(3 3) '(4 4))
(command "align" oggetto "" "0,0" "1,1" "3,3" "4,4" "" "_y")
)

Dove il numero 17 corrisponde alla versione 2007 e si presume che la funzione (align) sia diventata comando. Da quello che ho visto però, il comando ATTSYNC ancora oggi è un'applicazione arx, che, volendo, si può escludere con opzioni->Apri e salva->Applicazioni ObjectARX->Disattiva caricamento su richiesta. Non ho una 2004 sottomano per confrontare. Mi resta la perplessità del perché al quarto lancio, invece che al terzo o quinto? Teoricamente se la funzione non c'è dovrebbe piantarsi subito...
Torna all'inizio della Pagina
Pagina: di 2 Discussione Precedente Discussione Discussione Successiva  
Pagina Successiva
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
TuttoCAD Forum © 2001-2010 CADLandia Torna all'inizio della Pagina
Pagina generata in 0,33 secondi.