Autore |
Discussione |
arri
Utente Master
Regione: Lombardia
14951 Messaggi |
Inserito il - 20 aprile 2011 : 18:47:20
|
Messaggio inserito da Giuseppe Mauro
Mah, questa problematica sarebbe facilmente aggirabile consegnando ai fornitori il proprio blocco e dicendogli devi compilare questo, altrimenti non accetto il dwg...
c'è chi fa quello che vuole e i dwg vengono accettati ugualmente |
|
|
cantacad
Utente Master
662 Messaggi |
Inserito il - 20 aprile 2011 : 19:06:23
|
X Terminator: perdona ma non capisco dove devo scrivere e quando vl-load-com...mi dice sconosciuto(*)..., porta pazienza, me lo spieghi passo passo che me lo segno per altri eventuali comandi vba? intanto punto 1 ho trascinato il nuovo rintab dentro come per l'altro che era solamente lisp giusto?
(*) NOTA: HA A CHE FARE CON UN QUALCHE PACCHETTO CHE BISOGNA SCARICARE??? MI SA DI SI E CHE NE ABBIAMO GIA' PARLATO, MA SUL CATORCIO DI COMPUTER CHE HO ORA NON MI ARRISCHIO...
X Arri: ok rinominato...per l'altro commento ti dico che è mooolto difficile che qualcheduno ciccioli con battman il proprio blocco, però terrò a mente
X Giuseppe Mauro: I M P O S S I B I L E (fortunatamente aggiungo) a parte che io vengo all'ultimo posto della catena del processo perchè acquisisco uno schema da un progettista e non da un fornitore, cioè non lo commissiono ed il progettista non lo fa per me ma per chiunque sia incaricato dal suo committente di eseguire gli impianti...e comunque se esistesse questa regola, e dovessi sottomettermi io quando divento fornitore di qualcuno mi sparerei subito! |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 20 aprile 2011 : 19:46:59
|
Questa è la parte iniziale del listato:
(defun C:RINTAB (/ nome nome2 entnome1 entnome2
entnome3 entnome4 entnome5 entnome6 entnome7
entnome8 entnome9 entnome10 entnome11 entnome12
entnome13 entnome14 entnome15 entnome16 entnome17
entnome18 entnome19 entnome20 entnome21 entnome22
entnome23 entnome24 entnome25 entnome26 entnome27
entnome28 entnome29 entnome30 entnome31 entnome32
entnome33 entnometab1 entnometab2 entnometab3 entnometab4
entnometab5 entnometab6 entnometab7 entnometab8 entnometab9
entnometab10 entnometab11 entnometab12 entnometab13 entnometab14
entnometab15 entnometab16 entnometab17 entnometab18 entnometab19
entnometab20 entnometab21 entnometab22 entnometab23 entnometab24
)
(vl-load-com) <-- Inserire la funzione qui
(setq nome (vlax-ename->vla-object (car (entsel "\nSelezionare tabella originale: ")))
nome2 (vlax-ename->vla-object (car (entsel "\nSelezionare tabella nuova: ")))
)
Tranquillo, non c'è nessun file esterno da scaricare. |
|
|
cantacad
Utente Master
662 Messaggi |
Inserito il - 26 aprile 2011 : 19:47:11
|
Ciao, ho provato il lisp e funziona ma...funziona solo per le due tabelle che ti ho fatto vedere, ovviamente come hai già scritto studi diversi = tabelle diverse...come mi devo comportare per modificare il lisp a seconda delle tabelle che mi trovo? c'è un piccolo manuale da scaricare da qualche parte?
ciao! |
|
|
Giuseppe Mauro
Amministratore
Regione: Campania
Prov.: Napoli
2707 Messaggi |
Inserito il - 27 aprile 2011 : 05:03:48
|
Piu che un piccolo manuale, c'e' la guida di Autolisp da imparare |
|
|
arri
Utente Master
Regione: Lombardia
14951 Messaggi |
Inserito il - 27 aprile 2011 : 07:46:09
|
Messaggio inserito da cantacad come hai già scritto studi diversi = tabelle diverse...come mi devo comportare per modificare il lisp a seconda delle tabelle che mi trovo?
modifichi i nomi dei blocchi
Messaggio inserito da Terminator
Questo è l'originale dal file rintab.lsp:
(and (= (cdr (assoc 0 (entget nome))) "INSERT")
(= (strcase (cdr (assoc 2 (entget nome)))) "DB_SCH_TABELLA_SCHEMI_COMPILAZIONE_2")
(= (cdr (assoc 0 (entget nome2))) "INSERT")
(= (strcase (cdr (assoc 2 (entget nome2)))) "DATI TABELLA")
)
|
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 27 aprile 2011 : 16:51:30
|
| Messaggio inserito da cantacad
Ciao, ho provato il lisp e funziona ma... |
(and (equal (vla-get-ObjectName nome) "AcDbBlockReference")
(wcmatch (strcase (vla-get-Name nome)) "DB_SCH_TABELLA*")
(equal (vla-get-HasAttributes nome) :vlax-true)
(equal (vla-get-ObjectName nome2) "AcDbBlockReference")
(wcmatch (strcase (vla-get-Name nome2)) "DATI*")
(equal (vla-get-HasAttributes nome2) :vlax-true)
)
Non capisco, ma il listato aggiornato sarebbe questo. E prevede pure che tutti i blocchi che iniziano con DB_SCH_TABELLA e con DATI vengano presi in considerazione. Se così non va bene o rinomini i blocchi oppure metti tutto *, così:
(and (equal (vla-get-ObjectName nome) "AcDbBlockReference")
(wcmatch (strcase (vla-get-Name nome)) "*")
(equal (vla-get-HasAttributes nome) :vlax-true)
(equal (vla-get-ObjectName nome2) "AcDbBlockReference")
(wcmatch (strcase (vla-get-Name nome2)) "*")
(equal (vla-get-HasAttributes nome2) :vlax-true)
)
Terza possibilità, la solita dialog con tutte le tabelle a disposizione. A questo punto hai abbastanza materiale per procedere da solo.
|
|
|
cantacad
Utente Master
662 Messaggi |
Inserito il - 27 aprile 2011 : 19:22:44
|
grazie grazie, ultimo aiutino...mi avete fatto vedere come agire sul lisp per associare i blocchi tabelle, potreste indicarmi come agire per associare gli attributi da una tabella all'altra? La logica di come vanno associati glia ttributi l'ho spiegata associoandovi lo stesso numero ma come farò con un altro blocco?
(Tra l'altro vorrei essere chiaro, in fase di lavoro non ci sono i numerini che ho scritto io da spostare da una parte all'altra, ma svariate di singole tabelle con all'interno valorei alfanumerici)
Saluti! |
|
|
wolverine74
Nuovo Arrivato
Regione: Lombardia
Prov.: Milano
Città: Legnano
3 Messaggi |
Inserito il - 19 novembre 2012 : 15:43:26
|
Ciao a tutti, ho cercato in giro per il forum un argomento simile, ma la mia scarsa (nulla) conoscenza di Autolisp non mi é molto di aiuto: vorrei realizzare un comando che 1)mi chiede di selezionare un blocco, mi chiede di selezionare un secondo blocco 3) copia il valore di determinati attributi contenuti nel primo blocco all'interno di determinati attributi del secondo. Credo di aver capito che si puo fare, ma non ci sono ancora arrivato...sapreste indicarmi se qualcosa del genere sia già stato fatto; quello che vedo in questa discussione mi confonde un po'...
Grazie a tutti |
|
|
Discussione |
|